¿Es posible imprimir en PDF desde el terminal Mac?

19

¿Es posible tomar un archivo e imprimirlo en un PDF usando nada más que comandos de terminal? Supongo que de alguna manera harías uso del comando lpr, pero aún no he descubierto la sintaxis correcta.

tambor
fuente
¿Qué tipo de archivo? ¿Texto sin formato?
Doug Harris
1
@Daniel, debería haber sido más claro en mi pregunta: ¿Qué tipo de archivo fuente? - Mi respuesta a continuación funcionará para archivos de texto sin formato, pero no para imágenes.
Doug Harris
@Doug Me disculpo, en realidad leí mal la pregunta.
Daniel Beck
1
@Daniel: lo que realmente estoy buscando es algo más intensivo gráficamente, digamos páginas HTML. es posible?
tambler
1
Su principal problema probablemente es que la aplicación del visor depende del formato de archivo. Decide qué formato quieres y obtendrás respuestas específicas.
Daniel Beck

Respuestas:

11

lpres de hecho el comando correcto. No hay mucho, solo

lpr filename.pdf

simplemente debería funcionar, suponiendo que la impresora predeterminada esté configurada correctamente. Si no, puede que tengas que hacer

lpr -P printername filename.pdf

Tenga en cuenta que hay una página man - "man lpr" si necesita ver el contenido. Sí, el demonio de impresión CUPS que usa OS X ya es compatible con PDF.

Sidra de pera
fuente
La solución provista proporciona pdf de tamaño cero en Yosemite. ¿Alguna idea de cómo resolverlo?
Stanislav Mekhonoshin
Perdón por la duplicación. La solución proporcionada proporciona pdf de tamaño cero en Yosemite, cuando estoy tratando de extraer documentos .pages. RTF o txt se imprimen bien. ¿Alguna idea para solucionarlo?
Stanislav Mekhonoshin 01 de
lpr no genera archivos pdf, por lo que no estoy seguro de entender el comentario. No puede generar archivos pdf con lpr.
Perry
44
Esto no responde a la pregunta original, ya que era cómo 'imprimir en pdf', no imprimir un pdf.
dorien
5

Sé que he visto algo en una carpeta del sistema simplemente oculta:

/Library/Scripts/Printing Scripts/Convert To PDF.scpt

He creado una nueva aplicación desde AppleScript, pero también debería funcionar llamar directamente al script.

EDITAR: en realidad simplemente puedes llamar

/System/Library/Printers/Libraries/convert -f file.rtf -o file.pdf -j "application/pdf"

fuente
66
Esta respuesta es obsoleta. Probado en OS X 10.9.5.
4ae1e1
@ 4ae1e1 No, no lo es. Solo que "convertir" no existe. Es un enlace simbólico a / usr / sbin / cupsfilter y cupsfilter seguirá funcionando de esta manera incluso en 10.13.6.
cde
3

1) El procesador de texto de código abierto, AbiWord , incluye una opción de conversión entre cualquier formato que conozca en la línea de comandos, incluido PDF, por ejemplo,

abiword --to=pdf filename.html

(También manejará, por ejemplo, archivos .doc de MS Word, .docx, .odt, .rtf, etc., tanto de entrada como de salida).

Sé que está disponible para Mac, aunque nunca lo he usado en una Mac.

2) El ebook-convertprograma de línea de comandos de calibre (en Mac necesita seguir las instrucciones aquí para obtener las herramientas de línea de comandos) también es útil para muchos formatos.

ebook-convert filename.html filename.pdf

Puede manejar entradas .rtf y .odt, y muchos formatos de libros electrónicos como .epub y .mobi.

3) PrinceXML se puede usar en la línea de comandos y convertirá HTML a PDF muy bien.

4) Hay wkhtmltopdf , que usa el motor de webkit para convertir HTML a PDF desde la línea de comandos. Nunca lo he intentado.

