¿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.


¿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.


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"

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.


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

¿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


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

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.


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.


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
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.