IRONPDFの使用

ライブラリなしでHTMLをC#からPDFに変換する方法

チペゴ
チペゴ・カリンダ
2025年4月3日
共有:

イントロダクション

HTMLをPDFに変換する際、 C#の開発者は外部ライブラリに依存せずにネイティブの.NET 機能を使用することを検討するかもしれません。 このアプローチは特定の状況では実行可能であるかもしれませんが、それにはその独自の利点と課題があります。 この記事では、プロセスを探求し、利点と欠点を検討し、なぜIronPDFのようなライブラリがより良いオプションであるかについて議論します。

動作方法

組み込みの .NET ツールを使用して、WebBrowser コントロールとPrintDocument クラスを使用して、HTML コンテンツをレンダリングして印刷することで HTML から PDF への変換を実現できます。 こちらが簡略化されたワークフローです:

  1. HTMLコンテンツを一時ファイルに書き込みます。

  2. HTMLをWebBrowserコントロールに読み込んでレンダリングします。

  3. PrintDocument クラスを使用して、レンダリングされたコンテンツを出力する印刷ジョブを作成します。

    このアプローチは外部依存関係を避けますが、低レベルのコンポーネントを扱い、印刷ロジックを手動で定義することを伴います。

    C#で外部ライブラリを使用せずにHTMLをPDFに変換したい場合は、System.IOやSystem.Drawing.Printingのような.NETの組み込み機能を使用してHTMLをレンダリングし、PDFを作成することができます。 以下は、開始の手助けとなる基本的な例です。

ライブラリを使用せずにHTMLをPDFにC#で変換する方法

ライブラリを使用せずにHTMLをPDFに変換する方法 C#: 図 1

Pixabay から追加アップロード

またはここに画像をドラッグアンドドロップします

画像の代替テキストを追加

using System;
using System.IO;
using System.Windows.Forms; // You need to add a reference to System.Windows.Forms
using System.Drawing.Printing;
class Program
{
    [STAThread] // Required for using WebBrowser control
    static void Main()
    {
        // HTML content
        string htmlContent = "<html><body><h1>Hello, World!</h1></body></html>";
        // Write HTML content to a temporary file
        string tempFilePath = Path.Combine(Path.GetTempPath(), "temp.html");
        File.WriteAllText(tempFilePath, htmlContent);
        // Create WebBrowser to render HTML
        WebBrowser webBrowser = new WebBrowser();
        webBrowser.DocumentCompleted += (sender, e) => 
        {
            // Print the document to a file
            PrintDocument printDoc = new PrintDocument();
            printDoc.PrintPage += (s, args) =>
            {
                args.Graphics.DrawString(htmlContent, new Font("Arial", 12), Brushes.Black, new PointF(100, 100));
            };
            // Save as PDF (or use PrintDialog for physical printing)
            printDoc.PrintController = new StandardPrintController(); // Silent print
            printDoc.Print(); // You'd need to replace this with PDF creation logic.
            Application.ExitThread(); // Close the application
        };
        // Load the HTML file
        webBrowser.Url = new Uri(tempFilePath);
        Application.Run();
    }
}
using System;
using System.IO;
using System.Windows.Forms; // You need to add a reference to System.Windows.Forms
using System.Drawing.Printing;
class Program
{
    [STAThread] // Required for using WebBrowser control
    static void Main()
    {
        // HTML content
        string htmlContent = "<html><body><h1>Hello, World!</h1></body></html>";
        // Write HTML content to a temporary file
        string tempFilePath = Path.Combine(Path.GetTempPath(), "temp.html");
        File.WriteAllText(tempFilePath, htmlContent);
        // Create WebBrowser to render HTML
        WebBrowser webBrowser = new WebBrowser();
        webBrowser.DocumentCompleted += (sender, e) => 
        {
            // Print the document to a file
            PrintDocument printDoc = new PrintDocument();
            printDoc.PrintPage += (s, args) =>
            {
                args.Graphics.DrawString(htmlContent, new Font("Arial", 12), Brushes.Black, new PointF(100, 100));
            };
            // Save as PDF (or use PrintDialog for physical printing)
            printDoc.PrintController = new StandardPrintController(); // Silent print
            printDoc.Print(); // You'd need to replace this with PDF creation logic.
            Application.ExitThread(); // Close the application
        };
        // Load the HTML file
        webBrowser.Url = new Uri(tempFilePath);
        Application.Run();
    }
}

