Comment imprimer un fichier normal en pdf à partir de la ligne de commande


34

Dans gedit, l’impression d’un fichier donne une option d’impression sur fichier où le fichier peut être enregistré au format PDF. Comment puis-je faire la même chose depuis la ligne de commande?

Réponses:


43

Voici une solution qui n'implique pas OpenOffice:

  1. sudo apt-get install enscript

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

Il y a plus d'options pour enscript, par exemple, -Bomettre l'en-tête de page. Voir man enscriptpour toutes les options.


1
Une bonne alternative à Stefano, en particulier pour ceux qui n'utilisent pas open / libreoffice car l'unoconv dépend de l'installation de l'un de ces logiciels.
Allan

+1 pour la bonne réponse, celle que je m'apprêtais à donner, je viens de décider de donner une réponse qui, je pense, va ajouter quelque chose à ce qui est déjà là.
Sabacon

N'y a-t-il aucun programme ou commande bash intégré pour le faire?
Kashminder

1
Merci! Cela fonctionne pour la plupart des textes, mais enscript ne fonctionne qu'avec du codage ancien, il ne fonctionne pas avec UTF-8 par exemple, vous ne pouvez donc pas convertir un texte s'il contient le symbole de l'euro (€), par exemple ...
Antoine Dusséaux

20

sans installer aucun des logiciels mentionnés ci-dessus, on peut simplement faire ce qui suit avec déjà installé cupsfilter:

cupsfilter foo.txt > foo.pdf

(pour les options, veuillez vous reporter aux pages de manuel de cupsfilter :-))


2
La seule réponse ici qui a traité mes fichiers texte UTF8 sans problèmes :) et plus facile à faire avec pratiquement aucune dépendance
Axel Advento

13

LA MANIÈRE SIMPLE D'ENREGISTREMENT

sudo apt-get installe cups-pdf enscript

Ensuite, exécutez enscript sur votre fichier avec le commutateur -P et le PDF de description de l’imprimante dans ce cas.

enscript -B -PPDF test.txt

Une imprimante avec description PDF a été créée lors de l’installation de cups-pdf. Lorsque vous utilisez enscript avec cette imprimante, votre document est envoyé à l’imprimante PDF et est imprimé dans un fichier, créé au format .pdf dans votre répertoire / home / PDF, La commande ci-dessus imprimera le fichier texte test.txt au format PDF dans le répertoire PDF.

UTILISER UNOCONV

sudo apt-get install unoconv

Vous pouvez utiliser unoconv en mode autonome, cela signifie qu'en l'absence d'un auditeur OpenOffice, il lancera son propre:

Dans le répertoire où se trouve votre fichier, exécutez:

unoconv -f pdf test.txt

cela créera un joli fichier pdf de test.txt. dans le répertoire en cours


enscript foo.txt -o bar.pdffonctionne assez bien; Merci!
Thufir

6

Il existe un programme en ligne de commande capable de convertir tous les formats Open / Libre Office pris en charge, appelés unoconv . Par conséquent, si vous devez convertir par lots avec un script, il vous sera utile.

sudo apt-get install unoconv

Pas ce que l'OP a demandé.
enzotib

2
? OP? qui est OP et pourquoi voter ceci quand cela répond à la question?
RolandiXor

5

paps est une meilleure alternative que enscript

paps file.txt | ps2pdf - output.pdf

7
Bienvenue sur Ask Ubuntu hwc! Bien que votre message réponde à la question, il est toujours préférable d'inclure plus d'informations. Par exemple, pourquoi est papsune meilleure alternative? Et si papsn'est pas installé par défaut, quelle est la commande pour l'installer? Vous pouvez toujours modifier votre réponse en cliquant à editdroite sous le corps de la réponse. Merci!
Alaa Ali

5

Pandoc est un outil indispensable pour la conversion de plusieurs langages de balisage. Pour commencer, installez le convertisseur pandoc:

sudo apt-get install pandoc

La syntaxe générale et la plus utilisée pour pandoc est la suivante:

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

Veuillez noter que vous devez d'abord installer le package texlive-latex-base avant de pouvoir convertir au format PDF. Sinon, vous obtiendrez une erreur suivante:

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

Pour l'installer:

sudo apt-get install texlive-latex-base

Maintenant, vous pouvez facilement convertir n'importe quel fichier en pdf.

pandoc -t txt -t pdf source.txt

remplacez txt par votre format texte (odt - html - ....)


1
Par rapport aux autres réponses, pandoc plus texlive produit de mauvais résultats (ne respecte pas les nouvelles lignes) et est excessif et déroutant. Beaucoup plus de paquets sont nécessaires, y compris texlive, texlive-fonts-recommandé, ruby, etc. Par exemple, je reçois pandoc: Unknown writer: pdfjusqu'à ce que j'installe texlive-latex-base. C'est sur fidèle. Voir github.com/jgm/pandoc/issues/1155 Ensuite, j'ai eu une erreur concernant une police manquante, puis une autre sur url.sty, etc.
nealmcb

2

Comme indiqué ci-dessus, il enscripts'agit d'un moyen courant de convertir du texte en postscript, qui peut ensuite être converti au format PDF.
Un outil similaire existe depuis longtemps a2ps. Il comporte un grand nombre d'options, notamment la mise en place de plusieurs pages sur une page physique. Installez ap2s avec sudo apt-get install a2ps.

Autant que je sache, enscript et a2ps font le même travail, mais leur interface est différente et YMMV pour chacun d’eux.


Un exemple d'utilisation de a2ps pourrait aider. L'option --delegate semble être nécessaire pour les fichiers PDF, mais la page de manuel n'y aide pas vraiment.
Nealmcb

2

J'ai eu quelques problèmes avec l'allemand Umlaute (ÄÖÜ) avec les solutions mentionnées ci-dessus. Ou, dans le cas des copies, le fichier PDF résultant ne comporte pas de calque de texte.

La meilleure solution pour moi était d'utiliser wkthmltopdf . Cela semble ne pas être documenté, mais vous pouvez facilement convertir des fichiers texte en fichiers PDF en utilisant cette syntaxe:

wktmltopdf <textfile> <pdffile>

wkhtmltopdf peut gérer les fichiers UTF-8 (contrairement à Enscript). Tous les caractères problématiques comme ÄÖÜß etc. seront affichés correctement.


Ce problème a été corrigé dans la dernière version de paps, capable de produire un fichier PDF sélectionnable. Voir: github.com/dov/paps .
Dov Grobgeld le

1

Vous pouvez utiliser a2x

a2x - convertit un fichier texte Asciidoc en PDF, XHTML, Aide HTML, ODF, page de manuel ou texte brut

Pour installer a2x:

sudo apt-get install asciidoc

par exemple:

 a2x -f pdf testfile.txt

0

Vous pouvez aussi utiliser u2ps .

Cela génère à la fois ps et pdf. Cela accepte le texte UTF-8 et prend en charge la coloration syntaxique à l'aide de balises Pango.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.