Est-il possible d'imprimer au format PDF à partir du terminal Mac?

19

Est-il possible de prendre un fichier et de l'imprimer au format PDF en utilisant uniquement des commandes de terminal? Je suppose que vous utiliseriez d'une manière ou d'une autre la commande lpr, mais je n'ai pas encore découvert la syntaxe correcte.

dompteur
la source
Quel type de fichier? texte brut?
Doug Harris
1
@Daniel, j'aurais dû être plus clair dans ma question: quel type de fichier source? - Ma réponse ci-dessous fonctionnera pour les fichiers en texte brut, mais pas pour les images.
Doug Harris
@Doug Je m'excuse, j'ai mal lu la question.
Daniel Beck
1
@Daniel - Ce que je vise vraiment, c'est quelque chose de plus intensif graphiquement, disent les pages HTML. Est-ce possible?
tambler
1
Votre problème principal est probablement que l'application de visualisation dépend du format de fichier. Décidez quel format vous voulez et vous obtiendrez des réponses spécifiques.
Daniel Beck

Réponses:

11

lprest en effet la commande correcte. Il n'y a pas grand chose, juste

lpr filename.pdf

devrait simplement fonctionner, en supposant que l'imprimante par défaut est correctement configurée. Sinon, vous devrez peut-être faire

lpr -P printername filename.pdf

Notez qu'il y a une page de manuel - "man lpr" si vous avez besoin de voir le contenu. Oui, le démon d'impression CUPS qu'OS X utilise est déjà compatible PDF.

Poiré
la source
La solution fournie donne un pdf de taille nulle sur Yosemite. Des idées pour le résoudre?
Stanislav Mekhonoshin
Désolé pour la duplication. La solution fournie donne un pdf de taille nulle sur Yosemite, lorsque j'essaie de créer un document .pages. RTF ou txt sont bien imprimés. Des idées comment résoudre ce problème?
Stanislav Mekhonoshin
lpr ne génère pas de fichiers pdf, donc je ne suis pas sûr de comprendre le commentaire. Vous ne pouvez pas générer de fichiers pdf avec lpr.
Perry
4
Cela ne répond pas à la question d'origine, car il s'agissait de savoir comment «imprimer au format PDF», pas imprimer un fichier PDF.
dorien
5

Je sais que j'ai vu quelque chose dans un dossier système simplement caché:

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

J'ai créé une nouvelle application à partir d'AppleScript, mais appeler directement le script devrait également fonctionner.

EDIT: en fait, vous pouvez simplement appeler

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

la source
6
Cette réponse est obsolète. Testé sous OS X 10.9.5.
4ae1e1
@ 4ae1e1 Non, ce n'est pas le cas. Juste que "convertir" n'existe pas. C'est un lien symbolique vers / usr / sbin / cupsfilter et cupsfilter fonctionnera toujours de cette façon même sur 10.13.6.
cde
3

1) Le traitement de texte Open Source, AbiWord , comprend une option de conversion entre tous les formats qu'il connaît sur la ligne de commande, y compris PDF, par exemple,

abiword --to=pdf filename.html

(Il gère également, par exemple, les fichiers MS Word .doc, .docx, .odt, .rtf, etc., à la fois en entrée et en sortie.)

Je sais qu'il est disponible pour Mac, même si je ne l'ai jamais utilisé sur un Mac.

2) Le ebook-convertprogramme de ligne de commande de calibre (sur mac, vous devez suivre les instructions ici pour obtenir les outils de ligne de commande) est également utile pour de nombreux formats.

ebook-convert filename.html filename.pdf

Il peut gérer les entrées .rtf et .odt, ainsi que de nombreux formats de livres électroniques tels que .epub et .mobi.

3) PrinceXML peut être utilisé sur la ligne de commande et convertira très bien le HTML en PDF.

4) Il y a wkhtmltopdf , qui utilise le moteur webkit pour convertir HTML en PDF à partir de la ligne de commande. Je ne l'ai jamais essayé.

