ChromeでHTMLをデバッグしてピクセル完璧なPDFを作成する方法

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

IronPDFの開発者として、私たちはIronPDFで作成されたPDFドキュメントが完璧に見えるだけでなく、お客様が期待するように正確に見える必要があることを理解しています。 ピクセルパーフェクトなPDFを実現するには、優れたHTMLテンプレートを開発するか、またはWeb開発者と協力してそれらを作成する必要があります。 IronPDFは、Chrome Rendererのおかげで、ご利用のHTMLにPDFをピクセルパーフェクトでレンダリングし、Chromeで表示されるのと同じように見えるようにするオプションを提供します。

IronPDFのChromeレンダラーとは何ですか?

IronPDFを他の.NET PDFライブラリとは一線を画す存在にする。

IronPDFは、Google Chromium Rendererを使用しているため、Chromeブラウザで表示されるHTMLがPDFでも見た目が全く同じになる点で市場で際立っています。 このガイドでは、そのためにChromeとIronPDFで必要な設定を説明します。

明確に言えば、多くの競合他社によって実装された「HTML to PDF」技術は、W3Cの標準に準拠しておらず、HTML5、CSS3、またはJavaScriptをサポートしていない場合があり、wkhtmltopdf in C# comparisonのような基盤のレンダラーを使用しています。

競合他社との比較におけるIronPDF

IronPDF

IronPDF

Vanilla Chrome

Vanilla Chrome

Aspose.PDF

Aspose.PDF

iText

iText

wkhtmltopdf

wkhtmltopdf

他の製品との比較の全リストを見るには、比較ブログをご覧ください。

Iron Software ライブラリの特徴 IronPDFのChromeレンダリングエンジンの使用 Aspose対IronPDF分析 iText対IronPDF比較

IronPDFの最適化されたChromeレンダラーはChromeよりも優れています。

IronPDFがChrome自体を凌駕する二つの例。 Chromeでは2つのページに分割されてしまうボタンやテキストも、IronPDFではそのままの形で表示されます。

Chromeでボタンやテキストが切れる例:

Chromeではボタンが切り取られていますが、IronPDFではそのままです

Chromeでテキストが切り取られる別の例:

Chromeではテキストが切れますが、IronPDFでは切れません

なぜHTMLからPDFを使用するのか?

開発者は、HTMLからPDFへの変換を好みます。これは既存のウェブブランディングに一致する予測可能な結果を提供するためです。 デザインは、十分に文書化された標準化されたHTML、CSS、JavaScript技術を使用して実装されます。

  • アウトプットのレイアウトとデザインは、ウェブサイトと正確に一致させること。
  • ウェブ開発者は絶対的な精度で設計に集中できます。
  • .NET開発者はレイアウトではなくアプリケーションのロジックに集中することができます。 バックエンド開発者はレイアウトとデザインのタスクをWebデザイナーに委任することができます。

CSSメディアタイプのPrintまたはScreenを使用することを決定

IronPDFのレンダラーには、2つのメディアレンダリングオプションがあります: Print (デフォルト) および Screen。 ビジュアル並べて比較するには、このセクションの最後をご覧ください。 「スクリーンと印刷の例の比較」セクションの下。

  • CssMediaType.Print は、プリンターでの一般的な使用向けにHTMLを最適化するデフォルトのレンダリングオプションです。 これは、ページ上の一部の背景画像、アイコン、その他インクを多用する要素が異なるレンダリングになるか、または省略される可能性があることを意味します。 このオプションは背景画像のないドキュメントに適しており、デフォルトの印刷プレビューです。

  • CssMediaType.Screen は、PDF が画面上の Chrome 内で表示されるのとまったく同じように見えるようにするレンダリングオプションです。 Chromeブラウザ内でいくつかのオプションを設定する必要があります。これにより、HTMLデバッグの目的でIronPDFがレンダリングするプレビューが正確に表示されるようになります。
:path=/static-assets/pdf/content-code-examples/how-to/pixel-perfect-html-to-pdf-1.cs
// Pixel Perfect HTML Formatting Settings
IronPdf.ChromePdfRenderer renderer = new IronPdf.ChromePdfRenderer();
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print; // or Screen

テーブルヘッダーの繰り返し

HTMLに複数のページにまたがるテーブルが含まれている場合、おそらく各PDFページにテーブルヘッダーが繰り返されることを望むでしょう。

  • この場合、Print CssMediaType のみ 使用できます。

  • Screen を使用すると、Chrome はヘッダーを一度だけ印刷するよう指示します。

