it-swarm.cn

怎么把TXT转换成PDF?

我想转换.txt个文件到.pdf。我正在使用这个:

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

但这会产生一个“错误”-如果文本文件中有很长的一行,它不会被包裹。

输入文本

Screenshot of the input file

输出PDF

Screenshot of the output PDF

-

同样,如果输出PDF)可以包含文本而不是文本图像,那也很好。

我有许多很多TXT=文件。因此不想手工完成。)我需要一种自动解决方案,就像上面提到的那样。

45
LanceBaynes

一种方法是使用CUPS,然后使用PDF伪打印机)将文本“打印”到PDF)文件中。

另一种方法是使用 enscript 编码为后记,然后使用ghostscript软件包中的ps2pdf文件将后记转换为PDF)。

22
Keith

pandoc 可以做到这一点。它更专注于将标记的文本转换为各种格式,但是使用简单的纯文本应该没有问题。

pandoc input.txt -o output.pdf
39
evilsoup

LibreOffice/OpenOffice以及大多数其他字处理器(Abiword)可以很容易地做到这一点。

有一个名为unoconv的小实用程序,它使用LibreOffice代码库在命令行上进行文件格式转换。它可以读写LibreOffice可以使用的格式的任意组合,并且可以很轻松地在命令行上完成docpdf转换。从txtpdf简单就容易了。

18
Caleb

您可以使用Vim将文本打印到PostScript文件,然后将其转换为PDF,只要Vim是使用+postscript功能进行编译的。

为此,请使用:hardcopy > {filename}命令。例如,您可以打开example.txt并执行

:hardcopy > example.ps

会产生一个文件example.ps,其中包含example.txt中的所有文本。 PostScript文件中每个页面的标题将包含原始文件名和页面号。

然后,您可以使用以下命令将PostScript文件转换为PDF

ps2pdf example.ps

将会创建example.pdf

您可以使用以下命令直接在终端上执行相同操作(无需与Vim进行交互)

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

这会在Vim中打开example.txt并执行传递给-c选项的命令,在这种情况下,该命令是hardcopy命令,然后是quit(q)命令。然后,它执行ps2pdf以生成最终文件。

有关更多选项,请参见带有:help :hardcopy的帮助文件。

15
Gonçalo Ribeiro

只需使用 text2pdf ,它是免费的且开源的。在此链接中,您可以下载源代码或Windows,solaris,dos的预编译二进制文件。

我可以毫无问题地将其用于AIX OS。编译非常简单,只需将text2pdf.c和Makefile保存到同一目录中并输入make。 (在这里,我在AIX上设置了变量CC = gcc,在Linux上这不是问题)

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

还有一个UTF-8到PostScript的转换器,称为 paps

7
tunit

使用脚本创建一个.ps文件,然后使用ps2pdf(或ps2pdfwr)转换为.pdf

下面的脚本创建一个左右间距为10 pt的.pdf文件,并使用宽度为7.3 pt和高度为10 pt的信使字体,因此132 col的打印输出适合8 1/2 X 11的页面。使用脚本来设置页面,字体等。

$ 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为此工作。用法:

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

输出将称为file.pdf

3
jbrock

由于默认情况下许多发行版都包含它,因此可以从cli调用libreoffice的较短方法:

soffice --convert-to pdf input.txt

soffice支持的扩展名,我们可以从/转换为:

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