È possibile stampare in PDF dal terminale Mac?


19

È possibile prendere un file e stamparlo su un PDF usando nient'altro che comandi terminali? Immagino che in qualche modo faresti uso del comando lpr, ma devo ancora scoprire la sintassi corretta.


Che tipo di file? testo semplice?
Doug Harris,

1
@Daniel, avrei dovuto essere più chiaro nella mia domanda: che tipo di file sorgente? - La mia risposta di seguito funzionerà con file di testo semplice, ma non con immagini.
Doug Harris,

@Doug Mi scuso, in realtà ho letto male la domanda.
Daniel Beck

1
@ Daniel - Quello a cui sto veramente mirando è qualcosa di più graficamente intenso, diciamo pagine HTML. È possibile?
tambler

1
Il problema principale è probabilmente che l'applicazione del visualizzatore dipende dal formato del file. Decidi quale formato vuoi e otterrai risposte specifiche.
Daniel Beck

Risposte:


11

lprè davvero il comando corretto. Non c'è molto da fare, solo

lpr filename.pdf

dovrebbe semplicemente funzionare, presumendo che la stampante predefinita sia impostata correttamente. In caso contrario, potresti doverlo fare

lpr -P printername filename.pdf

Nota che c'è una pagina man - "man lpr" se hai bisogno di vedere il contenuto. Sì, il demone di stampa CUPS utilizzato da OS X è già compatibile con PDF.


La soluzione fornita fornisce pdf di dimensioni zero su Yosemite. Qualche idea su come risolverlo?
Stanislav Mekhonoshin,

Ci scusiamo per la duplicazione. La soluzione fornita fornisce pdf di dimensioni zero su Yosemite, quando sto cercando di stampare il documento .pages. RTF o txt sono stampati bene. Qualche idea su come aggiustarlo?
Stanislav Mekhonoshin,

lpr non genera file pdf, quindi non sono sicuro di aver compreso il commento. Non è possibile generare file pdf con lpr.
Perry,

4
Questo non risponde alla domanda originale in quanto era come 'stampare in pdf', non stampare un pdf.
Dorien,

5

So di aver visto qualcosa in una cartella di sistema semplicemente nascosta:

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

Ho creato una nuova applicazione da AppleScript ma anche la chiamata diretta dello script dovrebbe funzionare.

EDIT: in realtà puoi semplicemente chiamare

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

6
Questa risposta è obsoleta. Testato su OS X 10.9.5.
4ae1e1,

@ 4ae1e1 No, non lo è. Solo quel "convert" non esiste. È un link simbolico a / usr / sbin / cupsfilter e cupsfilter funzionerà ancora in questo modo anche su 10.13.6.
cde

3

1) L'elaboratore di testi Open Source, AbiWord , include un'opzione di conversione tra tutti i formati che conosce sulla riga di comando, incluso PDF, ad es.

abiword --to=pdf filename.html

(Gestirà anche, ad esempio, file .doc di MS Word, .docx, .odt, .rtf, ecc., Sia input che output.)

So che è disponibile per Mac, anche se non l'ho mai usato su un Mac.

2) Il ebook-convertprogramma da riga di comando di calibre (su Mac è necessario seguire le istruzioni qui per ottenere gli strumenti da riga di comando) è utile anche per molti formati.

ebook-convert filename.html filename.pdf

Può gestire input .rtf e .odt e molti formati di ebook come .epub e .mobi.

3) PrinceXML può essere utilizzato dalla riga di comando e converte HTML in PDF in modo molto bello.

4) C'è wkhtmltopdf , che utilizza il motore webkit per convertire HTML in PDF dalla riga di comando. Non l'ho mai provato.

5) Posso pensare ad altri metodi usando, ad esempio, ConTeXt o pdflatex, ma sono sempre più coinvolti.


1
NB: AbiWord non funziona su Mac basato su Intel
inspectorG4dget il

2

Per i file di testo normale, è possibile utilizzare enscript(fornito con OS X) per generare un file PostScript.

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

L'app Anteprima di OS X può aprire (e convertire) in PDF oppure puoi installare ps2pdf (l'ho installato tramite macports ) e convertirlo dalla riga di comando.

$ ps2pdf ~/Desktop/profile.ps ~/Desktop/profile.pdf

E se volessi fare qualcosa di più intenso dal punto di vista grafico? Ad esempio, convertire una pagina HTML in PDF dal terminale?
tambler

So che è vecchio, ma PhantomJS può farlo, e lo fa molto bene.
Brad


1

Prima ottenere il nome della stampante

lpstat -p

Quindi utilizzare il nome della stampante (Canon1234 - ad es.)

lp -d Canon1234 PathToDocument.pdf

Op sta cercando di stampare un file arbitrario su un documento pdf, non di stampare un pdf su una vera stampante.
cde

0

Per i file di pagine Web locali, puoi provare a utilizzare Scarica URL come azione di Automator PDF . Scarica e installa.


Ho dovuto avviare Automator in modalità 32 bit:

testo alternativo


Crea un Automator applicazione che automaticamente riceve i file e le cartelle come input , con questa azione come l'unico. Salva ad es Save as PDF. Come .

Apri la finestra di dialogo Ottieni informazioni dell'applicazione e seleziona Apri in modalità 32 bit anche qui. Fare doppio clic una volta per assicurarsi che Launch Services conosca l'applicazione.


È possibile utilizzare questa applicazione dalla riga di comando in questo modo:

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

Naturalmente, puoi racchiuderlo in un bel AppleScript .scpt, in una bashfunzione, in uno script di shell o altro.


Questa soluzione è in realtà piuttosto flessibile. Sono stato in grado di convertire file di testo e file HTML e anche l'azione di Automator è alquanto configurabile.


0

In realtà è molto più semplice di così. Puoi semplicemente digitare dalla riga di comando open *.pdfe Anteprima si aprirà con tutti i file lì. Stranamente, se si digita, open *.pdf */*.pdfsi ottengono due finestre. In ognuno devi quindi andare nella barra laterale, selezionare uno dei formati boxy (se ci sono molti file che si apre di default nel formato elenco che non funziona) digitare CMD- Aper selezionare tutto, quindi utilizzare la stampa- comando di pagine selezionate per ottenerli tutti.


0

è possibile aggiungere il driver della stampante pdf dall'uso pdf printer

  • prima installa pdf printerdal negozio quindi
  • inizio pdf printer
  • vai alle preferenze di sistema

  • aprire stampanti e scanner

  • fare clic sul +pulsante

  • nell'elenco delle stampanti selezionare pdf printer

  • aspetta un secondo

  • quindi fai clic su Aggiungi

  • imposta pdf printercome stampante predefinita quindi chiudi ...

aprire il terminale quindi eseguire il comando per stampare un file

lp /path/to/your/file/to/print.txt
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.