画面と印刷の例の比較

Printモードでは、Screenモードで読み込まれる多くの画像やアイコンが読み込まれません。

印刷例1

スクリーン1の例

Chrome をセットアップする

IronPDFは誇りを持ってChromeレンダリングエンジンを使用しています。IronPDFがChrome内で表示される通りにHTMLをレンダリングするために、次の手順に従ってください。 これを達成するために Chrome で事前に行う必要があるいくつかのステップは以下の通りです。

すべての画像、アイコン、および背景を含むピクセルパーフェクトなPDFをレンダリングするために、通常印刷形式では省略されるものについては、Screen CSSメディアオプションを必ず使用してください。

2a.

DevToolsを開き、Chromeで[CSSメディアを画面/印刷にエミュレートする]を有効にしてください。

  1. これを行うには、ChromeでDevToolsを開きますChromeでインスペクトを使用する
  1. Command+Shift+P(Mac)または Control+Shift+P(Windows、Linux、ChromeOS)を押して、コマンドメニューを開きます。 レンダリングを入力し始め、レンダリングを表示を選択して、Enterキーを押します。 DevToolsは、DevToolsウィンドウの下部にレンダリングタブを表示します。 レンダリング設定に関する詳細なヘルプ

    表示レンダリングを表示してから、CSSメディアタイプを検索してください。
  2. 下に移動して、Emulate CSS media のドロップダウンを見つけ、Screen または Print のオプションを選択します。 ウェブページにいる場合、設定を有効にするためには再読み込み(Ctrl+R)が必要な場合があります。
    CSSメディアタイプをprintに切り替える
    CSSメディアタイプをスクリーンに切り替える

2b.

印刷プレビューウィンドウを開く(WindowsではCtrl+P)

Chromeの印刷ダイアログで用紙サイズを変更し、「背景画像を印刷する」を有効にする必要があるかもしれません。正確な表示を得るためにお願いします。

2c.

印刷プレビュー設定を正しく設定する

  • IronPDFプロジェクトで使用している用紙サイズを選択してください。例えば、A4Letterなど。
  • ドロップダウンメニューからMarginsを選択し、Customを選んで四辺すべてを1インチ (1") の余白に設定します。
  • 背景グラフィックチェックボックスを有効にします。
  • ランドスケープ文書を出力する場合は、LayoutLandscapeに設定してください。

    以上です。 HTMLをデバッグし、印刷プレビューを使用してIronPDFがレイアウトをどのようにレンダリングするかを正確に確認できるようになりました。

3. IronPDFの設定

3a.

IronPDFでCSSメディアタイプを設定

ウェブページのデザインと100%一致させるためには、コード内でChromeに設定したのと同じCSSメディアタイプを選択する必要があります。

PdfCssMediaType.Screen は背景や大きな画像を含むことを思い出してください。これらは PdfCssMediaType.Print フォーマットでは省略される可能性があり、プリンターがインクを節約できるように設計されたデフォルト設定です。

:path=/static-assets/pdf/content-code-examples/how-to/pixel-perfect-html-to-pdf-2.cs
// Example using PdfCssMediaType.Screen
IronPdf.ChromePdfRenderer renderer = new IronPdf.ChromePdfRenderer();
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen; // or Print
renderer.RenderingOptions.PrintHtmlBackgrounds = true;

3b.

適切にRender DelayとRender Timeoutを設定する

IronPDFのデフォルトのレンダリングタイムアウトは60秒です。 レンダリングプロセスがこれより長くかかる場合、タイムアウト例外がスローされます。 デフォルト設定を上書きするには、RenderingOptions.Timeoutオプションを調整する必要があります。 一方、レンダリング遅延値は、IronPDFがレンダリングを開始する前に待つべき時間です。 この待機時間は、画像、フォント、JavaScriptコードなどのアセットが適切に実行されるために重要です。

タイムアウトを設定していないか、設定したタイムアウトより長いレンダーディレイがあると、「PDF をレンダリングできません」という例外が発生します。 そのため、このエラーが発生している場合は、これらの値を増やす必要があるかもしれません。

:path=/static-assets/pdf/content-code-examples/how-to/pixel-perfect-html-to-pdf-3.cs
// Example of setting Timeout and RenderDelay options
renderer.RenderingOptions.Timeout = 90; // seconds (default is 60)
renderer.RenderingOptions.WaitFor.RenderDelay(30000); // milliseconds
チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。