从命令行将文本文件“打印”到具有布局的图像

从命令行将文本文件“打印”到具有布局的图像

我有很长的日志文件,我想将其作为图像查看。我不想对我的文本编辑器进行屏幕截图。我正在使用 LibreOffice 将它们导出为 jpg,但我必须将所有事情都做一遍。步。在。 A、时间。我正在寻找某种命令行布局程序,表面上看起来像这样:

$ txt2jpg -i myfile.txt -o mynewfile --format=jpg --height=872 \
--width=600 --margins=40px --font=monospace

这将myfile.txt作为输入并创建一系列名为mynewfile01.jpg, mynewfile02.jpg, ..., mynewfileNN.jpg输出的文件。这些图像高 872 像素,宽 600 像素,四周边距为 40 像素,并使用名为等宽字体的字体。显然,实际的程序在细节上会有所不同,但应该能够获取一个文本文件并输出一系列 jpg(或 png 或 bmp 或其他)作为输出,并能够格式化输出图像字体大小等。

答案1

用于打印简单文本文件的传统工具是enscript.这会产生 PostScript 输出。您可以通过多种方式将其转换为图像。给出良好结果的一种方法是pdftopng需要将 PostScript 打包成 pdf 作为输入(例如使用ps2pdf)并生成 png 图像文件。因此,使用convertImageMagick 转换为 jpg 你最终会得到:

enscript < myfile.txt --media A4 -f CourierBold10 -o - |
ps2pdf - >out.pdf
pdftopng -mono out.pdf out # creates files out-000001.png etc
for f in out-*.png
do convert -resize 600x872 "$f" "${f/png/jpg}"
   rm "$f"
done
rm out.pdf

您的输出位于 files 中out*jpg

相关内容