更新済み 2024年12月10日
共有:

HTML to PDF: Python

This article was translated from English: Does it need improvement?
Translated
View the article in English

このガイドは、Python 開発者向けに、IronPDF ライブラリを使用して HTML コンテンツを高品質な PDF (ポータブルドキュメントフォーマット) ファイルに変換するためのステップバイステップの手順を提供します。

IronPDFは、.NETJava、およびPythonプログラミング言語を含む複数のプログラミング言語をサポートする、包括的なPDF変換および処理ライブラリです。 このチュートリアルは、ファイル形式またはマークアップ形式のHTMLコンテンツを変換するために、PythonスクリプトでIronPDFを使用することに特化しています。

.NETアプリケーションでHTMLをPDFに変換する方法の別のチュートリアルについては、次のこちらを参照してください。


概要


はじめに

今日から無料トライアルでIronPDFをあなたのプロジェクトで使い始めましょう。

最初のステップ:
green arrow pointer

IronPDF for Python PDFライブラリのインストール

Python用のIronPDFライブラリをインストールするには、一般的なパッケージマネージャーであるpipを使用できます。以下のコマンドを実行してください:

`pip install ironpdf`

ヒント
特定のバージョンのIronPdfをインストールするには、次の構文を使用してください: "==2023.x.x"。 たとえば、コマンド「pip install ironpdf==2023.x.x」を実行できます。