コードの説明

  1. WebBrowser コントロールは HTML をレンダリングするために使用されます。

  2. PrintDocument クラスは、印刷動作を定義するために使用されます。

  3. この例は直接PDFを作成しません。 手動でテキストや図形を描画するなど、生のPDF作成ロジックを統合するために拡張する必要があります。またはストリームを扱います。

    このアプローチには限界があり、大規模またはスタイル付きのHTMLドキュメントでは複雑になる可能性があります。 使用するケースによっては、IronPDFのようなライブラリを利用することが通常、はるかに効率的で多機能です。

.NET の組み込み機能を使用する際の利点と欠点

長所

  • 外部依存なし: 外部ライブラリを避けることで、プロジェクト内のサードパーティ依存関係の管理が簡単になる可能性があります。
  • 費用無料: この方法はネイティブの.NETコンポーネントのみを使用するため、ライセンス料や追加費用はかかりません。
  • 微調整された制御: コンテンツのレンダリングと印刷方法を完全にコントロールできるため、カスタム処理が可能です。

欠点

  • 制限された機能: 組み込みの.NETツールは、複雑なHTML、CSS、またはJavaScriptを正確にレンダリングする能力に欠けています。 高度なレイアウト、レスポンシブデザイン、または動的コンテンツはサポートされない場合があります。
  • 時間のかかる実装: レンダリング、ページネーション、PDF作成を処理するためにカスタムコードを書く必要があり、それによって開発コストが高くなる可能性があります。
  • 低いスケーラビリティ: 大規模または高性能なアプリケーションでは、このアプローチは非効率であり、ボトルネックが発生しやすい可能性があります。
  • ネイティブPDFサポートなし: ワークフローは直接PDFを作成しません; 印刷出力からPDFファイルを生成するために、カスタムロジックを実装する必要があります。

IronPDFの紹介

ライブラリを使用せずにHTMLをPDFに変換する方法 C#: 図2

Pixabay から追加アップロード

またはここに画像をドラッグアンドドロップします

画像の代替テキストを追加

IronPDFは、開発者がHTMLを簡単にPDFに変換できる.NETライブラリです。 CSS、JavaScript、埋め込み画像を含む幅広い機能をサポートしています。 IronPDFを使用すると、HTMLウェブページと全く同じ見た目のPDFを作成でき、フォーマット間のシームレスな移行を保証します。 このライブラリは、動的なPDFドキュメントをその場で生成する必要があるWebアプリケーションに特に有用です。

IronPDF を使用すると、開発者はPDFファイル構造を手動で管理することなく、.NETアプリケーションにPDF機能をシームレスに統合できます。 IronPDF は、HTMLページ(複雑なCSS、JavaScript、画像を含む)を構造化されたPDF文書に変換するために、Chromeベースのレンダリングエンジンを活用しています。 それは、レポート、請求書、電子書籍、またはPDF形式で提示する必要があるあらゆる種類のドキュメントの生成に使用できます。

IronPDFは多用途であり、PDFをレンダリングするだけでなく、編集、フォーム管理、暗号化など、幅広いPDF操作オプションを提供します。

