Cómo imprimir un archivo normal a pdf desde la línea de comandos


34

En gedit, imprimir un archivo ofrece la opción de imprimir en un archivo donde el archivo se puede guardar como un pdf. ¿Cómo puedo hacer lo mismo desde la línea de comandos?

Respuestas:


43

Aquí hay una solución que no involucra OpenOffice:

  1. sudo apt-get install enscript

  2. enscript my_text_file.txt -o - | ps2pdf - output.pdf

Hay más opciones para enscript, por ejemplo, -Bomitir el encabezado de página. Ver man enscriptpara todas las opciones.


1
Una buena alternativa de Stefano, especialmente para cualquiera que no use open / libreoffice, ya que unoconv depende de que se instale.
Allan

+1 por la buena respuesta, la que estaba a punto de dar, decidí dar una, creo que agregará algo a lo que ya está aquí.
Sabacon

¿No hay algún programa o comando de bash incorporado para hacer esto?
kashminder

1
¡Gracias! Funciona para la mayoría de los textos, sin embargo, enscript solo funciona con codificación antigua, no funciona con UTF-8, por ejemplo, por lo que no puede convertir un texto si incluye el símbolo del euro (€), por ejemplo ...
Antoine Dusséaux

20

sin instalar ninguno de los programas mencionados anteriormente, simplemente puede hacer lo siguiente con los ya instalados cupsfilter:

cupsfilter foo.txt > foo.pdf

(para opciones, etc., consulte las páginas de manual de cupsfilter :-))


2
La única respuesta aquí que manejó mis archivos de texto UTF8 sin problemas :) y más fácil de hacer prácticamente sin dependencias
Axel Advento

13

LA MANERA SIMPLE DE INSCRIPCIÓN

sudo apt-get install cups-pdf enscript

Luego ejecute enscript en su archivo con el interruptor -P y la descripción de la impresora PDF en este caso.

enscript -B -PPDF test.txt

Se creó una impresora con descripción PDF cuando instaló cups-pdf, cuando usa enscript con esa impresora su documento se enviará a la impresora PDF y se imprimirá en un archivo, creado como .pdf en su directorio / home / PDF, el El comando anterior imprimirá el archivo de texto test.txt como un pdf en el directorio PDF.

UTILIZANDO UNOCONV

sudo apt-get install unoconv

Puede usar unoconv en modo independiente, esto significa que, en ausencia de un oyente OpenOffice, comenzará por sí mismo:

En el directorio donde se encuentra su archivo, ejecute:

unoconv -f pdf test.txt

esto creará un bonito pdf de test.txt. en el directorio actual


enscript foo.txt -o bar.pdffunciona bastante bien; ¡Gracias!
Thufir

6

Hay un programa de línea de comandos que puede convertir entre todos los formatos admitidos en open / libre office llamado unoconv, por lo que si necesita convertir por lotes con un script, será útil.

sudo apt-get install unoconv

No es lo que pidió OP.
enzotib

2
? OP? ¿Quién es OP y por qué votar esto cuando responde la pregunta?
RolandiXor

5

paps es una mejor alternativa que enscript

paps file.txt | ps2pdf - output.pdf

77
Bienvenido a Ask Ubuntu hwc! Si bien su publicación responde a la pregunta, siempre es mejor incluir más información. Por ejemplo, ¿por qué es papsuna mejor alternativa? Y si papsno está instalado por defecto, ¿cuál es el comando para instalarlo? Siempre puede editar su respuesta haciendo clic editjusto debajo del cuerpo de la respuesta. ¡Gracias!
Alaa Ali

5

Pandoc es una herramienta de cuchillo suizo imprescindible cuando se trata de la conversión entre varios lenguajes de marcado. Para comenzar, primero instale el convertidor de Pandoc:

sudo apt-get install pandoc

La sintaxis general y más utilizada para pandoc es:

pandoc -f <from format> -t <to format> <source file>

Tenga en cuenta que primero necesita instalar el paquete texlive-latex-base, antes de poder convertirlo a formato PDF. De lo contrario, recibirá el siguiente error:

pandoc: pdflatex not found. pdflatex is needed for pdf output.

Para instalarlo:

sudo apt-get install texlive-latex-base

Ahora puede convertir fácilmente cualquier archivo a pdf.

pandoc -t txt -t pdf source.txt

reemplace txt con su formato de texto (odt - html - ....)


1
En comparación con las otras respuestas, pandoc plus texlive produce resultados incorrectos (sin respetar las nuevas líneas), y es excesivo y confuso para arrancar. Se necesitan muchos más paquetes, tirando de texlive, texlive-fonts-recomendado, ruby, etc. Por ejemplo, obtengo pandoc: Unknown writer: pdfhasta que instalo texlive-latex-base. Esto es de confianza. Veo github.com/jgm/pandoc/issues/1155 Entonces me dio un error acerca de una fuente que falta, entonces uno sobre url.sty, etc.
nealmcb

2

Como se publicó anteriormente, enscriptes una forma popular de convertir texto a postscript, que luego se puede convertir a PDF.
Una herramienta similar, que ha existido durante mucho tiempo, es a2ps. Tiene una gran cantidad de opciones, incluida la colocación de varias páginas en una página física. Instalar ap2s con sudo apt-get install a2ps.

AFAIK, enscript y a2ps hacen el mismo trabajo, pero su interfaz es diferente y YMMV con cada uno de ellos.


Un ejemplo de uso de a2ps sería útil. La opción --delegate parece ser necesaria para pdf, pero la página de manual realmente no ayuda allí.
nealmcb

2

Tuve algunos problemas con el alemán Umlaute (ÄÖÜ) con las soluciones mencionadas anteriormente. O, en el caso de paps, el PDF resultante no tiene una capa de texto.

La mejor solución para mí fue usar wkthmltopdf . Parece que no está documentado, pero puede convertir fácilmente archivos de texto en archivos PDF utilizando esta sintaxis:

wktmltopdf <textfile> <pdffile>

wkhtmltopdf puede manejar archivos UTF-8 (a diferencia de enscript). Todos los caracteres problemáticos como ÄÖÜß, etc. se mostrarán correctamente.


Esto se ha solucionado en la última versión de paps, que puede generar PDF seleccionable. Ver: github.com/dov/paps .
Dov Grobgeld

1

Puedes usar a2x

a2x - convierte el archivo de texto Asciidoc a PDF, XHTML, Ayuda HTML, ODF, página de manual o texto plano

Para instalar a2x:

sudo apt-get install asciidoc

por ejemplo:

 a2x -f pdf testfile.txt

0

También puedes usar u2ps .

Esto genera tanto ps como pdf. Esto acepta texto UTF-8 y admite resaltado de sintaxis a través de marcas de Pango.

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.