PythonでIronPDFを使用してHTMLをPDFに変換する方法

HTMLからPDFへ:Python

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

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

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

.NETアプリケーションでHTMLをPDFに変換するための別のチュートリアルも利用可能です。


概要


はじめに

1. IronPDF PDFライブラリのインストール (Python 用)

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

 pip install ironpdf

BRACKET-t-OPEN--@特定のバージョンのIronPdfをインストールするには、以下の構文を使用してください:==2023.x.x. たとえば、次のコマンドを実行できます:)}]@。

pip install ironpdf==2023.x.x
pip install ironpdf==2023.x.x
SHELL

IronPDF for PythonはIronPDF .NETライブラリ、特に.NET 6.0を基盤技術としています。 そのため、IronPDF for Pythonを使用するには.NET 6.0 SDKがインストールされている必要があります。


ハウツーガイドとコード例

2. HTMLをPDFに変換する

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

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

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

このセクションでは、各ユースケースを簡潔に紹介し、さらなる詳細を提供する補足リソースを提供します。

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

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

# Import statement for IronPDF for Python
from ironpdf import *
# Import statement for IronPDF for Python
from ironpdf import *
PYTHON

2.2 ライセンスキーを設定する (任意)

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

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

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

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

PDFファイルの生成やその内容の変更を行う前に、ライセンスキーが設定されていることを確認してください。 他のコード行の前にLicenseKeyメソッドを呼び出すことをお勧めします。 ライセンスキーを購入するか、無料の試用ライセンスキーを< a href="trial-license">取得するために当社に連絡してください。

2.3 ログファイルの場所を設定する (任意)

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

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

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

BRACKET-i-OPEN--Logger.LogFilePathは、PDF変換や操作のメソッドを使用する前に呼び出す必要があります。

2.4 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")
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 2.4 HTML文字列からPDFを作成する

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

RenderHtmlAsPdf<//code> メソッドは、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")
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 2.4 HTML文字列からPDFを作成する

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

さらに、開発者には、RenderHtmlAsPdfメソッドに第2引数を与えるオプションがあり、ウェブ資産を参照するためのベースパスを指定することができます。このパスはファイルシステム上のローカルディレクトリを指すことも、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")
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
Html To Pdf 7 related to 2.5 URLからPDFを作成する.

詳細については、ウェブページをPDFに変換する方法を示すコード例を参照してください。

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

IronPDFは、HTMLファイルをPDFに変換し、それをローカルファイルシステムに保存する機能を提供します。 それは、HTMLコンテンツを直接その等価なPDF形式にレンダリングします。

For a real-world demonstration of this functionality, the following code example showcases the conversion of an invoice HTML file. You can access the HTML markup of the invoice.

この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ファイルが"invoices"というフォルダに保存されていると仮定して、IronPDFを使用して、以下のPythonコードでサンプルHTMLファイルをPDFに変換できます:

from ironpdf import *

# 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")
from ironpdf import *

# 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ドキュメントに正しく適用されることを保証します。 これにより、Webページの視覚的な外観がPDFファイルに正確にキャプチャされることが保証されます。

3. 詳細な読書

コード例セクションを掘り下げて、IronPDFのHTMLからPDFへのレンダリングの拡張機能を探求してください。

  1. このコード例を読んで、変換プロセス中にPDFドキュメントの外観をカスタマイズする方法を発見してください。
  2. パーソナライズされたヘッダーとフッターを持つPDFファイルを生成し、マージンサイズページ寸法透かしを追加することを学びます。
  3. テキスト抽出ファイルサイズの最適化、プログラムでPDFを印刷する手法をさらに探求します。

ソフトウェア製品をダウンロードしてください。

よくある質問

Pythonを使用してHTMLをPDFに変換するにはどうすればいいですか?

PythonでHTML文字列をPDFドキュメントに変換するには、IronPDFの RenderHtmlAsPdf メソッドを使用できます。このメソッドは、CSSやJavaScriptを含むHTMLを高品質のPDFとして正確にレンダリングします。

PythonでHTMLからPDFへの変換をサポートしているライブラリは何ですか?

IronPDFは、PythonでHTMLからPDFへの変換をサポートする強力なライブラリです。HTML文字列、URL、ファイルをPDFドキュメントに変換し、フォーマットを保ちながら提供します。

PythonでHTMLからPDFへの変換を行うためにIronPDFをインストールするにはどうすればよいですか?

Python用IronPDFをインストールするには、ターミナルでコマンド pip install ironpdf を使用します。IronPDFは.NET 6.0 SDKに依存しているため、インストールが必要です。

PythonでウェブページのURLをPDFに変換することは可能ですか?

はい、IronPDFの RenderUrlAsPdf メソッドを使用して、ウェブページのURLをPDFドキュメントに変換することができます。この機能を使用すれば、ライブウェブページのコンテンツを直接キャプチャして変換できます。

IronPDFは変換時に外部リソースをどのように処理しますか?

IronPDFは、画像、スタイルシート、スクリプトなどの外部リソースを含むHTMLファイルを処理できます。これらのリソースがPDFに正しく組み込まれるように相対URLを解決します。

Pythonを使用してPDFのヘッダーとフッターをカスタマイズすることは可能ですか?

はい、IronPDFを使用すれば、PDFドキュメントにカスタムヘッダーとフッターを追加できます。これを行うには、PdfDocument プロパティを調整して特定のフォーマット要件に合わせます。

IronPDFで作成したPDFからウォーターマークを削除する方法は?

IronPDFで生成されたPDFからウォーターマークを削除するには、PDFを処理する前に有効なライセンスキーを設定する必要があります。これにより、デフォルトのウォーターマークなしでPDFが作成されます。

IronPDFのHTMLからPDFへの変換の高度な機能は何ですか?

IronPDFは、カスタムページ余白の設定、寸法の調整、ウォーターマークの追加、ファイルサイズの最適化、テキスト抽出などの高度な機能を提供します。これらの機能はライブラリの柔軟性と有用性を高めます。

IronPDFを使用したHTMLからPDFへの変換の例はどこで見つけられますか?

IronPDFウェブサイトの「コード例」セクションで、さまざまな例と詳細なコードスニペットを見つけることができ、IronPDFの機能を効果的に使用するための洞察を提供します。

PDFをレンダリングするためにIronPDFで使用される主なクラスは何ですか?

IronPDFでPDFをレンダリングするために主に使用されるクラスは ChromePdfRenderer クラスです。HTMLの変換、外部リソースの処理、現代のブラウザに似た正確なレンダリングを提供する信頼性の高い方法を提供します。

IronPDF は .NET 10 と互換性がありますか?

はい。IronPDF は、.NET 6、7、8、9 などの以前のバージョンと同様に、.NET 10 と完全に互換性があります。プラットフォーム (Windows、Linux など) に関係なく、.NET 10 プロジェクトですぐに使用でき、特別な回避策を必要とせずに最新の API スタックをサポートします。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Version: 2025.9 リリース