IRONSOFTWAREHOME

PythonでHTMLをPDFに変換する

Curtis Chau
Curtis Chau
Updated: 2026年6月29日

IronPDFは、Python開発者にHTMLマークアップからプロダクション対応のPDFファイルへの直接の道を提供します - 中間デザインツールも独自レイアウトエンジンも別のレンダリングパイプラインも必要ありません。 ライブラリのChromePdfRendererクラスは、Chromiumベースのエンジンを使っているので、Chromeで正しく表示されるHTMLはPDFに正確に変換されます。 このチュートリアルでは、サポートされているすべての変換方法 – HTML文字列、ローカルHTMLファイル、およびライブURL – を順に説明し、その後にページサイズ、マージン、ヘッダー、フッターなどを制御するためのレンダリングオプションについて説明します。

必要な場合には、.NET アプリケーションでのHTMLからPDFへの変換に関する補完チュートリアルがあります。

クイックスタート: PythonでHTMLをPDFに変換
目次

はじめに

IronPDF for Pythonをどのようにインストールしますか?

IronPDFはPythonの標準パッケージマネージャであるpipを介して配布されています。 最新バージョンをインストールするには、ターミナルで次のコマンドを実行します:

> pip install ironpdf

特定のリリースを固定するには – CIパイプラインやコンテナ化環境で便利です – バージョン番号を付加します:

> pip install ironpdf==2024.x.x

ご注意: IronPDF for PythonはIronPDF .NETライブラリ上に構築されており、.NET 6.0 SDK以上が必要です。 IronPDF Pythonコードを実行する前にSDKをインストールしてください。

IronPDFが初期化されると、互換性のあるChromiumバイナリをダウンロードします。 新しいマシンでのダウンロードは一瞬で完了しますが、環境ごとに一度だけ発生します。 その後の実行では、バイナリがローカルにキャッシュされているため開始がはるかに速くなります。


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

変換前にIronPDFをどのように設定しますか?

最初の変換コールの前に完了する価値のある2つの設定タスク:ライセンスキーの設定と、オプションでログファイルの場所の設定。

パッケージのインポート

IronPDFを使用するすべて for Pythonファイルにはこの単一のインポートラインが必要です。ファイルの先頭に配置してください:

from ironpdf import *
Python

すべてのIronPDFクラス - Logger他のすべて - は、ワイルドカードインポートを通じて利用可能になります。

ライセンスキーの設定

ライセンスキーがないと、IronPDFは生成されたすべてのPDFにタイル状の透かしを追加します。 透かしは開発とテストには適していますが、本番展開には有効なキーが必要です。

ライセンスキーなしで生成されたPDFにはタイル状の透かしが含まれています。キーを取得するにはライセンスページを訪問してください。

他のIronPDFコールの前にキーを設定します:

from ironpdf import *

# Set the license key before any PDF operations
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
Python

無料トライアルを開始して一時的なキーを受け取るか、ライセンスを購入して制限のない本番使用をしてください。

ログ出力の設定

IronPDFは、スクリプトの作業ディレクトリにありDefault.logという名前のファイルに診断出力を書き込みます。 異なるパスへロギングをリダイレクトしたり、デバッグのためにより詳細をキャプチャするためには、最初の変換の前にLoggerプロパティを設定してください。

from ironpdf import *

# Configure logging before running any conversions
Logger.EnableDebugging = True
Logger.LogFilePath = "ironpdf-debug.log"
Logger.LoggingMode = Logger.LoggingModes.All
Python
ご注意: Logger.LogFilePathは最初のPDF変換呼び出しの前に設定する必要があります。 その後の変更は、現在のセッションには影響を与えません。

詳細ログは、特定のHTMLページが予期されたとおりにレンダリングされない理由を診断する際に最も役立ちます - ネットワークリクエスト、CSSロードイベント、JavaScript実行のタイミングをキャプチャします。

HTML 文字列を PDF に変換するにはどうすればよいでしょうか?

メモリ内のHTML文字列の変換は最も直接的なアプローチであり、プログラム的に生成されたHTMLでうまく機能します - たとえば、Jinja2テンプレートやデータベース駆動のレポートから。

基本的なHTML文字列変換

