我想将.txt
文件转换为.pdf
.我正在使用这个:
ls | while read ONELINE; do convert -density 400 "$ONELINE" "$(echo "$ONELINE" | sed 's/.txt/.pdf/g')"; done
但这会产生一个“错误”——如果文本文件中有很长的一行,它不会被换行。
输入文本
输出PDF
--
此外,如果输出的 PDF 可以包含文本,而不是文本图像,那就太好了。
我有很多很多很多 TXT 文件。所以不想手工做。我需要一种自动解决方案,就像我上面提到的那样。
答案1
潘多克可以做到这一点。它更专注于将标记文本转换为各种格式,但处理简单的纯文本应该没有问题。
pandoc input.txt -o output.pdf
答案2
您可以使用 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
这将example.txt
在 Vim 中打开并执行传递给选项的命令-c
,在本例中是一个hardcopy
命令,后跟一个 quit ( q
) 命令。然后它执行ps2pdf
以生成最终文件。
有关更多选项,请参阅带有:help :hardcopy
.
答案3
一种方法是使用 CUPS 和 PDF 伪打印机将文本“打印”到 PDF 文件。
另一种是使用铭刻编码为 postscript,然后使用 ghostscript 包中的 ps2pdf 文件从 postscript 转换为 PDF。
答案4
LibreOffice 就是为此而工作的。用法:
libreoffice --convert-to "pdf" file.txt
输出将被称为file.pdf
.