it-swarm-eu.dev

Jak převést TXT do PDF?

Chci převést .txt soubory do .pdf. Používám toto:

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

To však vede k jedné „chybě“ - pokud je v textovém souboru velmi dlouhý řádek, nezabalí se.

Vstupní text

Screenshot of the input file

Výstupní PDF

Screenshot of the output PDF

-

Také by bylo skvělé, kdyby výstup PDF mohl obsahovat text místo obrázků textu).

Mám mnoho-mnoho-mnoho TXT souborů. Takže to nechci dělat ručně. Potřebuji automatické řešení, jako to, které jsem zmínil výše.

45
LanceBaynes

Jednou z metod je použití CUPS a PDF psuedo-tiskárna) k „tisku“ textu do souboru PDF).

Dalším je použití enscript pro enkódování do postscript a pak převod z postscript na PDF pomocí souboru ps2pdf z balíčku ghostscript).

22
Keith

pandoc to dokáže. Je více zaměřen na převod označeného textu do různých formátů, ale neměl by mít problémy s jednoduchým prostým textem.

pandoc input.txt -o output.pdf
39
evilsoup

LibreOffice/OpenOffice stejně jako většina ostatních textových procesorů (Abiword) to dokáže docela snadno.

Existuje malý obslužný program s názvem unoconv, který používá kódovou základnu LibreOffice k provádění převodů formátu souborů na příkazovém řádku. Dokáže číst a zapisovat libovolnou kombinaci formátů, které LibreOffice dokáže, a velmi usnadňuje provádění příkazů, jako jsou konverze docpdf. Jednoduché txt to pdf by pro něj bylo snadné.

18
Caleb

Můžete vytisknout text do PostScriptového souboru pomocí Vim a poté jej převést do PDF, pokud byl Vim kompilován s funkcí +postscript.

K tomu použijete příkaz :hardcopy > {filename}. Například můžete otevřít example.txt A spustit

:hardcopy > example.ps

který vytvoří soubor example.ps obsahující veškerý text v example.txt. Záhlaví každé stránky v souboru PostScript bude obsahovat původní název souboru a číslo stránky.

Pak můžete převést soubor PostScript na PDF pomocí následujícího příkazu)

ps2pdf example.ps

který vytvoří example.pdf.

Totéž můžete provést přímo z terminálu (bez interakce s Vim) pomocí následujícího příkazu

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

Tím se ve Vimu otevře example.txt A provede se příkaz předaný možnosti -c, Což je v tomto případě příkaz hardcopy následovaný ukončením (q) příkaz. Poté provede ps2pdf A vytvoří konečný soubor.

Další možnosti najdete v souborech nápovědy s :help :hardcopy.

15
Gonçalo Ribeiro

Stačí použít text2pdf , který je zdarma a opensource. Na odkazu si můžete stáhnout zdroj nebo předkompilovaný binární soubor pro windows, solaris, dos.

Dokážu to bez problémů použít v operačním systému AIX. Kompilace je velmi jednoduchá, uložte text2pdf.c a Makefile do stejného adresáře a zadejte make. (zde nastavím proměnnou CC = gcc na AIX, na linuxu to nebude problém)

$ ./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

K dispozici je také převodník UTF-8 na PostScript s názvem paps .

7
tunit

Použijte enscript k vytvoření souboru .ps a pak ps2pdf (nebo ps2pdfwr) převést na .pdf

Následující skript vytvoří soubor PDF s levým a pravým okrajem 10 pt a používá kurýrní písmo, které je široké 7,3 bodů a vysoké 10 bodů, takže na stránku 8 1/2 X 11 se vejde výtisk 132 sloupců. Použijte enscript k nastavení stránky, písem atd.

$ 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 na tom pracuje. Používání:

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

Výstup bude nazván file.pdf.

3
jbrock

Vzhledem k tomu, že je ve výchozím nastavení součástí mnoha distribucí, kratší způsob, jak zavolat libreoffice od Cli:

soffice --convert-to pdf input.txt

Podporovaná rozšíření od soffice, můžeme převést z/do:

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