我想将一些 html 文件转换为单个 pdf 文件。
我用了
htmldoc
:htmldoc --webpage --header "/" --footer "" -f all.pdf 0010.html 0099.html
输出结果
all.pdf
有些部分转换得不太好。例如,数学表达式⌈(1.02 n)⌉
(红色框中)显示不正确,并且添加了一些小图标(绿色框中)。(见下图。)有一个
--charset
选项htmldoc
http://sunsite.ualberta.ca/Documentation/Misc/htmldoc-1.8.23/htmldoc.html。我没找到utf-8
。哪一个可以很好地显示数学表达式?我该如何
htmldoc
正确使用将html文件转换并合并为pdf文件,以尽可能避免上述问题?我通过在 Google Chrome 浏览器中将 html 文件打印为 pdf 文件来排除问题来自 html 文件的可能性。它看起来很好,没有上述问题。(见下图。)
但我喜欢命令行解决方案,它最好能够像
htmldoc
使用选项将 html 文件结构化为 pdf 文件一样工作--book
。是否有类似的命令行程序
htmldoc
可供我尝试,看看它们是否可以正常工作而不会出现上述问题?
我的所有文件(html 文件和生成的 pdf 文件)都在这个 tar 档案:
0010_files 0010.html 0099.html 0099_files all.pdf 0010.pdf
其中是由两个 html 文件all.pdf
生成的单个 pdf 文件, 是在 Google Chrome 中打开并打印生成的 pdf 文件。htmldoc
0010.pdf
0010.html
输出htmldoc
和我手动添加的三个轮廓框:
0010.html
Google Chrome打印的输出:
答案1
html2doc 不支持 UTF-8。可能在 1.9 版中会支持。
这是另一个选择:
安装wkhtmltopdf
:使用 WebKit 将 html 转换为 pdf 或图像的命令行实用程序。
sudo apt-get install wkhtmltopdf
并安装poppler-utils
:
sudo apt-get install poppler-utils
转到你的 html 文件:
cd <your_html_path>
并使用以下命令开始单个文件的转换:
wkhtmltopdf 0010.html 0010.pdf
wkhtmltopdf 0099.html 0099.pdf
或者一次针对所有文件:
for f in *.html; do wkhtmltopdf "$f" "${f%%.*}.pdf"; done
将所有单个pdf文件转换为一个:
pdfunite *.pdf out.pdf
或者作为脚本:
#!/bin/bash
# Convert all html files in the current folder into one pdf
#
for f in *.html; do wkhtmltopdf "$f" "${f%%.*}.pdf"; done
pdfunite *.pdf out.pdf
有关 wkhtmltopdf 的更多信息和选项这里。