Vim'den PDF'ye nasıl yazdırabilirim?


11

Bunun oldukça basit olduğunu düşünürdüm, ama yapmıyorum: gVim kullanıyorum ve metni bir PDF dosyası olarak almak istiyorum. Firefox gibi diğer uygulamalarda, yazdırma iletişim kutusu kullanılabilir yazıcıları gösterir ve doğrudan bir PDF dosyasına yazdırmayı seçebilirim. Bununla birlikte, Vim'de böyle bir iletişim kutusu yoktur ve dosya sadece sistemin standart yazıcısına gönderilir.

Aşağıdakileri denedim:

  • Ubuntu'nun yazıcı penceresinden "print-to-pdf" özelliğini standart yazdırma yöntemim yapamıyorum.
  • :ha > filedosyamı .ps dosyasına dönüştürür. Bu güzel, ama .pdf daha güzel olurdu ...

Yanıtlar:


22

Vim size yazdırma iletişim kutusunu göstermez. Bunun yerine, bir PostScript dosyasına yazdırabilir , bir PostScript görüntüleyicide açabilir ve oradan yazdırabilirsiniz.

Vim'den bir PostScript dosyasına yazdırmak için:

:hardcopy > myfile.ps

PostScript'i ayrıca aşağıdakileri kullanarak PDF'ye dönüştürebilirsiniz ps2pdf:

ps2pdf myfile.ps

1
İlk teklif sadece dosya uzantısını değiştirmek anlamına gelir ... İkincisi bir haritalama veya bunun gibi bir şey çalışabilir, bunu yapmak için biraz daha araştırma yapmak zorunda kalacak ... Şimdiye kadar teşekkürler ...
caligula

1
Bir uzantıyı değiştirmek kadar kolay;)
Ron

1
Bu harika, kesinlikle bunun bir şey olduğunu bilmiyordum! Tek bir belgede birden fazla dosya alabilir misiniz?
Ben Kushigian

2
(cygwin kullanıcısı) :ha > file.pdfgeçerli bir pdf dosyası oluşturmadı. İle birleştirmek işe ps2dpfyaradı ama bana beyaz arka plan veriyor. En mutluyum :TOhtml file.htmlve daha sonra bu html dosyasını
pdf'ye yazdırıyorum

Bugün bu komutun bir varyasyonunu kullandım: 1,50 basılı kopya, sadece 1'den 50'ye kadar satırlardan yazdırılan bir dosya oluşturmadı.
Dr Beco

10

Başkalarının daha önce söylediklerine dayanarak:

PDF dosyası oluşturmak için aşağıdaki tek satır Vim komutunu kullanabilirsiniz:

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

Not:

  • %Geçerli dosya için kısaltmadır, bu yüzden HelloWorld.Chiç yazdırırHelloWorld.C.pdf
  • Ara .ps dosyasını da saklamak istiyorsanız && rm %.ps, şunu sağlayın: :hardcopy > %.ps | !ps2pdf %.ps

Ayrıca, oluşturulan yazı tipini değiştirmek için , komutu çalıştırmadan printfont önce seçeneğini ayarlayın hardcopy. Örneğin, Courier 8'i seçmek için:

:set printfont=Courier:h8

Hepsini bir araya getirerek, komutu .vimrcyürütmek için aşağıdakileri dosyama eklemeye karar verdim :HardcopyPdf. Bu komut ayrıca bir dosya içinde seçilen bir aralıkta da çalışabilir:

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

Bu çok düzgün Mathias, teşekkürler. Menzil şey benim için işe yaramadı. Bir aralığı vurguladım (v'yi kullanarak) ve komut tüm dosya üzerinde hareket etti ve aralığı görmezden geldi.
elmclose
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.