5) Je peux penser à d'autres méthodes utilisant, par exemple, ConTeXt ou pdflatex, mais elles s'impliquent de plus en plus.

frabjous
la source
1
NB: AbiWord ne fonctionne pas sur Mac basé sur Intel
inspectorG4dget
2

Pour les fichiers en texte brut, vous pouvez utiliser enscript(fourni avec OS X) pour générer un fichier postscript.

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

L'application de prévisualisation d'OS X peut s'ouvrir (et convertir) au format PDF, ou vous pouvez installer ps2pdf (je l'ai installé via macports ) et convertir à la ligne de commande.

$ ps2pdf ~/Desktop/profile.ps ~/Desktop/profile.pdf
Doug Harris
la source
Et si je voulais faire quelque chose de plus intensif graphiquement? Dites, convertir une page HTML en PDF à partir du terminal?
tambler
Je sais que c'est vieux, mais PhantomJS peut le faire, et il le fait très bien.
Brad
2

Vous pouvez également utiliser pandoc sur http://johnmacfarlane.net/pandoc/installing.html

Avec cette commande, vous convertiriez le fichier html en pdf:

pandoc -o output.pdf input.html

Mais notez que pandoc utilise LaTeX pour la conversion, vous devez donc avoir un système LaTeX installé ( http://www.tug.org/mactex/ ).

Pandoc peut également se convertir à d'autres formats tels que .odt, .docx et .epub

nnn
la source
1

Obtenez d'abord le nom de l'imprimante

lpstat -p

Utilisez ensuite le nom de l'imprimante (Canon1234 - par exemple)

lp -d Canon1234 PathToDocument.pdf
Thejus Krishna
la source
Op cherche à imprimer un fichier arbitraire dans un document pdf, pas à imprimer un pdf sur une vraie imprimante.
cde
0

Pour les fichiers de pages Web locales, vous pouvez essayer d'utiliser les URL de téléchargement comme action PDF Automator. Télécharger et installer.


J'ai dû démarrer Automator en mode 32 bits:

texte alternatif


Créez une application Automator qui reçoit automatiquement les fichiers et les dossiers en entrée , cette action étant la seule. Enregistrer par exemple sous Save as PDF.

Ouvrez la boîte de dialogue Obtenir des informations de votre application et cochez Ouvrir en mode 32 bits également ici. Double-cliquez dessus une fois pour vous assurer que Launch Services connaît l'application.


Vous pouvez utiliser cette application à partir de la ligne de commande comme ceci:

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

Bien sûr, vous pouvez envelopper cela dans un joli AppleScript .scpt, une bashfonction, un script shell ou autre.


Cette solution est en fait assez flexible. J'ai pu convertir des fichiers texte et des fichiers HTML, et l'action Automator est également quelque peu configurable.

Daniel Beck
la source
0

En fait, c'est beaucoup plus facile que ça. Vous pouvez simplement taper sur la ligne de commande open *.pdfet Aperçu s'ouvrira avec tous les fichiers qui s'y trouvent. Bizarrement, si vous tapez, open *.pdf */*.pdfvous obtenez deux fenêtres. Dans chacun, vous devez ensuite aller dans la barre latérale, sélectionnez l'un des formats boxy (s'il y a beaucoup de fichiers, il s'ouvre par défaut au format liste qui ne fonctionne pas) tapez CMD- Apour tout sélectionner, puis utilisez l'impression- commande selected-pages pour les obtenir toutes.

Joanna Bryson
la source
0

vous pouvez ajouter un pilote d'imprimante pdf à l'aide de pdf printer

  • première installation pdf printer partir du magasin puis
  • début pdf printer
  • aller aux préférences système

  • imprimantes et scanners ouverts

  • cliquez sur le +bouton

  • dans la liste des imprimantes sélectionnez pdf printer

  • attends une seconde

  • puis cliquez sur ajouter

  • définir pdf printercomme imprimante par défaut puis fermer ...

ouvrir le terminal puis exécuter la commande pour imprimer un fichier

lp /path/to/your/file/to/print.txt
NuOne
la source