¿Cómo puedo imprimir desde Vim a PDF?


11

Pensé que esto es bastante simple, pero no lo hago: uso gVim y me gustaría obtener el texto como un archivo pdf. En otras aplicaciones como Firefox, el cuadro de diálogo de impresión me muestra las impresoras disponibles y puedo elegir imprimir directamente en un archivo pdf. Sin embargo, en Vim no existe dicho diálogo y el archivo se envía a la impresora estándar del sistema.

Intenté lo siguiente:

  • No puedo hacer el "print-to-pdf" en mi forma estándar de impresión a través de la ventana de la impresora de Ubuntu.
  • :ha > fileconvierte mi archivo a un archivo .ps. Eso es bueno, pero .pdf sería mejor ...

No es una respuesta, pero puede usar la ps2pdfherramienta de línea de comandos después, con el archivo poscript como entrada.
— kebs

Respuestas:


21

Vimno le mostrará el cuadro de diálogo de impresión. En su lugar, puede imprimir en un archivo PS, abrirlo en un visor PS e imprimir desde allí.

Para imprimir en un archivo PS desde Vim:

:hardcopy > myfile.ps

También puede convertir psa pdfusar ps2pdf:

ps2pdf myfile.ps

1
La primera propuesta significa simplemente cambiar la extensión del archivo ... La segunda podría funcionar en un mapeo o algo así, tendré que investigar un poco más para hacerlo ... Gracias hasta ahora ...
— caligula

1
Es tan fácil como cambiar una extensión;)
— Ron

1
¡Esto es increíble, definitivamente no sabía que esto era una cosa! ¿Se pueden obtener varios archivos en un solo documento?
— Ben Kushigian

2
(usuario de cygwin) :ha > file.pdfno creó un archivo pdf válido. La combinación con ps2dpffuncionó pero me da un fondo blanco. Estoy más feliz :TOhtml file.htmly luego
— imprimo

Hoy usé una variación de este comando:: 1,50 copia impresa, no creó un archivo, solo se imprimió de las líneas 1 a 50.
— Dr Beco

8

Sobre la base de lo que otros ya han declarado ...

Puede usar el siguiente comando vim de una sola línea para crear un archivo .pdf:

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

Nota:

  • La %abreviatura del nombre de archivo actual, por lo que HelloWorld.Cse imprimirá enHelloWorld.C.pdf
  • Si desea retener también el archivo .ps intermedio, simplemente omita el && rm %.ps, obteniendo: :hardcopy > %.ps | !ps2pdf %.ps

Además, para cambiar la fuente renderizada, configure printfont antes de ejecutar el comando de copia impresa. Por ejemplo, para seleccionar Courier 8:

:set printfont=Courier:h8

Poniendo todo junto, opté por poner lo siguiente en mi .vimrcarchivo para que simplemente pueda ejecutar el :HardcopyPdfcomando. Este comando también puede operar en un rango seleccionado dentro de un archivo:

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'
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.