SaveAsを呼び出します:

from ironpdf import *

renderer = ChromePdfRenderer()

# Convert an HTML string to a PDF document
pdf = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>Generated in Python.</p>")

pdf.SaveAs("hello.pdf")
Python
見出しと段落を示す、シンプルな HTML 文字列からレンダリングされた PDF

RenderHtmlAsPdfは、CSSやJavaScriptを含むHTMLをChromeと同じように処理します。

ChromePdfRendererは最新のブラウザが行うようにHTML、CSS、JavaScriptを処理します。 Chromeで正しくレンダリングされるコンテンツは、正確なPDFを生成します。

外部リソースを持つHTML文字列

HTML文字列がローカルの資産(スタイルシート、画像、スクリプト)を参照している場合、ディレクトリパスをRenderHtmlAsPdfの第2引数として渡してください。 IronPDFは相対参照を解決する際のベースURLとしてこのパスを使用します:

from ironpdf import *

html_content = """
<html>
  <head>
    <title>Styled Report</title>
    <link rel='stylesheet' href='assets/style.css'>
  </head>
  <body>
    <h1>Monthly Report</h1>
    <img src='assets/logo.png' alt='Company logo'>
    <p>Data as of Q1 2024.</p>
  </body>
</html>
"""

renderer = ChromePdfRenderer()

# The second argument sets the base path for resolving relative asset URLs
pdf = renderer.RenderHtmlAsPdf(html_content, "./")

pdf.SaveAs("styled-report.pdf")
Python
外部の CSS と画像アセットを参照する HTML 文字列からの PDF 出力

外部CSSや画像を正確にロードするためには、RenderHtmlAsPdfにベースパスを提供します。

ベースパスはローカルの任意のディレクトリやネットワーク共有を指すことができます。 サブディレクトリにあるアセットはそれに対して相対的に解決されます。 複雑なHTML文字列に関与するさらなるパターンについては、HTML文字列をPDFに変換するコード例:を参照してください。

URL を PDF に変換するにはどうすればいいですか?

RenderUrlAsPdfメソッドはライブURLを取得し、ページが完全に読み込まれるまで待機し(JavaScript駆動のコンテンツを含む)、レンダリングされた結果をPDFに変換します。 これにより、ダッシュボード、レポート、またはJavaScriptの実行に依存する任意のページをキャプチャするのに適しています。

from ironpdf import *

renderer = ChromePdfRenderer()

# Fetch and convert a live web page to PDF
pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format")

pdf.SaveAs("wikipedia-pdf.pdf")
Python
IronPDF の RenderUrlAsPdf メソッドを使用して Wikipedia の記事 URL から生成された PDF

IronPDFはライブURLを取得し、JavaScriptを含むページ全体をレンダリングしてからPDFを生成します。

