HTML to PDF: Python
このガイドは、Python 開発者向けに、IronPDF ライブラリを使用して HTML コンテンツを高品質な PDF (ポータブルドキュメントフォーマット) ファイルに変換するためのステップバイステップの手順を提供します。
IronPDFは、.NET、Java、およびPythonプログラミング言語を含む複数のプログラミング言語をサポートする、包括的なPDF変換および処理ライブラリです。 このチュートリアルは、ファイル形式またはマークアップ形式のHTMLコンテンツを変換するために、PythonスクリプトでIronPDFを使用することに特化しています。
.NETアプリケーションでHTMLをPDFに変換する方法の別のチュートリアルについては、次のこちらを参照してください。
概要
PythonでHTMLをPDFに変換する方法

はじめに
今日から無料トライアルでIronPDFをあなたのプロジェクトで使い始めましょう。
IronPDF for Python PDFライブラリのインストール
Python用のIronPDFライブラリをインストールするには、一般的なパッケージマネージャーであるpipを使用できます。以下のコマンドを実行してください:
`pip install ironpdf`
ヒント
{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 *
2.2. ライセンスキーの設定 (任意)
IronPDF for Pythonは無料で使用できますが、無料ユーザーには、PDFにタイル状の背景透かしが追加されます。
ライセンスページにアクセスして、ライセンスキーを取得し、透かしのないPDFをお楽しみください。
IronPDFを使用してウォーターマークなしのPDFを生成するには、ライブラリに有効なライセンスキーを提供する必要があります。 以下のコードスニペットは、ライセンスキーでライブラリを設定する方法を示しています:
# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
PDFファイルを生成またはその内容を変更する前に、必ずライセンスキーを設定してください。 他のコード行の前にLicenseKey
メソッドを呼び出すことをお勧めします。
ライセンスキーはライセンスページから購入することができ、または無料の試用ライセンスキーを取得するためにお問い合わせいただけます。
ログファイルの場所を設定 (オプション)
IronPDFは、Pythonスクリプトと同じディレクトリにあるDefault.logという名前のテキストファイルにログメッセージを生成することができます。
ログファイル名と場所をカスタマイズしたい場合、以下のコードスニペットを使用してLogFilePath
プロパティを設定できます。
# Set a log path
Logger.EnableDebugging = True
Logger.LogFilePath = "Custom.log"
Logger.LoggingMode = Logger.LoggingModes.All
[{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")
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")
上記のコードの結果は、以下の画像に示されています。
さらに、開発者は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")
生成された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ファイルとその関連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")
HTML文字列のPDFへの変換と同様に、IronPDFはサンプルHTMLファイル内の相対URLを自動的に解決し、参照されているスタイルシートやスクリプトが生成されるPDFドキュメントに正しく適用されるようにします。 これにより、ウェブページの視覚的な外観がPDFファイルに正確にキャプチャされることが保証されます。
3. さらなる読書
IronPDF の HTML を PDF にレンダリングする広範な機能を探索するには、コード例 セクションを参照してください。