IronPDFの主な機能

  1. HTMLからPDFへの変換

    • HTMLレンダリング: IronPDF は、HTMLファイル形式のドキュメントやウェブページ(CSS、画像、JavaScriptを含むHTML)を直接PDFドキュメントに変換できます。 HTMLテンプレートを使用して変換することもできます。 これは動的なウェブコンテンツからPDFを生成するのに最適です。

    • 最新のHTML/CSSのサポート: IronPDFは最新のHTML5、CSS3、およびJavaScriptを処理し、ウェブベースのコンテンツがPDFとして正確にレンダーリングされるようにし、レイアウト、フォント、およびインタラクティブ要素を保持します。

    • 高度なレンダリング: Chromeのレンダリングエンジン(Chromium経由)を使用して、高精度で高品質なPDF生成を実現し、多くの他のHTML-to-PDFライブラリよりも信頼性が高いです。
    • ウェブサイトのURLをPDFへ: IronPDF は、ウェブサイトの文字列URLを入力として受け取り、PDFに変換することができます。
  2. カスタムヘッダーとフッター

    • IronPDFは、開発者がPDFドキュメントにカスタムヘッダーとフッターを追加することを可能にし、ページ番号、ドキュメントタイトル、カスタムテキストなどの動的コンテンツを含めることができます。
    • ヘッダーとフッターは、個々のページに追加することも、文書全体を通して一貫した要素として追加することもできます。
  3. PDFでのJavaScriptのサポート

    • IronPDFは、PDF生成前にHTMLコンテンツ内でJavaScriptの実行を可能にします。 これは、生成されたPDFにおけるフォームの計算やインタラクティビティなど、動的なコンテンツレンダリングを可能にします。
    • JavaScriptは、動的なウェブページからPDFを作成したり、クライアントサイドのロジックを必要とするレポートを生成したりするときに役立ちます。
  4. 既存のPDFを編集

    • IronPDF は既存のPDFを編集する機能を提供します。 既存のPDFファイルにテキストや画像を変更し、注釈を追加できます。 この機能は、ドキュメントに透かしを入れたり、署名を追加したり、PDFファイル内のコンテンツを更新したりするのに役立ちます。
    • テキスト抽出と修正により、プログラム的にPDFドキュメント内のコンテンツを操作できます。
  5. PDFの結合と分割

    • IronPDFを使用すると、複数のPDFファイルを1つのドキュメントに結合したり、大きなPDFを小さなファイルに分割したりできます。 これは、ドキュメントを結合したり、より管理しやすい部分に分割したりする必要があるワークフローに最適です。
  6. インタラクティブフォームのサポート

    • IronPDFを使用して、PDFフォームを作成、記入、および操作できます。 それは、テキストフィールド、チェックボックス、ラジオボタンのようなインタラクティブフォームを完全にサポートし、データでフォームに事前入力することを可能にします。
    • IronPDF は、既存のPDFからフォームデータを抽出することもでき、プログラムでフォームデータを簡単に読み取り、処理することができます。
  7. ページ操作

    • IronPDF は、PDFドキュメントの個々のページを操作するためのさまざまな方法を提供します。例えば、ページを回転させたり、削除したり、順序を変更したりすることができます。 これは最終文書の構造をカスタマイズするのに役立ちます。
    • 既存のPDFに新しいページを追加したり、不要なページを削除したりすることもできます。
  8. セキュリティと暗号化

    • IronPDFを使用すると、PDFにパスワード保護と暗号化を適用でき、ドキュメントのセキュリティが確保されます。 ユーザー権限を設定して、PDFの印刷、コピー、または編集を防ぐことができます。
    • デジタル署名をPDFに追加することで、真正性を確認し、機密文書に対するセキュリティを向上させることができます。
  9. 透かしとブランディング

    • PDFドキュメントに透かしを追加するのはIronPDFを使えば簡単です。 テキストや画像を透かしとしてページに重ねることができ、文書の無断コピーや配布に対する保護を提供します。
    • この機能はブランディングのためによく使用され、ロゴやテキストをドキュメントのすべてのページに一貫して表示させる必要があります。
    1. テキストと画像の抽出

      • IronPDF は PDF ドキュメントからテキストや画像を抽出でき、開発者がデータを処理または再利用するためにデータを抽出することが可能です。
    • これは、PDFの内容を分析したり、フォームから情報を抽出したり、さらなる利用のために画像を取得したりする必要があるシナリオに役立ちます。
    1. ユニコードと多言語サポート

      • IronPDF は強力なUnicodeサポートを備えており、国際文字やフォントを扱うことができ、複数の言語でPDFを生成するのに理想的です。
    • それは中国語、アラビア語、ロシア語などの言語をサポートしており、多言語PDFドキュメントの作成を可能にします。
    1. パフォーマンスの最適化
    • IronPDFはパフォーマンスに最適化されており、大規模なPDF文書や大量のリクエストを処理することができます。 このライブラリは、大規模なデータセットや画像を扱う場合でも、PDF生成が迅速かつ効率的であることを保証します。
    1. APIと開発者に優しいツール

      • IronPDF は、包括的で使いやすいAPIを備えています。 開発者は、簡単なメソッド呼び出しを使用して複雑なタスクを迅速に開始することができます。
    • APIは十分に文書化されており、IronPDFを任意のC#または.NETアプリケーションに簡単に統合できます。
    1. クロスプラットフォームサポート
    • IronPDFはクロスプラットフォーム互換性があり、WindowsおよびLinux環境の両方で使用でき、異なるオペレーティングシステム間でPDFを生成および操作できます。

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