[@

ヒント: 認証が必要なページの場合、RenderUrlAsPdfを呼び出す。 詳しくは、HTTPログイン資格情報ガイドを参照してください。

ターゲットページが非同期コンテンツをロードする際、IronPDFは文書が完全に描画されたことをChromiumレンダリングエンジンが信号するまで待ちます。 重いJavaScriptや遅延ネットワークリクエストを持つページでは、以下のレンダリングオプションセクションでカバーされているように、WaitForプロパティを調整することを検討してください。 URLをPDFに変換するコード例により、追加の設定パターンを示します。

HTMLファイルをPDFにどのように変換しますか?

RenderHtmlFileAsPdfはローカルHTMLファイルへのパスを受け取り、直接変換します。 HTML内の相対パス - CSSファイル、画像、JavaScript - は、HTMLファイル自体のディレクトリに対して自動的に解決されるため、ベースパスの引数は必要ありません。

from ironpdf import *

renderer = ChromePdfRenderer()

# Convert a local HTML file (and its linked CSS/JS) to PDF
pdf = renderer.RenderHtmlFileAsPdf("invoices/TestInvoice1.html")

pdf.SaveAs("invoice.pdf")
Python

このメソッドは特にサーバーサイドの文書生成に便利であり、すでにディスクに書き込まれたHTMLテンプレートに有用です - DjangoやFlaskを使用してファイルにJinja2テンプレートを変換し、ダウンロード用にPDFに変換する際の一般的なパターンです。

IronPDFは<img>タグをHTMLファイルの位置に基づいて解決するため、リンクされたスタイルシート、埋め込みフォント、および画像はブラウザで表示される通りPDFに現れます。 プロセスはRenderHtmlAsPdfがインライン資産を処理する方法と同様ですが、明示的なベースパスを提供する必要がないという違いがあります。

PDFレンダリングオプションをどのように制御しますか?

ChromePdfRenderer(または直接任意のレンダーメソッド)に渡される構成オブジェクトです。 変換前にオプションを設定することは、PDF出力を調整する標準的な方法です。

用紙サイズと方向

from ironpdf import *

renderer = ChromePdfRenderer()

# Configure page layout before rendering
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.MarginLeft = 15
renderer.RenderingOptions.MarginRight = 15

pdf = renderer.RenderHtmlAsPdf("<h1>Landscape Report</h1><p>Content here.</p>")
pdf.SaveAs("landscape-a4.pdf")
Python

マージンはミリメートルで表現されます。 Customもサポートします。

カスタム用紙寸法

標準用紙サイズが出力の必要条件に一致しない場合 - たとえば、レシートやラベルプリンタ形式 - 幅と高さを明示的に定義します:

from ironpdf import *

renderer = ChromePdfRenderer()

# Set a custom paper size (in millimetres)
renderer.RenderingOptions.PaperSize = PdfPaperSize.Custom
renderer.RenderingOptions.CustomPaperWidth = 80   # 80 mm receipt roll width
renderer.RenderingOptions.CustomPaperHeight = 200

pdf = renderer.RenderHtmlAsPdf("<h2>Receipt</h2><p>Total: $12.50</p>")
pdf.SaveAs("receipt.pdf")
Python
重要: カスタム用紙サイズは特にサーマルレシートプリンタや4×6インチの配送ラベルなどのラベル形式に有用です。

JavaScript実行の有効化

デフォルトでは、IronPDFはレンダリング中にJavaScriptを実行します。 ページがJavaScriptに依存して可視化可能なコンテンツを生成 - グラフ、データテーブル、動的フォーム値 - する場合、この動作により、レンダリングされたPDFは最終DOM状態を反映します。 JavaScriptが不要なページのために無効にするには:

from ironpdf import *

renderer = ChromePdfRenderer()

# Disable JavaScript for static HTML pages
renderer.RenderingOptions.EnableJavaScript = False

pdf = renderer.RenderHtmlAsPdf("<p>Static content only.</p>")
pdf.SaveAs("static.pdf")
Python

シンプルで静的なHTMLドキュメントの場合、JavaScriptを無効にするとレンダリング時間が短縮されます。

詳細なレンダリング構成情報については、PDF生成設定およびカスタム用紙サイズの例を参照してください。

カスタムヘッダーとフッターをどのように追加しますか?

IronPDFのヘッダーとフッターは、TextHeaderFooterオブジェクトを通じて適用されます。 HtmlHeaderFooterは完全なHTMLとCSSコントロールを提供します - ロゴ付きのブランドレター用に最適です。 TextHeaderFooterはよりシンプルで、大多数のテキストベースの要件をカバーし、動的ページ番号を含みます。

テキストベースのヘッダーとフッター

from ironpdf import *

renderer = ChromePdfRenderer()

# Add a text header with the document title
renderer.RenderingOptions.TextHeader = TextHeaderFooter()
renderer.RenderingOptions.TextHeader.CenterText = "Quarterly Report — Q1 2024"
renderer.RenderingOptions.TextHeader.DrawDividerLine = True
renderer.RenderingOptions.TextHeader.FontSize = 10

# Add a footer with page numbers
renderer.RenderingOptions.TextFooter = TextHeaderFooter()
renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}"
renderer.RenderingOptions.TextFooter.FontSize = 9
renderer.RenderingOptions.TextFooter.DrawDividerLine = True

html = "<h1>Executive Summary</h1><p>Revenue increased 12% year-over-year.</p>"
pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("report-with-footer.pdf")
Python

{total-pages}のプレースホルダは、レンダー時に正しい値で置き換えられます。 他に利用可能なプレースホルダには、{url}があります。

