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.
-
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.
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.
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
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.
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
.
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
Il existe également un convertisseur UTF-8 vers PostScript appelé paps
.
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
LibreOffice fonctionne pour cela. Usage:
libreoffice --convert-to "pdf" file.txt
La sortie sera appelée file.pdf
.
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