この古い投稿を見つけて申し訳ありませんが、最高の HTML/PDF 変換ツールを検索した結果、最初に出てきました。
2019 年 5 月更新
ありがたいことに、プロセス全体が TheCodingMachine によって Docker イメージにパックされています:https://github.com/thecodingmachine/gotenberg
これにより、本番環境での chrome ベースの pdf 生成のメンテナンスと使用が非常にスムーズになり、面倒がなくなります。
Chrome 59 以降、新しいヘッドレス モードがあります。他のすべてのソリューションは、フレックスボックスなどの新しい (またはそれほど新しくない) CSS 機能に本当に苦労しているため、私の場合、これが適切な PDF 出力を生成する唯一のソリューションでした。
ローカルの html ファイルから PDF を作成するには、次のコマンドを使用します:chrome --headless --disable-gpu --print-to-pdf file:///path/to/myfile.html
.
Mac OS 置換 chrome
の場合 /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome
で .
これまでに気付いた唯一の欠点は、(現在) stdin 経由で html を渡すことができないことですが、一時ファイルの作成はそれほど問題ではありません。
詳細については、https://developers.google.com/web/updates/2017/04/headless-chrome#create_a_pdf_dom を参照してください
更新:結局のところ、chrome 担当者はおそらくこのタスクのためにある種のノード モジュールを提供し、最終的にはヘッドレス モードを非推奨にするでしょう (https://bugs.chromium.org/p/chromium/issues/detail?id =719921).
最善の策は、https://developers.google.com/web/updates/2017/04/headless-chrome#node に記載されている puppeteermodule を使用してノードベースのアプローチを使用し、Page.printToPDF コマンドを使用してページを印刷することです。 、これにより、追加の構成も可能になります。
もちろん、ノード以外の環境 (PHP スクリプトなど) からデバッグ コンソール Websocket に接続することもできます。
注:この回答は 2008 年のもので、現在はおそらく正しくありません。他の回答を確認してください
PrinceXML は私が見た中で最高のものです (通常の HTML と XML/XHTML を解析します)。どのように最高ですか?まあ、それはかなり印象的だと思ったacid2テストに合格しています
ただし、かなり高価です
WeasyPrint は、選択可能なテキストとハイパーリンクを備えた優れた PDF を生成します。
weasyprint input.html output.pdf
wkhtmltopdf
を使用する場合 代わりに、次のオプションを試してください:
wkhtmltopdf --margin-bottom 20mm --margin-top 20mm --minimum-font-size 16 ...