ロゴ付きHTMLベースのヘッダー

ブランド化されたヘッダーが必要な場合(会社のロゴ、カラーバンド、または書式付きアドレスブロック)には、HtmlHeaderFooterを使用します。

from ironpdf import *

renderer = ChromePdfRenderer()

header_html = """
<div style="font-family: Arial, sans-serif; border-bottom: 2px solid #003366; padding: 8px 0;">
  <img src='assets/logo.png' style='height: 40px; float: left;' alt='Company logo'>
  <span style='float: right; font-size: 11px; color: #666;'>Confidential</span>
  <div style='clear:both;'></div>
</div>
"""

renderer.RenderingOptions.HtmlHeader = HtmlHeaderFooter()
renderer.RenderingOptions.HtmlHeader.HtmlFragment = header_html
renderer.RenderingOptions.HtmlHeader.BaseUrl = "./"

html_body = "<h1>Project Status Update</h1><p>All milestones on track.</p>"
pdf = renderer.RenderHtmlAsPdf(html_body, "./")
pdf.SaveAs("branded-report.pdf")
Python
ご注意: ドキュメント本文に使用するベースパスと同じものをBaseUrlに設定します。 これにより、ヘッダーHTML内で参照される画像やスタイルシートが正しく解決されます。

生成されたPDFのすべてのページにヘッダーとフッターが表示され、複数ページの文書も含まれます。 ページレベルのメタデータをフッターに含む動作例については、HTMLヘッダーとフッターのコード例を参照してください。

ヘッダーとフッターのための余白調整

ヘッダーまたはフッターを追加する際は、対応する余白を増やして、ページ本文と重ならないようにしてください。

from ironpdf import *

renderer = ChromePdfRenderer()

renderer.RenderingOptions.MarginTop = 30     # Make room for header
renderer.RenderingOptions.MarginBottom = 20  # Make room for footer

renderer.RenderingOptions.TextHeader = TextHeaderFooter()
renderer.RenderingOptions.TextHeader.CenterText = "Internal Use Only"

renderer.RenderingOptions.TextFooter = TextHeaderFooter()
renderer.RenderingOptions.TextFooter.CenterText = "Page {page} of {total-pages}"

pdf = renderer.RenderHtmlAsPdf("<h1>Internal Document</h1><p>Body content.</p>")
pdf.SaveAs("margined-report.pdf")
Python

レイアウトが重要な文書については、出力を正確に印刷仕様に合わせるために、PaperSize設定とマージン調整を組み合わせます。 追加のレイアウト制御(例えば@pageルール)は、カスタムマージンの例で詳述されています。


次のステップは何ですか?

このチュートリアルでは、3つの主要なHTMLからPDFへの変換方法と、それらの出力を制御するレンダリングオプションについて説明しました。 以下のガイドは、この基盤を基にして、より専門的な作業をカバーしています。

  • PDF生成設定 - Deep dive into ChromePdfRenderOptions: DPI, 背景レンダリング, CSSメディアタイプ, JavaScript待機戦略, 印刷 vs. スクリーンモード。
  • HTMLヘッダーとフッター - ロゴ、ページ番号、日付、マルチカラムレイアウトを含むブランド化されたヘッダーとフッターテンプレート。
  • カスタム余白と用紙サイズ - 印刷が可能な出力や非標準形式のためのページの幾何学的調整。
  • PDFに透かしを追加 - 既存または新規作成されたPDFにテキストまたは画像の透かしをスタンプします。
  • PDFからテキストを抽出 - 生成または既存のPDFからプログラムでテキストコンテンツを読み取ります。

無料の30日間トライアルを開始して、評価期間中に無制限で透かし無しのPDFを生成できます。 運用の準備ができたら、ライセンスオプションを見て、チームとエンタープライズの導入について検討してください。

よくある質問

PythonでHTML文字列をPDFに変換するには?

ChromePdfRendererをインスタンス化し、次にrenderer.RenderHtmlAsPdf(html_string)を呼び出します。このメソッドはインラインCSSとJavaScriptを含む任意の有効なHTMLを受け入れます。返されたPdfDocumentをpdf.SaveAs("output.pdf")で保存します。

Python用のIronPDFをどのようにインストールしますか?

