Як я можу друкувати з Vim у PDF?


11

Я б подумав, що це досить просто, але я цього не роблю: я використовую gVim і хотів би отримати текст як PDF-файл. У інших програмах, таких як Firefox, діалогове вікно друку показує мені наявні принтери, і я можу вибрати друк безпосередньо у PDF-файл. Однак у Vim такого діалогового вікна немає, і файл просто надсилається на стандартний принтер системи.

Я спробував таке:

  • Я не в змозі зробити «друк до pdf» речі моїм стандартним способом друку через вікно принтера Ubuntu.
  • :ha > fileперетворює мій файл у .ps файл. Це добре, але .pdf було б приємніше ...

Відповіді:


22

Vim не покаже вам діалогове вікно друку. Натомість ви можете надрукувати файл у PostScript , відкрити його у переглядачі PostScript і надрукувати звідти.

Для друку у файл PostScript від Vim:

:hardcopy > myfile.ps

Ви також можете конвертувати PostScript у PDF, використовуючи ps2pdf:

ps2pdf myfile.ps

1
Перша пропозиція означає просто змінити розширення файлу ... Друга може працювати в картографуванні чи щось подібне, мені доведеться зробити ще кілька досліджень, щоб це зробити ... Дякую поки що ...
caligula

1
Це так само просто, як і змінити розширення;)
Ron

1
Це дивовижно, точно не знав, що це річ! Чи можете ви отримати кілька файлів в один документ?
Бен Кушигіян

2
(користувач cygwin) :ha > file.pdfне створив дійсний pdf-файл. Поєднуючи це з ps2dpfдією, але це дає мені білий фон. Я найщасливіший :TOhtml file.htmlі потім друкую цей html-файл у pdf
lucidbrot

Я сьогодні використав варіацію цієї команди:: 1,50 копій, вона не створила файл, щойно надрукований з рядків 1 до 50.
Д-р Беко

10

Спираючись на те, що інші вже заявили:

Для створення PDF-файлу можна використовувати таку рядкову команду Vim:

:hardcopy > %.ps | !ps2pdf %.ps && rm %.ps

Примітка:

  • %Є скороченням для поточного файлу, так HelloWorld.Cбуде друкуватиHelloWorld.C.pdf
  • Якщо ви також хочете зберегти проміжний .ps файл, просто опустіть && rm %.ps, отримавши: :hardcopy > %.ps | !ps2pdf %.ps

Крім того, щоб змінити відредагований шрифт, встановіть printfont перед виконанням hardcopyкоманди. Наприклад, для вибору кур'єра 8:

:set printfont=Courier:h8

Зібравши все це разом, я вирішив додати до свого .vimrcфайлу наступне, щоб я міг просто виконати :HardcopyPdfкоманду. Ця команда також може працювати в обраному діапазоні у файлі:

" Select the font for the hardcopy
set printfont=Courier:h8
command! -range=% HardcopyPdf <line1>,<line2> hardcopy > %.ps | !ps2pdf %.ps && rm %.ps && echo 'Created: %.pdf'

Це дуже акуратний Матіас, спасибі. Діапазон не працював для мене. Я виділив діапазон (за допомогою v) і команда діяла на весь файл і проігнорувала діапазон.
elmclose
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.