class Program
{
    static void Main()
    {
        // Specify license key
        License.LicenseKey = "Yoour Key";
        // Create a new HtmlToPdf object
        var Renderer = new ChromePdfRenderer();
        // Define the HTML string/ HTML code to be converted, can use html document
        string htmlContent = "<html><body><h1>IronPDF: Easily Convert HTML to PDF</h1></body></html>";
        // Convert pdf simple HTML string to a PDF document
        var document = Renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF output document to a file
        document.SaveAs("html2Pdf.pdf"); // path to pdf file generated
    }
}
class Program
{
    static void Main()
    {
        // Specify license key
        License.LicenseKey = "Yoour Key";
        // Create a new HtmlToPdf object
        var Renderer = new ChromePdfRenderer();
        // Define the HTML string/ HTML code to be converted, can use html document
        string htmlContent = "<html><body><h1>IronPDF: Easily Convert HTML to PDF</h1></body></html>";
        // Convert pdf simple HTML string to a PDF document
        var document = Renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF output document to a file
        document.SaveAs("html2Pdf.pdf"); // path to pdf file generated
    }
}

コードスニペットの説明

ライセンスキー設定

プログラムは、ライブラリの完全な機能を解放するために必要なIronPDF ライセンス キーを設定することから始まります。

2. レンダラーの作成

ChromePdfRendererのインスタンスが初期化されます。 このコンポーネントはHTMLコンテンツをPDFドキュメントに変換する役割を担い、生のHTMLと最終的な出力の間の橋渡しをします。

3. HTMLコンテンツの定義

文字列変数、htmlContent が作成され、PDF に変換されるHTML構造を格納します。 この例では、シンプルな見出しが含まれています。

4. HTMLをPDFに変換

RenderHtmlAsPdf() メソッドは、ChromePdfRenderer インスタンスで呼び出され、HTML 文字列を入力として渡します。 この関数はコンテンツを処理し、PDFドキュメントに変換します。

5. PDFを保存する

最後に、生成されたPDFはSaveAs()メソッドを使用して「html2Pdf.pdf」という名前のファイルに保存され、将来アクセスできるようディスクに保管されます。

出力

ライブラリなしでHTMLをPDFに変換する方法 C#: 図3

Pixabay から追加アップロード

またはここに画像をドラッグアンドドロップします

画像の代替テキストを追加

ライセンス情報(試用版あり)

IronPDFは、有効なライセンスキーが必要です。 公式ウェブサイトから試用ライセンスを取得できます。IronPDFライブラリを使用する前に、次のようにライセンスキーを設定してください。

IronPdf.License.LicenseKey = "your key";
IronPdf.License.LicenseKey = "your key";

これは、ライブラリが制限なく動作することを保証します。

結論

組み込みの.NET機能を利用したHTMLからPDFへの変換は、単純なユースケースに対する実現可能な解決策であるかもしれませんが、それには多くの労力が必要であり、現代的な機能が不足しています。 対照的に、IronPDFのようなライブラリは、強力な機能、高速な開発、先進的なHTMLレンダリングのサポートを提供し、ほとんどの開発者にとって定番の選択肢となっています。 最終的な決定は、プロジェクトの要件、予算、および開発の優先事項に依存します。

チペゴ
ソフトウェアエンジニア
チペゴは優れた傾聴能力を持ち、それが顧客の問題を理解し、賢明な解決策を提供する助けとなっています。彼は情報技術の学士号を取得後、2023年にIron Softwareチームに加わりました。現在、彼はIronPDFとIronOCRの2つの製品に注力していますが、顧客をサポートする新しい方法を見つけるにつれて、他の製品に関する知識も日々成長しています。Iron Softwareでの協力的な生活を楽しんでおり、さまざまな経験を持つチームメンバーが集まり、効果的で革新的な解決策を提供することに貢献しています。チペゴがデスクを離れているときは、良い本を楽しんだり、サッカーをしていることが多いです。
< 以前
HTML から PDF へのコンバーター C# オープンソース (.NET ライブラリの比較)
次へ >
C# でPDFを生成するための7つのライブラリ比較(無料&有料ツール)