ターミナルからpip install ironpdfを実行します。IronPDF for Pythonは、初回使用前に別途インストールが必要な.NET 6.0 SDK以降を要求します。

IronPDFはPythonでライブURLをPDFに変換できますか?

はい。renderer.RenderUrlAsPdf("https://example.com")を使用します。IronPDFはChromiumエンジンを使用してページをフェッチし、JavaScriptの実行が終了するまで待機してから、完全にレンダリングされたDOMからPDFを生成します。

ローカルHTMLファイルをPDFに変換するには?

renderer.RenderHtmlFileAsPdf("path/to/file.html")を呼び出します。IronPDFはHTMLファイルのディレクトリを基準にして、スタイルシート、画像、スクリプトなどのすべての相対アセットパスを自動的に解決します。

IronPDF生成のPDFからウォーターマークを除去するには?

PDF操作の前に有効なライセンスキーをLicense.LicenseKey = "YOUR-KEY"で設定します。キーがない場合、IronPDFは開発に適したタイル状のウォーターマークを追加しますが、プロダクションには不適応です。

Python用のIronPDFが露出するレンダリングオプションは何ですか?

プロパティをrenderer.RenderingOptionsに設定すると、紙のサイズ(PaperSize)、向き(PaperOrientation)、余白(MarginTop、MarginLeftなど)、カスタム寸法(CustomPaperWidth、CustomPaperHeight)、JavaScript実行(EnableJavaScript)などを制御できます。

PythonでIronPDFを使ってPDFにページ番号を追加するには?

TextHeaderFooterをrenderer.RenderingOptions.TextFooterに割り当て、プレースホルダー{page}または{total-pages}をRightTextやCenterTextのようなテキストプロパティに含めます。

生成したPDFの全ページにブランド化されたロゴヘッダーを追加できますか?

はい。HtmlHeaderFooterと<img>タグを含むHTMLフラグメントを使用します。これをrenderer.RenderingOptions.HtmlHeaderに割り当て、画像パスを正しく解決するためにBaseUrlを設定します。

IronPDFはPythonでカスタム用紙サイズをサポートしていますか?

はい。renderer.RenderingOptions.PaperSizeをPdfPaperSize.Customに設定し、任意のページ寸法を定義するためにミリメートルでCustomPaperWidthとCustomPaperHeightを割り当てます。

IronPDF for Pythonに必要な.NETバージョンは何ですか?

IronPDF for Pythonは.NET 6.0 SDK以降を必要とします。SDKはMicrosoft for .NETダウンロードページから無料で利用可能で、pipインストールおよびIronPDFの実行前にインストールする必要があります。

Curtis Chau
テクニカルライター

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

...
詳しく読む

準備はできましたか?

バージョン:2026.9リリースされたばかり

無料をゲット

30日間の試用キーをすぐに取得。

bullet_checkedクレジットカードやアカウントの作成は不要です。
bullet_test製品版でのテスト
透かしなし
bullet_calendar30日間
完全機能の製品
bullet_support試用期間中の
24/5テクニカルサポート
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用Pythonモジュールダウンロード
pipでインストール

バージョン: 2026.9

  1. ダウンロードしてPython 3.7+をインストールしてください。
  2. pipをインストールするにはpypi.orgからダウンロードしてください。
  3. 上記のコマンドをターミナルで実行します。
Python PDFモジュール
モジュールをダウンロード

バージョン: 2026.9

Manually install into your project

  1. パッケージをダウンロード
  2. ターミナルからこのコマンドを実行してください
    pip install ironpdf-2026.9-py37-none-win_amd64.whl

ライセンスは$999から

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用Pythonモジュールダウンロード
pipでインストール

バージョン: 2026.9

  1. ダウンロードしてPython 3.7+をインストールしてください。
  2. pipをインストールするにはpypi.orgからダウンロードしてください。
  3. 上記のコマンドをターミナルで実行します。
Python PDFモジュール
モジュールをダウンロード

バージョン: 2026.9

Manually install into your project

  1. パッケージをダウンロード
  2. ターミナルからこのコマンドを実行してください
    pip install ironpdf-2026.9-py37-none-win_amd64.whl

ライセンスは$999から