{i:(IronPDF Pythonはその基盤技術として、特に.NET 6.0を使用するIronPDF .NETライブラリに依存しています。 したがって、IronPDF Pythonを使用するには、マシンに.NET 6.0 SDKをインストールする必要があります。


ガイドとコード例の使い方

2. HTMLをPDFに変換

次のセクションでは、HTMLをPDFに変換するIronPDFの印象的なレンダリング機能について詳しく説明します。

PDFドキュメントのレンダリングの主なコンポーネントは、ChromePdfRenderer クラスです。 さらに、PdfDocumentクラスは、さまざまな操作機能を提供します。 IronPDFは、HTMLコンテンツをPDFドキュメントに変換するための信頼性の高い方法を提供し、3つの主要なシナリオに対応しています。

  • HTMLの文字列/マークアップをPDFに変換
  • HTMLファイル/ZIPをPDFに変換
  • URLをPDFに変換

    このセクションでは、各使用例の簡潔な概要を提供し、詳細についての補足リソースを添付します。

2.1 IronPDFパッケージをインポートする

IronPDFをインポートするには、IronPDFを使用するソースファイルの先頭に以下のインポート文を含めてください:

# Import statements for IronPDF Python
from ironpdf import *
PYTHON

2.2. ライセンスキーの設定 (任意)

IronPDF for Pythonは無料で使用できますが、無料ユーザーには、PDFにタイル状の背景透かしが追加されます。

ライセンスページにアクセスして、ライセンスキーを取得し、透かしのないPDFをお楽しみください。

IronPDFを使用してウォーターマークなしのPDFを生成するには、ライブラリに有効なライセンスキーを提供する必要があります。 以下のコードスニペットは、ライセンスキーでライブラリを設定する方法を示しています:

# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
PYTHON

PDFファイルを生成またはその内容を変更する前に、必ずライセンスキーを設定してください。 他のコード行の前にLicenseKeyメソッドを呼び出すことをお勧めします。

ライセンスキーはライセンスページから購入することができ、または無料の試用ライセンスキーを取得するためにお問い合わせいただけます。

ログファイルの場所を設定 (オプション)

IronPDFは、Pythonスクリプトと同じディレクトリにあるDefault.logという名前のテキストファイルにログメッセージを生成することができます。

ログファイル名と場所をカスタマイズしたい場合、以下のコードスニペットを使用してLogFilePathプロパティを設定できます。

# Set a log path
Logger.EnableDebugging = True
Logger.LogFilePath = "Custom.log"
Logger.LoggingMode = Logger.LoggingModes.All
PYTHON

[{i:(PDF 変換および操作メソッドを使用する前に、Logger.LogFilePath を呼び出す必要があります。

HTML文字列からPDFを作成する

RenderHtmlAsPdf メソッドは、HTML文字列をPDF形式の文書に変換します。

以下のコードスニペットは、ヘッドライン要素のみを持つHTML文字列からPDFファイルを生成する方法を示しています:

from ironpdf import *

# Instantiate Renderer
renderer = ChromePdfRenderer()

# Create a PDF from a HTML string using Python
pdf = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1>")

# Export to a file or Stream
pdf.SaveAs("output.pdf")
PYTHON
Html To Pdf 5 related to HTML文字列からPDFを作成する

RenderHtmlAsPdf メソッドを使用してHTMLマークアップをPDFファイルに変換します。このメソッドは、全ての有効なW3C準拠のHTMLおよびCSSマークアップを使用してPDFを生成することができます。

RenderHtmlAsPdf メソッドは、現代のブラウザと同様にHTML、CSS、およびJavaScriptを処理し、コンテンツの正確なレンダリングを保証します。 この機能により、ソフトウェアエンジニアはウェブブラウザの画面とよく似たPDFを作成することができます。

さらに、RenderHtmlAsPdf メソッドは、ローカルまたはネットワークフォルダにある画像、スタイルシート、スクリプトなどの外部リソースを処理することができます。 次の例は、assetsフォルダーに保存されたCSSファイルと画像を参照するHTMLからPDFドキュメントを作成する方法を示しています。

from ironpdf import *

html = """
<html>
   <head>
      <title>Hello world!</title>
      <link rel='stylesheet' href='assets/style.css'>
   </head>
   <body>
      <h1>Hello from IronPDF!</h1>
      <a href="https://ironpdf.com/python/"><img src='assets/logo.png' /></a>
   </body>
</html>
"""

renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
PYTHON

上記のコードの結果は、以下の画像に示されています。

Html To Pdf Html String To Pdf related to HTML文字列からPDFを作成する

RenderHtmlAsPdf メソッドは、さまざまなタイプのHTMLコンテンツをレンダリングすることが可能です。Chromeで表示できるものであれば、RenderHtmlAsPdf がレンダリングします!

さらに、開発者はRenderHtmlAsPdfメソッドに第2引数を提供するオプションがあり、Web資産を参照するための基本パスを指定することができます。 このパスは、ファイルシステム上のローカルディレクトリやURLパスを指すことができます。

RenderHtmlAsPdf メソッドの使用方法をよりよく理解するには、このコード例を参照するか、API リファレンスページで詳細情報を確認してください。

2.5. URLからPDFを作成

ウェブサイトのURLをPDFドキュメントに変換するには、開発者はIronPDFが提供するRenderUrlAsPdfメソッドを利用できます。

以下は、Wikipediaの記事をPDFコンテンツにレンダリングする例です。

from ironpdf import *

# Instantiate Renderer
renderer = ChromePdfRenderer()

# Create a PDF from a URL or local file path
pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF")

# Export to a file or Stream
pdf.SaveAs("url.pdf")
PYTHON

生成されたPDFファイル形式は以下の通りです。

Html To Pdf 7 related to 2.5. URLからPDFを作成

詳細については、コード例を参照して、ウェブページをPDFに変換する方法を確認できます。

HTMLファイルからPDFを作成する

IronPDFはHTMLファイルをPDFに変換し、ローカルファイルシステムに保存する機能を提供します。 HTMLコンテンツをそのままPDF形式に変換します。

この機能の実際のデモンストレーションとして、次のコード例は請求書HTMLファイルの変換を示しています。請求書のHTMLマークアップは、[こちら](https://codepen.io/tjoen/pen/wvgvLX" target="_blank" rel="nofollow noopener noreferrer)からアクセスできます。

こちらのHTMLマークアップは、使いやすさを考慮して提供されています:

<html>
<head>
    <meta charset="utf-8">
    <title>Invoice</title>
    <link rel="stylesheet" href="style.css">
    <link rel="license" href="https://www.opensource.org/licenses/mit-license/">
    <script src="script.js"></script>
</head>
<body>
<header>
    <h1>Invoice</h1>
    <address contenteditable>
        <p>Jonathan Neal</p>
        <p>101 E. Chapman Ave<br>Orange, CA 92866</p>
        <p>(800) 555-1234</p>
    </address>
    <span><img alt="" src="http://www.jonathantneal.com/examples/invoice/logo.png"><input type="file" accept="image/*"></span>
</header>
<article>
    <h1>Recipient</h1>
    <address contenteditable>
        <p>Some Company<br>c/o Some Guy</p>
    </address>
    <table class="meta">
        <tr>
            <th><span contenteditable>Invoice #</span></th>
            <td><span contenteditable>101138</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Date</span></th>
            <td><span contenteditable>January 1, 2012</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Amount Due</span></th>
            <td><span id="prefix" contenteditable>$</span><span>600.00</span></td>
        </tr>
    </table>
    <table class="inventory">
        <thead>
        <tr>
            <th><span contenteditable>Item</span></th>
            <th><span contenteditable>Description</span></th>
            <th><span contenteditable>Rate</span></th>
            <th><span contenteditable>Quantity</span></th>
            <th><span contenteditable>Price</span></th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td><a class="cut">-</a><span contenteditable>Front End Consultation</span></td>
            <td><span contenteditable>Experience Review</span></td>
            <td><span data-prefix>$</span><span contenteditable>150.00</span></td>
            <td><span contenteditable>4</span></td>
            <td><span data-prefix>$</span><span>600.00</span></td>
        </tr>
        </tbody>
    </table>
    <a class="add">+</a>
    <table class="balance">
        <tr>
            <th><span contenteditable>Total</span></th>
            <td><span data-prefix>$</span><span>600.00</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Amount Paid</span></th>
            <td><span data-prefix>$</span><span contenteditable>0.00</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Balance Due</span></th>
            <td><span data-prefix>$</span><span>600.00</span></td>
        </tr>
    </table>
</article>
<aside>
    <h1><span contenteditable>Additional Notes</span></h1>
    <div contenteditable>
        <p>A finance charge of 1.5% will be made on unpaid balances after 30 days.</p>
    </div>
</aside>
</body>
</html>
<html>
<head>
    <meta charset="utf-8">
    <title>Invoice</title>
    <link rel="stylesheet" href="style.css">
    <link rel="license" href="https://www.opensource.org/licenses/mit-license/">
    <script src="script.js"></script>
</head>
<body>
<header>
    <h1>Invoice</h1>
    <address contenteditable>
        <p>Jonathan Neal</p>
        <p>101 E. Chapman Ave<br>Orange, CA 92866</p>
        <p>(800) 555-1234</p>
    </address>
    <span><img alt="" src="http://www.jonathantneal.com/examples/invoice/logo.png"><input type="file" accept="image/*"></span>
</header>
<article>
    <h1>Recipient</h1>
    <address contenteditable>
        <p>Some Company<br>c/o Some Guy</p>
    </address>
    <table class="meta">
        <tr>
            <th><span contenteditable>Invoice #</span></th>
            <td><span contenteditable>101138</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Date</span></th>
            <td><span contenteditable>January 1, 2012</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Amount Due</span></th>
            <td><span id="prefix" contenteditable>$</span><span>600.00</span></td>
        </tr>
    </table>
    <table class="inventory">
        <thead>
        <tr>
            <th><span contenteditable>Item</span></th>
            <th><span contenteditable>Description</span></th>
            <th><span contenteditable>Rate</span></th>
            <th><span contenteditable>Quantity</span></th>
            <th><span contenteditable>Price</span></th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td><a class="cut">-</a><span contenteditable>Front End Consultation</span></td>
            <td><span contenteditable>Experience Review</span></td>
            <td><span data-prefix>$</span><span contenteditable>150.00</span></td>
            <td><span contenteditable>4</span></td>
            <td><span data-prefix>$</span><span>600.00</span></td>
        </tr>
        </tbody>
    </table>
    <a class="add">+</a>
    <table class="balance">
        <tr>
            <th><span contenteditable>Total</span></th>
            <td><span data-prefix>$</span><span>600.00</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Amount Paid</span></th>
            <td><span data-prefix>$</span><span contenteditable>0.00</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Balance Due</span></th>
            <td><span data-prefix>$</span><span>600.00</span></td>
        </tr>
    </table>
</article>
<aside>
    <h1><span contenteditable>Additional Notes</span></h1>
    <div contenteditable>
        <p>A finance charge of 1.5% will be made on unpaid balances after 30 days.</p>
    </div>
</aside>
</body>
</html>
HTML

"請求書"という名前のフォルダに保存されているHTMLファイルとその関連CSSおよびJavaScriptファイルがあると仮定して、以下のPythonコードを使用して、IronPDFを用いてサンプルHTMLファイルをPDFに変換することができます。

# Instantiate Renderer
renderer = ChromePdfRenderer()

# Create a PDF from an existing HTML file using Python
pdf = renderer.RenderHtmlFileAsPdf("invoices/TestInvoice1.html")

# Export to a file or Stream
pdf.SaveAs("htmlfile_to_pdf.pdf")
PYTHON

HTML文字列のPDFへの変換と同様に、IronPDFはサンプルHTMLファイル内の相対URLを自動的に解決し、参照されているスタイルシートやスクリプトが生成されるPDFドキュメントに正しく適用されるようにします。 これにより、ウェブページの視覚的な外観がPDFファイルに正確にキャプチャされることが保証されます。

3. さらなる読書

IronPDF の HTML を PDF にレンダリングする広範な機能を探索するには、コード例 セクションを参照してください。

  1. このコード例を読んで、変換プロセス中にPDFドキュメントの外観をカスタマイズする方法を発見してください。

  2. 個別のヘッダーとフッターを使用してPDFファイルを生成する方法、余白のサイズページの寸法を調整する方法、透かしを追加する方法などを学びます。

  3. さらに、テキストの抽出ファイルサイズの最適化、そしてプログラムによるPDFの印刷の技術を探ってみてください。