web-dev-qa-db-fra.com

Comment convertir TXT en PDF?

Je veux convertir .txt fichiers vers .pdf. J'utilise ceci:

ls | while read ONELINE; do convert -density 400 "$ONELINE" "$(echo "$ONELINE" | sed 's/.txt/.pdf/g')"; done

Mais cela produit une "erreur" - s'il y a une très longue ligne dans le fichier texte, elle n'est pas encapsulée.

Texte de saisie

Screenshot of the input file

Sortie PDF

Screenshot of the output PDF

-

En outre, il serait également intéressant que la sortie PDF puisse contenir du texte, au lieu d'images de texte.

J'ai plusieurs-plusieurs-plusieurs TXT. Donc, je ne veux pas le faire à la main. J'ai besoin d'une solution automatique, comme celle que j'ai mentionnée ci-dessus.

45
LanceBaynes

Une méthode consiste à utiliser CUPS et l'imprimante-imprimante PDF PDF pour "imprimer" le texte dans un fichier PDF PDF.

Une autre consiste à utiliser enscript pour coder en postscript puis convertir de postscript en PDF en utilisant le fichier ps2pdf du paquet ghostscript.

22
Keith

pandoc peut le faire. Il est plus axé sur la conversion de texte balisé en différents formats, mais il ne devrait pas avoir de problème avec un simple texte en clair.

pandoc input.txt -o output.pdf
39
evilsoup

LibreOffice/OpenOffice ainsi que la plupart des autres traitements de texte (Abiword) peuvent le faire assez facilement.

Il existe un petit utilitaire appelé unoconv qui utilise la base de code LibreOffice pour effectuer des conversions de format de fichier sur la ligne de commande. Il peut lire et écrire n'importe quelle combinaison de formats que LibreOffice peut et facilite la conversion de doc en pdf sur la ligne de commande. Un simple txt à pdf lui serait facile.

18
Caleb

Vous pouvez imprimer du texte dans un fichier PostScript à l'aide de Vim, puis le convertir en PDF, tant que Vim a été compilé avec le +postscript fonctionnalité.

Pour cela, vous utilisez le :hardcopy > {filename} commande. Par exemple, vous pouvez ouvrir example.txt et exécuter

:hardcopy > example.ps

qui produira un fichier example.ps contenant tout le texte dans example.txt. L'en-tête de chaque page du fichier PostScript contiendra le nom de fichier d'origine et le numéro de page.

Ensuite, vous pouvez convertir le fichier PostScript en un PDF en utilisant la commande suivante

ps2pdf example.ps

qui va créer example.pdf.

Vous pouvez faire de même directement depuis un terminal (sans interagir avec Vim) en utilisant la commande suivante

vim example.txt -c "hardcopy > example.ps | q"; ps2pdf example.ps

Cela ouvre example.txt dans Vim et exécute la commande passée à -c option, qui dans ce cas est une commande hardcopy suivie d'une commande quit (q). Ensuite, il exécute ps2pdf pour produire le fichier final.

Pour plus d'options, consultez les fichiers d'aide avec :help :hardcopy.

15
Gonçalo Ribeiro

Utilisez simplement text2pdf , qui est gratuit et open source. Sur le lien, vous pouvez télécharger la source ou le binaire précompilé pour windows, solaris, dos.

Je peux l'utiliser sans problème dans AIX OS. Très simple à compiler, enregistrez simplement le text2pdf.c et le Makefile dans le même répertoire et tapez make. (ici je mets la variable CC = gcc sous AIX, sous linux ce ne sera pas un problème)

$ ./text2pdf  -h

text2pdf [options] [filename]

  text2pdf makes a 7-bit clean PDF file (version 1.1) from any input file.
  It reads from standard input or a named file, and writes the PDF file
  to standard output.

  There are various options as follows:

  -h            show this message
  -f<font>      use PostScript <font> (must be in standard 14, default: Courier)
  -I            use ISOLatin1Encoding
  -s<size>      use font at given pointsize (default 10)
  -v<dist>      use given line spacing (default 12 points)
  -l<lines>     lines per page (default 60, determined automatically
                if unspecified)
  -c<chars>     maximum characters per line (default 80)
  -t<spaces>    spaces per tab character (default 8)
  -F            ignore formfeed characters (^L)
  -A4           use A4 paper (default Letter)
  -A3           use A3 paper (default Letter)
  -x<width>     independent paper width in points
  -y<height>    independent paper height in points
  -2            format in 2 columns
  -L            landscape mode

  Note that where one variable is implied by two options, the second option
  takes precedence for that variable. (e.g. -A4 -y500)
  In landscape mode, page width and height are simply swapped over before
  formatting, no matter how or when they were defined.

text2pdf v1.1 (c) Phil Smith, 1996
$ ./text2pdf  -f"Courier" -s6 -c216 -v6 -L -A4 ./rep3.txt >rep3.pdf
9
ceinmart

Il existe également un convertisseur UTF-8 vers PostScript appelé paps .

7
tunit

Utilisez enscript pour créer un fichier .ps, puis ps2pdf (ou ps2pdfwr) pour convertir en .pdf

Le script suivant crée un fichier .pdf avec des marges gauche et droite de 10 pt et utilise une police de messagerie de 7,3 points de large et de 10 points de haut, donc une impression de 132 couleurs tient sur une page de 8 1/2 X 11. Utilisez enscript pour configurer votre page, vos polices, etc.

$ enscript -B --margins=10:10: -o outputfile.ps -f [email protected]/10 inputfile
$ ps2pdfwr outputfile.ps newfile.pdf
$ rm outputfile.ps
5
Dan Walker

LibreOffice fonctionne pour cela. Usage:

libreoffice --convert-to "pdf" file.txt

La sortie sera appelée file.pdf.

3
jbrock

Puisqu'il est inclus par défaut dans de nombreuses distributions, un moyen plus court d'appeler libreoffice depuis le cli:

soffice --convert-to pdf input.txt

Extensions prises en charge par soffice, nous pouvons convertir de/vers:

ODF Spreadsheet                   .ods
ODF Spreadsheet Template          .ots
Flat XML ODF Spreadsheet          .fods
Unified Office Format Spreadsheet .uos
Microsoft Excel 2007-2013 XML     .xlsx
Microsoft Excel 2003 XML          .xml
Microsoft Excel 97-2003           .xls
Microsoft Excel 97-2003 Template  .xlt
Data Interchange Format           .dif
dBase                             .dbf
HTML Document (Calc)              .html
SYLK                              .slk
Text CSV                          .csv
Office Open XML Spreadsheet       .xlsx
Microsoft Excel 2007-2016 XML     .xlsm
2
NVRM