PythonでHTMLをPDFに変換する Copy for LLMsCopy for LLMs Copy page as Markdown for LLMs
# PythonでHTMLをPDFに変換する
IronPDFは、Python開発者にHTMLマークアップからプロダクション対応のPDFファイルへの直接の道を提供します - 中間デザインツールも独自レイアウトエンジンも別のレンダリングパイプラインも必要ありません。 ライブラリの`ChromePdfRenderer`クラスは、Chromiumベースのエンジンを使っているので、Chromeで正しく表示されるHTMLはPDFに正確に変換されます。 このチュートリアルでは、サポートされているすべての変換方法 – HTML文字列、ローカルHTMLファイル、およびライブURL – を順に説明し、その後にページサイズ、マージン、ヘッダー、フッターなどを制御するためのレンダリングオプションについて説明します。
必要な場合には、[.NET アプリケーションでのHTMLからPDFへの変換](/tutorials/html-to-pdf/)に関する補完チュートリアルがあります。
*as-heading:2(クイックスタート: PythonでHTMLをPDFに変換)*
<div class="hsg-featured-snippet">
<h2>PythonでHTMLをPDFに変換する方法</h2>
<img style="display: block;float:right;vertical-align:top;width: 250px;height: auto;" src="/static-assets/pdf/images/html-to-pdf-python.png" alt="HTML ページを PDF ファイルに変換する IronPDF Python ライブラリ" />
<ol>
<li><a class="js-modal-open" data-modal-id="download-modal" href="#download-modal">pipを介してPython用のIronPDFをインストール</a></li>
<li><code>from ironpdf import *</code>でライブラリをインポート</li>
<li><code>ChromePdfRenderer</code>をインスタンス化</li>
<li><code>RenderHtmlAsPdf</code>、<code>RenderUrlAsPdf</code>、または<code>RenderHtmlFileAsPdf</code>を呼び出す</li>
<li><code>pdf.SaveAs("output.pdf")</code>で結果を保存</li>
</ol>
</div>
<hr style="clear: both;" class="separator" />
*as-heading:2(目次)*
- [Python用のIronPDFをどのようにインストールしますか?](#installing-ironpdf-pdf-library-for-python)
- [変換前にIronPDFをどのように設定しますか?](#how-do-you-configure-ironpdf-before-converting)
- [HTML文字列をPDFにどのように変換しますか?](#how-do-you-convert-an-html-string-to-pdf)
- [URLをPDFにどのように変換しますか?](#how-do-you-convert-a-url-to-pdf)
- [HTMLファイルをPDFにどのように変換しますか?](#how-do-you-convert-an-html-file-to-pdf)
- [PDFレンダリングオプションをどのように制御しますか?](#how-do-you-control-pdf-rendering-options)
- [カスタムヘッダーとフッターをどのように追加しますか?](#how-do-you-add-custom-headers-and-footers)
- [次のステップは何ですか?](#what-are-the-next-steps)
<hr class="separator" />
<p class="main-content__segment-title">はじめに</p>
## IronPDF for Pythonをどのようにインストールしますか?
!!!--LIBRARY_NUGET_INSTALL_BLOCK--!!!
IronPDFはPythonの標準パッケージマネージャであるpipを介して配布されています。 最新バージョンをインストールするには、ターミナルで次のコマンドを実行します:
```shell
:ProductInstall
```
特定のリリースを固定するには – CIパイプラインやコンテナ化環境で便利です – バージョン番号を付加します:
```shell
:InstallCmd pip install ironpdf==2024.x.x
```
[[i:(IronPDF for PythonはIronPDF .NETライブラリ上に構築されており、[.NET 6.0 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/6.0)以上が必要です。 IronPDF Pythonコードを実行する前にSDKをインストールしてください。)]]
IronPDFが初期化されると、互換性のあるChromiumバイナリをダウンロードします。 新しいマシンでのダウンロードは一瞬で完了しますが、環境ごとに一度だけ発生します。 その後の実行では、バイナリがローカルにキャッシュされているため開始がはるかに速くなります。
<hr class="separator" />
<p class="main-content__segment-title">ハウツーガイドとコード例</p>
## 変換前にIronPDFをどのように設定しますか?
最初の変換コールの前に完了する価値のある2つの設定タスク:ライセンスキーの設定と、オプションでログファイルの場所の設定。
### パッケージのインポート
IronPDFを使用するすべて for Pythonファイルにはこの単一のインポートラインが必要です。ファイルの先頭に配置してください:
```python
from ironpdf import *
```
すべてのIronPDFクラス - `Logger`他のすべて - は、ワイルドカードインポートを通じて利用可能になります。
### ライセンスキーの設定
ライセンスキーがないと、IronPDFは生成されたすべてのPDFにタイル状の透かしを追加します。 透かしは開発とテストには適していますが、本番展開には有効なキーが必要です。
<div class="content-img-align-center">
<div class="center-image-wrapper">
<iframe loading="lazy" src="/static-assets/ironpdf-python/tutorials/html-to-pdf/html-to-pdf-no-license.pdf" width="100%" height="500px">
</iframe>
<p class="content__image-caption">ライセンスキーなしで生成されたPDFにはタイル状の透かしが含まれています。キーを取得するには<a href="/python/licensing/">ライセンスページ</a>を訪問してください。</p>
</div>
</div>
他のIronPDFコールの前にキーを設定します:
```python
from ironpdf import *
# Set the license key before any PDF operations
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
```
[無料トライアルを開始](https://ironpdf.com/python/#trial-license)して一時的なキーを受け取るか、[ライセンスを購入](/python/licensing/)して制限のない本番使用をしてください。
### ログ出力の設定
IronPDFは、スクリプトの作業ディレクトリにあり`Default.log`という名前のファイルに診断出力を書き込みます。 異なるパスへロギングをリダイレクトしたり、デバッグのためにより詳細をキャプチャするためには、最初の変換の前に`Logger`プロパティを設定してください。
```python
from ironpdf import *
# Configure logging before running any conversions
Logger.EnableDebugging = True
Logger.LogFilePath = "ironpdf-debug.log"
Logger.LoggingMode = Logger.LoggingModes.All
```
[[i:(`Logger.LogFilePath`は最初のPDF変換呼び出しの前に設定する必要があります。 その後の変更は、現在のセッションには影響を与えません。)]]
詳細ログは、特定のHTMLページが予期されたとおりにレンダリングされない理由を診断する際に最も役立ちます - ネットワークリクエスト、CSSロードイベント、JavaScript実行のタイミングをキャプチャします。
## HTML 文字列を PDF に変換するにはどうすればよいでしょうか?
メモリ内のHTML文字列の変換は最も直接的なアプローチであり、プログラム的に生成されたHTMLでうまく機能します - たとえば、Jinja2テンプレートやデータベース駆動のレポートから。
### 基本的なHTML文字列変換
`SaveAs`を呼び出します:
```python
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")
```
<div class="content-img-align-center">
<div class="center-image-wrapper">
<a rel="nofollow" href="/static-assets/ironpdf-java/tutorials/html-to-pdf/html-to-pdf-5.webp" target="_blank"><img src="/static-assets/ironpdf-java/tutorials/html-to-pdf/html-to-pdf-5.webp" alt="見出しと段落を示す、シンプルな HTML 文字列からレンダリングされた PDF" class="img-responsive add-shadow" /></a>
<p class="content__image-caption"><code>RenderHtmlAsPdf</code>は、CSSやJavaScriptを含むHTMLをChromeと同じように処理します。</p>
</div>
</div>
`ChromePdfRenderer`は最新のブラウザが行うようにHTML、CSS、JavaScriptを処理します。 Chromeで正しくレンダリングされるコンテンツは、正確なPDFを生成します。
### 外部リソースを持つHTML文字列
HTML文字列がローカルの資産(スタイルシート、画像、スクリプト)を参照している場合、ディレクトリパスを`RenderHtmlAsPdf`の第2引数として渡してください。 IronPDFは相対参照を解決する際のベースURLとしてこのパスを使用します:
```python
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")
```
<div class="content-img-align-center">
<div class="center-image-wrapper">
<a rel="nofollow" href="/static-assets/ironpdf-python/tutorials/html-to-pdf/html-to-pdf-html-string-to-pdf.webp" target="_blank"><img src="/static-assets/ironpdf-python/tutorials/html-to-pdf/html-to-pdf-html-string-to-pdf.webp" alt="外部の CSS と画像アセットを参照する HTML 文字列からの PDF 出力" class="img-responsive add-shadow" /></a>
<p class="content__image-caption">外部CSSや画像を正確にロードするためには、<code>RenderHtmlAsPdf</code>にベースパスを提供します。</p>
</div>
</div>
ベースパスはローカルの任意のディレクトリやネットワーク共有を指すことができます。 サブディレクトリにあるアセットはそれに対して相対的に解決されます。 複雑なHTML文字列に関与するさらなるパターンについては、[HTML文字列をPDFに変換するコード例:](/python/examples/using-html-to-create-a-pdf/)を参照してください。
## URL を PDF に変換するにはどうすればいいですか?
`RenderUrlAsPdf`メソッドはライブURLを取得し、ページが完全に読み込まれるまで待機し(JavaScript駆動のコンテンツを含む)、レンダリングされた結果をPDFに変換します。 これにより、ダッシュボード、レポート、またはJavaScriptの実行に依存する任意のページをキャプチャするのに適しています。
```python
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")
```
<div class="content-img-align-center">
<div class="center-image-wrapper">
<a rel="nofollow" href="/static-assets/ironpdf-java/tutorials/html-to-pdf/html-to-pdf-7.webp" target="_blank"><img src="/static-assets/ironpdf-java/tutorials/html-to-pdf/html-to-pdf-7.webp" alt="IronPDF の RenderUrlAsPdf メソッドを使用して Wikipedia の記事 URL から生成された PDF" class="img-responsive add-shadow" /></a>
<p class="content__image-caption">IronPDFはライブURLを取得し、JavaScriptを含むページ全体をレンダリングしてからPDFを生成します。</p>
</div>
</div>
[@[[t:(認証が必要なページの場合、`RenderUrlAsPdf`を呼び出す。 詳しくは、[HTTPログイン資格情報ガイド](/python/examples/pdf-generation-settings/)を参照してください。)]]
ターゲットページが非同期コンテンツをロードする際、IronPDFは文書が完全に描画されたことをChromiumレンダリングエンジンが信号するまで待ちます。 重いJavaScriptや遅延ネットワークリクエストを持つページでは、以下のレンダリングオプションセクションでカバーされているように、`WaitFor`プロパティを調整することを検討してください。 [URLをPDFに変換するコード例](/python/examples/converting-a-url-to-a-pdf/)により、追加の設定パターンを示します。
## HTMLファイルをPDFにどのように変換しますか?
`RenderHtmlFileAsPdf`はローカルHTMLファイルへのパスを受け取り、直接変換します。 HTML内の相対パス - CSSファイル、画像、JavaScript - は、HTMLファイル自体のディレクトリに対して自動的に解決されるため、ベースパスの引数は必要ありません。
```python
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")
```
このメソッドは特にサーバーサイドの文書生成に便利であり、すでにディスクに書き込まれたHTMLテンプレートに有用です - DjangoやFlaskを使用してファイルにJinja2テンプレートを変換し、ダウンロード用にPDFに変換する際の一般的なパターンです。
IronPDFは`<img>`タグをHTMLファイルの位置に基づいて解決するため、リンクされたスタイルシート、埋め込みフォント、および画像はブラウザで表示される通りPDFに現れます。 プロセスは`RenderHtmlAsPdf`がインライン資産を処理する方法と同様ですが、明示的なベースパスを提供する必要がないという違いがあります。
## PDFレンダリングオプションをどのように制御しますか?
`ChromePdfRenderer`(または直接任意のレンダーメソッド)に渡される構成オブジェクトです。 変換前にオプションを設定することは、PDF出力を調整する標準的な方法です。
### 用紙サイズと方向
```python
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")
```
マージンはミリメートルで表現されます。 `Custom`もサポートします。
### カスタム用紙寸法
標準用紙サイズが出力の必要条件に一致しない場合 - たとえば、レシートやラベルプリンタ形式 - 幅と高さを明示的に定義します:
```python
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")
```
[[n:(カスタム用紙サイズは特にサーマルレシートプリンタや4×6インチの配送ラベルなどのラベル形式に有用です。)]]
### JavaScript実行の有効化
デフォルトでは、IronPDFはレンダリング中にJavaScriptを実行します。 ページがJavaScriptに依存して可視化可能なコンテンツを生成 - グラフ、データテーブル、動的フォーム値 - する場合、この動作により、レンダリングされたPDFは最終DOM状態を反映します。 JavaScriptが不要なページのために無効にするには:
```python
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")
```
シンプルで静的なHTMLドキュメントの場合、JavaScriptを無効にするとレンダリング時間が短縮されます。
詳細なレンダリング構成情報については、[PDF生成設定](/python/examples/pdf-generation-settings/)および[カスタム用紙サイズの例](/python/examples/custom-pdf-paper-size/)を参照してください。
## カスタムヘッダーとフッターをどのように追加しますか?
IronPDFのヘッダーとフッターは、`TextHeaderFooter`オブジェクトを通じて適用されます。 `HtmlHeaderFooter`は完全なHTMLとCSSコントロールを提供します - ロゴ付きのブランドレター用に最適です。 `TextHeaderFooter`はよりシンプルで、大多数のテキストベースの要件をカバーし、動的ページ番号を含みます。
### テキストベースのヘッダーとフッター
```python
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")
```
`{total-pages}`のプレースホルダは、レンダー時に正しい値で置き換えられます。 他に利用可能なプレースホルダには、`{url}`があります。
### ロゴ付きHTMLベースのヘッダー
ブランド化されたヘッダーが必要な場合(会社のロゴ、カラーバンド、または書式付きアドレスブロック)には、`HtmlHeaderFooter`を使用します。
```python
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")
```
[[i:(ドキュメント本文に使用するベースパスと同じものを`BaseUrl`に設定します。 これにより、ヘッダーHTML内で参照される画像やスタイルシートが正しく解決されます。)]]
生成されたPDFのすべてのページにヘッダーとフッターが表示され、複数ページの文書も含まれます。 ページレベルのメタデータをフッターに含む動作例については、[HTMLヘッダーとフッターのコード例](/python/examples/html-headers-and-footers/)を参照してください。
### ヘッダーとフッターのための余白調整
ヘッダーまたはフッターを追加する際は、対応する余白を増やして、ページ本文と重ならないようにしてください。
```python
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")
```
レイアウトが重要な文書については、出力を正確に印刷仕様に合わせるために、`PaperSize`設定とマージン調整を組み合わせます。 追加のレイアウト制御(例えば`@page`ルール)は、[カスタムマージンの例](/python/examples/ironpdf-set-custom-margins/)で詳述されています。
<hr class="separator" />
## 次のステップは何ですか?
このチュートリアルでは、3つの主要なHTMLからPDFへの変換方法と、それらの出力を制御するレンダリングオプションについて説明しました。 以下のガイドは、この基盤を基にして、より専門的な作業をカバーしています。
- **[PDF生成設定](/python/examples/pdf-generation-settings/)** - Deep dive into `ChromePdfRenderOptions`: DPI, 背景レンダリング, CSSメディアタイプ, JavaScript待機戦略, 印刷 vs. スクリーンモード。
- **[HTMLヘッダーとフッター](/python/examples/html-headers-and-footers/)** - ロゴ、ページ番号、日付、マルチカラムレイアウトを含むブランド化されたヘッダーとフッターテンプレート。
- **[カスタム余白と用紙サイズ](/python/examples/ironpdf-set-custom-margins/)** - 印刷が可能な出力や非標準形式のためのページの幾何学的調整。
- **[PDFに透かしを追加](/python/examples/pdf-watermarking/)** - 既存または新規作成されたPDFにテキストまたは画像の透かしをスタンプします。
- **[PDFからテキストを抽出](/python/examples/extract-pdf-text/)** - 生成または既存のPDFからプログラムでテキストコンテンツを読み取ります。
[無料の30日間トライアルを開始](https://ironpdf.com/python/#trial-license)して、評価期間中に無制限で透かし無しのPDFを生成できます。 運用の準備ができたら、[ライセンスオプション](/python/licensing/)を見て、チームとエンタープライズの導入について検討してください。
Ask ChatGPT about this page
Ask Gemini about this page
Ask Perplexity about this page
IronPDFは、Python開発者にHTMLマークアップからプロダクション対応のPDFファイルへの直接の道を提供します - 中間デザインツールも独自レイアウトエンジンも別のレンダリングパイプラインも必要ありません。 ライブラリのChromePdfRendererクラスは、Chromiumベースのエンジンを使っているので、Chromeで正しく表示されるHTMLはPDFに正確に変換されます。 このチュートリアルでは、サポートされているすべての変換方法 – HTML文字列、ローカルHTMLファイル、およびライブURL – を順に説明し、その後にページサイズ、マージン、ヘッダー、フッターなどを制御するためのレンダリングオプションについて説明します。
必要な場合には、.NET アプリケーションでのHTMLからPDFへの変換 に関する補完チュートリアルがあります。
PythonでHTMLをPDFに変換する方法 pipを介してPython用のIronPDFをインストール from ironpdf import *でライブラリをインポートChromePdfRendererをインスタンス化RenderHtmlAsPdf、RenderUrlAsPdf、またはRenderHtmlFileAsPdfを呼び出すpdf.SaveAs("output.pdf")で結果を保存
はじめに
IronPDF for Pythonをどのようにインストールしますか?
IronPDFはPythonの標準パッケージマネージャであるpipを介して配布されています。 最新バージョンをインストールするには、ターミナルで次のコマンドを実行します:
> pip install ironpdf
pip install ironpdf
特定のリリースを固定するには – CIパイプラインやコンテナ化環境で便利です – バージョン番号を付加します:
> pip install ironpdf==2024.x.x
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 *
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"
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
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" )
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
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" )
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や画像を正確にロードするためには、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" )
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はライブ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" )
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" )
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" )
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" )
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" )
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" )
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" )
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を生成できます。 運用の準備ができたら、ライセンスオプション を見て、チームとエンタープライズの導入について検討してください。
よくある質問 ChromePdfRendererをインスタンス化し、次にrenderer.RenderHtmlAsPdf(html_string)を呼び出します。このメソッドはインラインCSSとJavaScriptを含む任意の有効なHTMLを受け入れます。返されたPdfDocumentをpdf.SaveAs("output.pdf")で保存します。
ターミナルからpip install ironpdfを実行します。IronPDF for Pythonは、初回使用前に別途インストールが必要な.NET 6.0 SDK以降を要求します。
はい。renderer.RenderUrlAsPdf("https://example.com")を使用します。IronPDFはChromiumエンジンを使用してページをフェッチし、JavaScriptの実行が終了するまで待機してから、完全にレンダリングされたDOMからPDFを生成します。
renderer.RenderHtmlFileAsPdf("path/to/file.html")を呼び出します。IronPDFはHTMLファイルのディレクトリを基準にして、スタイルシート、画像、スクリプトなどのすべての相対アセットパスを自動的に解決します。
PDF操作の前に有効なライセンスキーをLicense.LicenseKey = "YOUR-KEY"で設定します。キーがない場合、IronPDFは開発に適したタイル状のウォーターマークを追加しますが、プロダクションには不適応です。
プロパティをrenderer.RenderingOptionsに設定すると、紙のサイズ(PaperSize)、向き(PaperOrientation)、余白(MarginTop、MarginLeftなど)、カスタム寸法(CustomPaperWidth、CustomPaperHeight)、JavaScript実行(EnableJavaScript)などを制御できます。
TextHeaderFooterをrenderer.RenderingOptions.TextFooterに割り当て、プレースホルダー{page}または{total-pages}をRightTextやCenterTextのようなテキストプロパティに含めます。
はい。HtmlHeaderFooterと<img>タグを含むHTMLフラグメントを使用します。これをrenderer.RenderingOptions.HtmlHeaderに割り当て、画像パスを正しく解決するためにBaseUrlを設定します。
はい。renderer.RenderingOptions.PaperSizeをPdfPaperSize.Customに設定し、任意のページ寸法を定義するためにミリメートルでCustomPaperWidthとCustomPaperHeightを割り当てます。
IronPDF for Pythonは.NET 6.0 SDK以降を必要とします。SDKはMicrosoft for .NETダウンロードページから無料で利用可能で、pipインストールおよびIronPDFの実行前にインストールする必要があります。
テクニカルライター
Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。
...
詳しく読む