5) Puedo pensar en otros métodos usando, por ejemplo, ConTeXt o pdflatex, pero se involucran cada vez más.

precioso
fuente
1
NB: AbiWord no funciona en Mac basado en Intel
inspectorG4dget
2

Para archivos de texto sin formato, puede usar enscript(viene con OS X) para generar un archivo postscript.

$ enscript -p ~/Desktop/profile.ps /etc/profile
[ 1 pages * 1 copy ] left in /Users/dharris/Desktop/profile.ps

La aplicación de Vista previa de OS X se puede abrir (y convertir) a PDF, o puede instalar ps2pdf (lo instalé a través de macports ) y convertir en la línea de comando.

$ ps2pdf ~/Desktop/profile.ps ~/Desktop/profile.pdf
Doug Harris
fuente
¿Qué pasa si quisiera hacer algo más intensivo gráficamente? Digamos, ¿convertir una página HTML a PDF desde el terminal?
tambler
Sé que esto es viejo, pero PhantomJS puede hacer esto, y lo hace muy bien.
Brad
2

También puede usar pandoc desde http://johnmacfarlane.net/pandoc/installing.html

Con este comando, convertiría el archivo html a pdf:

pandoc -o output.pdf input.html

Pero tenga en cuenta que pandoc usa LaTeX para la conversión, por lo que debe tener un sistema LaTeX instalado ( http://www.tug.org/mactex/ ).

Pandoc también puede convertir a otros formatos como .odt, .docx y .epub

nnn
fuente
1

Primero obtenga el nombre de la impresora

lpstat -p

Luego use el nombre de la impresora (Canon1234 - por ejemplo)

lp -d Canon1234 PathToDocument.pdf
Thejus Krishna
fuente
Op está buscando imprimir un archivo arbitrario en un documento pdf, no imprimir un pdf en una impresora real.
cde
0

Para los archivos de la página web local, puede intentar usar URL de descarga como acción de PDF Automator. Descargar e instalar.


Tuve que iniciar Automator en modo de 32 bits:

texto alternativo


Cree una aplicación de Automator que reciba automáticamente archivos y carpetas como entrada , con esta acción como la única. Guardar, por ejemplo, como Save as PDF.

Abra el cuadro de diálogo Obtener información de su aplicación y marque Abrir en modo de 32 bits también aquí. Haga doble clic una vez para asegurarse de que Launch Services conozca la aplicación.


Puede usar esta aplicación desde la línea de comandos de esta manera:

osascript -e 'tell application "Save as PDF" to open { POSIX file "/path/to/file.html" as alias }'

Por supuesto, puede envolver esto en un buen AppleScript .scpt, bashfunción, script de shell o lo que no.


Esta solución es realmente bastante flexible. Pude convertir archivos de texto y archivos HTML, y la acción de Automator también es algo configurable.

Daniel Beck
fuente
0

En realidad es mucho más fácil que eso. Simplemente puede escribir en la línea de comando open *.pdfy se abrirá Vista previa con todos los archivos allí. Curiosamente, si escribes open *.pdf */*.pdf, obtienes dos ventanas. En cada uno, debe ir a la barra lateral, seleccionar uno de los formatos de recuadro (si hay muchos archivos que se abre de forma predeterminada en el formato de lista que no funciona) escriba CMD- Apara seleccionar todo, luego use la impresión- comando de páginas seleccionadas para obtenerlas todas.

Joanna Bryson
fuente
0

puede agregar el controlador de impresora pdf usando pdf printer

  • primero instalar pdf printerdesde la tienda luego
  • comienzo pdf printer
  • ir a las preferencias del sistema

  • abra impresoras y escáneres

  • haga clic en el +botón

  • en la lista de impresoras seleccione pdf printer

  • Espera un segundo

  • luego haga clic en agregar

  • establecer pdf printercomo impresora predeterminada y luego cerrar ...

abra la terminal y luego ejecute el comando para imprimir un archivo

lp /path/to/your/file/to/print.txt
NuOne
fuente