Come posso stampare da Vim in pdf?


11

Avrei pensato che fosse piuttosto semplice, ma non ci riesco: uso gVim e vorrei ottenere il testo come file pdf. In altre applicazioni come Firefox la finestra di dialogo di stampa mi mostra le stampanti disponibili e posso scegliere di stampare direttamente in un file pdf. Tuttavia in Vim non esiste tale finestra di dialogo e il file viene appena inviato alla stampante standard del sistema.

Ho provato quanto segue:

  • Non sono in grado di creare "print-to-pdf" con il mio modo standard di stampare tramite la finestra della stampante di Ubuntu.
  • :ha > fileconverte il mio file in un file .ps. Bello, ma .pdf sarebbe più bello ...

Non è una risposta, ma è possibile utilizzare lo ps2pdfstrumento da riga di comando in seguito, con il file poscript come input.
kebs

Risposte:


21

Vimnon ti mostrerà la finestra di dialogo di stampa. Invece, puoi stampare su un file PS, aprirlo in un visualizzatore PS e stampare da lì.

Per stampare su un file PS da Vim:

:hardcopy > myfile.ps

È inoltre possibile convertire psa pdfutilizzare ps2pdf:

ps2pdf myfile.ps

1
La prima proposta significa semplicemente cambiare l'estensione del file ... La seconda potrebbe funzionare in una mappatura o qualcosa del genere, dovrò fare qualche ricerca in più per farlo ... Grazie finora ...
caligula

1
È facile come cambiare un'estensione;)
Ron,

1
È fantastico, sicuramente non sapevo che fosse una cosa! Puoi ottenere più file in un singolo documento?
Ben Kushigian,

2
(utente cygwin) :ha > file.pdfnon ha creato un file pdf valido. Combinarlo con ps2dpfha funzionato ma mi dà uno sfondo bianco. Sono più :TOhtml file.html
contento di

Oggi ho usato una variante di questo comando: 1,50 hardcopy, non ha creato un file, appena stampato dalle righe 1 a 50.
Dr Beco

8

Basandosi su ciò che altri hanno già affermato ...

È possibile utilizzare il seguente comando vim a riga singola per creare un file .pdf:

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

Nota:

  • È %una scorciatoia per il nome file corrente, quindi HelloWorld.Cverrà stampata suHelloWorld.C.pdf
  • Se si desidera conservare anche il file .ps intermedio, è sufficiente omettere il && rm %.ps, ottenendo: :hardcopy > %.ps | !ps2pdf %.ps

Inoltre, per modificare il carattere renderizzato, impostare printfont prima di eseguire il comando hardcopy. Ad esempio, per selezionare Courier 8:

:set printfont=Courier:h8

Mettendo tutto insieme, ho optato per mettere quanto segue nel mio .vimrcfile in modo da poter semplicemente eseguire il :HardcopyPdfcomando. Questo comando può anche operare su un intervallo selezionato all'interno di un file:

set printfont=Courier:h8 "select the font to use when printing
command! -range=% HardcopyPdf <line1>,<line2> hardcopy > %.ps | !ps2pdf %.ps && rm %.ps && echo 'Created: %.pdf'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.