pythonはhtmlをpdfに変換するいくつかの方法です。
HTMLページをPDFに変換するのは多くの人によくある一つのニーズです。ブラウザでは、ブラウザの「印刷」機能を通じて直接にウェブページをPDFに印刷して出力することができます。
しかし、複数のホームページがあると困ります。
バイナリソフト
インターネット上にはHTMLをPDFに変換するソフトウェアやツールがたくさんあります。有名なのはカルリb、wkhtmltopdfです。
whtmltopdf
wkhtmltopdfは本当に優秀なHTML変換PDFツールです。QtのWebKitレンダリングエンジンにより、HTMLドキュメントをレンダリングしてPDFドキュメントまたは画像としてエクスポートします。
機能は非常に完璧ですが、レンダリングエンジンはQtのWebKitを使っていますので、ES 6のJavaScriptコードをサポートすることができません。ES 6を使って作成したHTMLページは実際の効果が出ないため、州の先生は最終的にそれを放棄しました。
カールib
Carlibは電子書籍管理ソフトであり、各種文書の変換ツールを提供しているので、HTMlからPDFへの電子書籍の変換ツールを利用して実現できます。
これらは、デスクトップ環境用のバイナリソフトウェアです。Pythonで使用するか、Popen()でこれらのバイナリソフトウェアのコマンドを呼び出すか、またはいくつかのサードパーティのパッケージモジュールを使用します。
純Pythonライブラリの実現
上記で紹介したPythonサードパーティ・モジュールは、HTMLからPDFへの変換作業をうまく行うことができますが、他のバイナリソフトをコンピュータに追加でインストールする必要があります。
バイナリソフトウェアの実現に依存しないで、次のような方式があります。
xhtml 2 pdf
これはReportLab、html 5 lib、PyPDF 2などのPythonモジュールに基づいて構築されたHTMLからPDF変換モジュールです。HTML 5、CSS 2.1、部分CSS 3文法をよくサポートできます。
Report Labモジュールによる開発ですので、中国語のサポートは環境によっては問題があります。また開発者の変更により、モジュールの機能にはいくつかの断層が現れました。しかし、非常に素晴らしいHTML変換PDFモジュールです。
weasyrint
これはHTMLとCSSの可視化レンダリングエンジンであり、HTMLドキュメントを印刷標準のPDFファイルとしてエクスポートすることができます。
xhtml 2 pdfモジュールもこのモジュールを使ってHTML変換PDFの動作を推奨しています。
このモジュールは機能が強く、効果が優れていますが、モジュールに依存する項目が多すぎます。
州の先生は今までWindowsパソコンにインストールしたことがありません。
ブラウザのシナリオ
上記の2つのスキームでは、バイナリプログラムの制御性はやや不足していますが、純粋なPythonで実現されるレンダリング解析は、機能的にも依存的にも友好的ではありません。
上記の2つの案を処理して、HTMlからPDFへの変換を第3の方法で行うことができます。それはWeb自動化テストのブラウザカーネルとQt for PythonのWebエンジンによって実現されます。
Web自動化ブラウザのカーネル
Pythonのパートナーは、Seleniumとpypeterの二つのWeb自動化テストモジュールを使ってデータ収集とWeb自動化テストを行うことが多いです。
この二つのモジュールはいずれも実際のブラウザを駆動してウェブページの操作を行うものです。これに基づいて、HTMLからPDFに移行する機能を実現するために、ブラウザで関連するAPIインターフェースを印刷するように呼び出すことができます。
例えば、pypeteerでは、次の例のようにHTML文書を開いてPDF文書に変換しても良い。
QtのWebエンジン
Qt 5では、Qtは古いWebKitの代わりに新しいChromiumカーネルをWebのレンダリングエンジンとして使用している。Qtで近代化できるブラウザの開発を行う。
QtのPython(PyQt 5シリーズとPySide 2シリーズ)により、QtのWebエンジン関連インターフェースを直接呼び出すことができます。
QtWebEnginese WidgetsサブモジュールのQWebEnginese View()類はprint ToPdf方法を提供しています。ウェブページをPDF文書として印刷しますので、これに基づいてPyQt 5またはPySide 2を使ってHTML変換PDFもできます。例は以下の通りです。
最後に
上で、州の先生は3種類のPythonの中でHTML文書をPDF文書に変換する方案を紹介しました。各方案にはそれぞれの長所と不足があり、自分のニーズを正確に評価して適切な方案を選ぶと、その不足を補うことができます。
以上がpythonであり、これをpdfに変換するいくつかの方法の詳細です。pythonについては、これをpdfに変換する資料について、他の関連記事を参照してください。
しかし、複数のホームページがあると困ります。
バイナリソフト
インターネット上にはHTMLをPDFに変換するソフトウェアやツールがたくさんあります。有名なのはカルリb、wkhtmltopdfです。
whtmltopdf
wkhtmltopdfは本当に優秀なHTML変換PDFツールです。QtのWebKitレンダリングエンジンにより、HTMLドキュメントをレンダリングしてPDFドキュメントまたは画像としてエクスポートします。
機能は非常に完璧ですが、レンダリングエンジンはQtのWebKitを使っていますので、ES 6のJavaScriptコードをサポートすることができません。ES 6を使って作成したHTMLページは実際の効果が出ないため、州の先生は最終的にそれを放棄しました。
カールib
Carlibは電子書籍管理ソフトであり、各種文書の変換ツールを提供しているので、HTMlからPDFへの電子書籍の変換ツールを利用して実現できます。
これらは、デスクトップ環境用のバイナリソフトウェアです。Pythonで使用するか、Popen()でこれらのバイナリソフトウェアのコマンドを呼び出すか、またはいくつかのサードパーティのパッケージモジュールを使用します。
純Pythonライブラリの実現
上記で紹介したPythonサードパーティ・モジュールは、HTMLからPDFへの変換作業をうまく行うことができますが、他のバイナリソフトをコンピュータに追加でインストールする必要があります。
バイナリソフトウェアの実現に依存しないで、次のような方式があります。
xhtml 2 pdf
これはReportLab、html 5 lib、PyPDF 2などのPythonモジュールに基づいて構築されたHTMLからPDF変換モジュールです。HTML 5、CSS 2.1、部分CSS 3文法をよくサポートできます。
Report Labモジュールによる開発ですので、中国語のサポートは環境によっては問題があります。また開発者の変更により、モジュールの機能にはいくつかの断層が現れました。しかし、非常に素晴らしいHTML変換PDFモジュールです。
weasyrint
これはHTMLとCSSの可視化レンダリングエンジンであり、HTMLドキュメントを印刷標準のPDFファイルとしてエクスポートすることができます。
xhtml 2 pdfモジュールもこのモジュールを使ってHTML変換PDFの動作を推奨しています。
このモジュールは機能が強く、効果が優れていますが、モジュールに依存する項目が多すぎます。
州の先生は今までWindowsパソコンにインストールしたことがありません。
ブラウザのシナリオ
上記の2つのスキームでは、バイナリプログラムの制御性はやや不足していますが、純粋なPythonで実現されるレンダリング解析は、機能的にも依存的にも友好的ではありません。
上記の2つの案を処理して、HTMlからPDFへの変換を第3の方法で行うことができます。それはWeb自動化テストのブラウザカーネルとQt for PythonのWebエンジンによって実現されます。
Web自動化ブラウザのカーネル
Pythonのパートナーは、Seleniumとpypeterの二つのWeb自動化テストモジュールを使ってデータ収集とWeb自動化テストを行うことが多いです。
この二つのモジュールはいずれも実際のブラウザを駆動してウェブページの操作を行うものです。これに基づいて、HTMLからPDFに移行する機能を実現するために、ブラウザで関連するAPIインターフェースを印刷するように呼び出すことができます。
例えば、pypeteerでは、次の例のようにHTML文書を開いてPDF文書に変換しても良い。
QtのWebエンジン
Qt 5では、Qtは古いWebKitの代わりに新しいChromiumカーネルをWebのレンダリングエンジンとして使用している。Qtで近代化できるブラウザの開発を行う。
QtのPython(PyQt 5シリーズとPySide 2シリーズ)により、QtのWebエンジン関連インターフェースを直接呼び出すことができます。
QtWebEnginese WidgetsサブモジュールのQWebEnginese View()類はprint ToPdf方法を提供しています。ウェブページをPDF文書として印刷しますので、これに基づいてPyQt 5またはPySide 2を使ってHTML変換PDFもできます。例は以下の通りです。
最後に
上で、州の先生は3種類のPythonの中でHTML文書をPDF文書に変換する方案を紹介しました。各方案にはそれぞれの長所と不足があり、自分のニーズを正確に評価して適切な方案を選ぶと、その不足を補うことができます。
以上がpythonであり、これをpdfに変換するいくつかの方法の詳細です。pythonについては、これをpdfに変換する資料について、他の関連記事を参照してください。