製品比較

バイト配列からPDFを生成 C# iTextSharp (vs IronPDF)

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

現代の.NETアプリケーションでは、レポート、請求書、デジタル記録を生成するかどうかに関わらず、PDFファイルの作成と管理は一般的な要件です。 開発者はこのタスクのためにサードパーティのPDFライブラリに頼ることが多く、.NETエコシステムで最も人気のあるオプションの一つがIronPDFiText 7(iTextSharpの後継)です。

各ライブラリは、異なる使用ケースに対して強力なツールセットを提供します。 しかし、C#で[バイト配列](https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2013/gg235069\(v=vs.120\)からPDFを生成するのに最適なのはどれでしょうか? この記事では、比較、コード例、および洞察を通じて、.NET 開発者が正しい選択をするための手助けをします。

企業向けアプリケーションを構築している場合でも、小規模な内部ツールを構築している場合でも、適切なPDFライブラリを選択することは、開発時間を節約し、堅牢な出力を保証するのに役立ちます。 各ライブラリが提供する内容を探ってみましょう。

PDFライブラリの紹介

PDFライブラリは何に使われるのか?

C#のPDFライブラリは、開発者がPDFファイルをプログラムで生成、操作、および読み取ることを可能にします。 彼らは次のような幅広いユースケースに対応しています。

  • レポートと請求書のエクスポート
  • ウェブフォームから動的コンテンツを生成する
  • HTMLページまたはテンプレートをPDFに変換する
  • ページ番号、チャート、画像などの視覚要素をPDFファイルに追加すること
  • ドキュメントの結合または分割
  • PDFにデジタル署名する

    また、PDF/Aのようなアーカイブやアクセシビリティ要件の標準に準拠し、データのポータビリティとコンプライアンスにおいて重要な役割を果たしています。

iTextSharpとIronPDF: トップの競合者

利用可能な.NET PDFライブラリの中で、iTextSharpIronPDFは、各々が独自の強みを持つ主要なソリューションとして浮上しています。

  • iTextSharpは、JavaのiTextに基づいた成熟したオープンソースライブラリであり、急な学習曲線とライセンスに関する注意点を伴う強力なPDF制御を提供します。
  • IronPDFは、シンプルさ、スピード、ウェブ統合に重点を置いた最新の商用ライブラリであり、HTMLやASP.NETビューを直接PDFファイルに変換することができます。

なぜ適切なライブラリの選択が重要か

この2つの選択は単なる好みの問題ではなく、生産性、メンテナンス、性能、さらには法的なライセンス遵守にも影響を与えます。 迅速な展開、頻繁なフォーマット変更、またはHTMLテンプレートからのPDFレンダリングが必要なプロジェクトは、迅速な開発の恩恵を受けますが、エンタープライズレベルのアプリケーションは、基準の準拠性や長期的なメンテナンス性を優先するかもしれません。

機能比較

iText 7 for .NET(iTextSharpの後継)

iText 7iTextSharpの公式な後継であり、完全に再設計されたアーキテクチャを提供します。 これは、法務、金融、政府などのコンプライアンスが重視される業界でPDFの作成、編集、および検証に適した強力で拡張可能なライブラリです。 iText 7スイートには、PDF/A、PDF/UA、デジタル署名、墨消し、フォーム作成のサポートが含まれています。

それはまだAGPLライセンスの下でオープンソースですが、専有プロジェクト向けの商用ライセンスも利用可能です。

iText 7 の主な機能

  • iTextSharpの古い構造を置き換えるモダンAPI
  • モジュールサポート: HTMLからPDF, PDF/A, フォーム, 修正, デジタル署名
  • エンタープライズアプリケーション向けの高性能
  • PDF/A、アクセシビリティ、コンプライアンスに最適

    ⚠️ 注意: コアPDF操作にはitext7を使用する必要があり、オプションのアドオンとしてhtml2pdfを別途含めることができます。

インストール (NuGet)

iText 7のPDF生成用コアパッケージをダウンロードするには:

Install-Package itext
Install-Package itext

NuGet パッケージ マネージャー コンソールを使用して iText 7 をインストールする

また、ソリューション画面のパッケージマネージャーからiText 7を使用することもできます。 これを行うには、まずツールのドロップダウンメニューに移動し、「NuGet パッケージ マネージャー > ソリューションの NuGet パッケージの管理」を見つけてください。

Visual Studio のツール ドロップダウン メニュー

その後、iText 7 を検索し、「インストール」をクリックします。

iText 7 NuGet パッケージページ

コード例: iText 7を使用してバイト配列からPDFドキュメントを作成する

using System.IO;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.GeneratePdfWithIText7();
        // Save the PDF to a file
        File.WriteAllBytes("output.pdf", pdfBytes);
    }

}

class PdfGenerator
{
    public byte[] GeneratePdfWithIText7()
    {
        using (var ms = new MemoryStream())
        {
            PdfWriter writer = new PdfWriter(ms);
            var pdf = new iText.Kernel.Pdf.PdfDocument(writer);
            Document doc = new Document(pdf);

            doc.Add(new Paragraph("Hello from iText 7 for .NET!"));

            doc.Close(); // Always close the document to finalize content  
            return ms.ToArray();
        }
    }
}
using System.IO;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.GeneratePdfWithIText7();
        // Save the PDF to a file
        File.WriteAllBytes("output.pdf", pdfBytes);
    }

}

class PdfGenerator
{
    public byte[] GeneratePdfWithIText7()
    {
        using (var ms = new MemoryStream())
        {
            PdfWriter writer = new PdfWriter(ms);
            var pdf = new iText.Kernel.Pdf.PdfDocument(writer);
            Document doc = new Document(pdf);

            doc.Add(new Paragraph("Hello from iText 7 for .NET!"));

            doc.Close(); // Always close the document to finalize content  
            return ms.ToArray();
        }
    }
}

出力 PDF ファイル

iText 7 PDF 出力

説明

  • PdfWriterはコンテンツをMemoryStreamに書き込みます。
  • PdfDocumentはPDFの内部構造を管理します。
  • ドキュメントは、高レベルのコンテンツ(テキスト、画像、テーブル)を追加するために使用されます。
  • doc.Close()を呼び出した後、PDFコンテンツは完全に書き込まれ、バイト配列として返す準備が整います。

    この例は、iTextSharpと比較したiText 7のよりモジュール化され読みやすいAPIを紹介しています。ただし、pdfhtmlを含めない限り、HTML/CSSのレンダリングのネイティブサポートがないままです。pdfhtmlは別途ライセンスされています。

iText 7の長所と短所

利点:

  • 包括的なPDF制御

    iText 7は、テーブル、フォーム、デジタル署名など、PDF要素を完全に制御することができます。 これは、PDF/A や PDF/UA のような特定の PDF 標準を必要とするコンプライアンスの厳しいアプリケーションに理想的です。

  • モジュラー性とスケーラビリティ

    iText 7はモジュール式で、必要な特定のモジュールのみをインストールできます(例えば、HTMLをPDFに変換するためのpdfhtml)。 これは、すべての機能を使用しない場合、より軽量な実装を可能にします。

  • 複雑なPDF規格に対応

    iText 7は、ISO標準であるPDF/A(アーカイブ)、PDF/UA(アクセシビリティ)、PDF/X(印刷)をサポートしており、コンプライアンスが重要なプロフェッショナルおよび法的環境に適しています。

  • 充実したドキュメント & サポート

    iText 7は、包括的なドキュメントと大規模なコミュニティを持っています。 同社はプロフェッショナルサポートも提供しており、開発者が必要な時に支援を受けられるようにしています。

  • 無料バージョン利用可能 (AGPL)

    開発者は、オープンソースプロジェクトや個人使用に最適なAGPLライセンスの下でiText 7を無料で使用できます。

    短所:

  • 商業目的利用のためのAGPLライセンス

    iText 7 は無料版を提供していますが、商業ユーザーは AGPL ライセンスに従う必要があり、iText 7 を使用するソフトウェアのソースコードを公開するか、商用ライセンスを購入する必要があります。

  • 急な学習曲線

    iText 7のAPIはより複雑で、機能が豊富であるため、IronPDFのようなシンプルなライブラリと比較すると、学習曲線が急になる可能性があります。 開発者は、その低レベルのドキュメント構造とモジュールベースのアーキテクチャに精通する必要があります。

  • シンプルなタスクに重厚なパフォーマンス

    iText 7は、基本的なPDFタスク、例えば簡単なドキュメント作成や基本的なHTMLからPDFへの変換において、特にIronPDFのようなライブラリと比較すると、扱いにくいと感じることがあります。

  • HTMLをPDFに変換するには外部モジュールが必要です

    iText 7 の HTML から PDF への変換は、追加の pdfhtml モジュールを通じてのみ利用可能であり、別途のインストールが必要で、最新のウェブコンテンツを IronPDF ほどシームレスに処理できない場合があります。

IronPDF for .NET: 強力なPDFライブラリ

IronPDFは、開発者の生産性向上に重点を置いてPDF文書生成を簡素化するために設計された高レベルの.NETライブラリです。 それは特にHTMLコンテンツとスタイリングのレンダリングに効果的であり、現代のWeb-to-PDFワークフローに理想的です。

主な特徴

  • バイト配列からPDFファイルを作成し、Adobe ReaderをインストールせずにPDFドキュメントを操作します
  • HTMLコンテンツからPDFドキュメントを作成するためのChromiumエンジンを使用した直接HTMLからPDFへのレンダリング
  • MVCビュー、Razor Pages、ローカル/リモートURLと連携します
  • 画像ファイル、JavaScript、CSS、レスポンシブレイアウトを標準でサポート
  • 使いやすい構文と最小限のセットアップが必要
  • 永続ライセンスおよびAGPL制約なし

IronPDFのインストール

IronPDFはNuGetを通じて、NuGetパッケージマネージャーコンソールで次のコマンドを実行することでもインストールできます。

Install-Package IronPdf
Install-Package IronPdf

パッケージマネージャーコンソールを使用してIronPDFをインストールする

または、ソリューション画面のNuGetパッケージマネージャーを使用してインストールすることもできます。 これを行うには、「ツール > NuGet パッケージ マネージャー > ソリューションの NuGet パッケージの管理」に移動します。

Visual Studio のツール ドロップダウン メニュー

次に、IronPDFを検索し、「インストール」をクリックします。

IronPDF NuGet パッケージマネージャースクリーン

インストール後に、追加のモジュールなしで、数秒でフルHTMLページをPDFにレンダリングすることができます。 追加の設定なしで、最新のCSS、JavaScript、さらにはインタラクティブなWebコンテンツにも対応しています。

コード例: IronPDFでバイト配列からPDFドキュメントを作成する

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.GeneratePdfWithIronPdf();
        // Save the PDF to a file
        File.WriteAllBytes("output.pdf", pdfBytes);
    }

}

class PdfGenerator
{
    public byte[] GeneratePdfWithIronPdf()
    {
        var renderer = new ChromePdfRenderer();
        var pdfDoc = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
        return pdfDoc.BinaryData;
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.GeneratePdfWithIronPdf();
        // Save the PDF to a file
        File.WriteAllBytes("output.pdf", pdfBytes);
    }

}

class PdfGenerator
{
    public byte[] GeneratePdfWithIronPdf()
    {
        var renderer = new ChromePdfRenderer();
        var pdfDoc = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
        return pdfDoc.BinaryData;
    }
}

出力 PDF ファイル

IronPDF 出力

説明

  • using IronPdf ステートメントは、すべてのPDF関連クラスにアクセスするためにIronPDFライブラリをインポートします。
  • var renderer = new HtmlToPdf() は、ヘッドレスChromiumエンジンによって駆動される新しいHTML-to-PDFレンダラーを作成します。
  • renderer.RenderHtmlAsPdf(...)は、指定されたHTML文字列をPDFドキュメントに変換します。 ファイルパスやURLを渡すこともできます。
  • pdfDoc.BinaryDataは、保存、ストリーミング、またはデータベースストレージの準備ができたバイト配列として最終的なPDFを返します。

IronPDFの長所と短所

利点:

  • 手間いらずのHTMLからPDFへのレンダリング

    HTML、CSS、およびJavaScriptのコンテンツを、Bootstrapやカスタムフォントを含む完全なスタイリングでPDFに直接レンダリングします。複雑なレイアウトコードや追加モジュールは必要ありません。

  • クイックスタート & 直感的なAPI

    わずか数行のコードで、完全にスタイルされたPDFファイルを作成し、クリーンな構文と完全な.NET Coreおよび.NET Framework互換性を実現します。

  • Web技術の包括的なサポート

    IronPDFはJavaScript、最新のCSS、SVG、メディアクエリをサポートしており、これらは多くのライブラリが厳しいと感じる分野ですが、IronPDFは内部的にChromiumのようなヘッドレスブラウザを使用することで対応しています。

  • 組み込みの画像と資産の処理

    追加の設定なしで、画像、ローカルファイル、またはリモートURLからアセットを簡単に含めることができます。

  • 永久ライセンス & AGPLなし

    iText 7とは異なり、IronPDFはオープンソースのAGPL義務の制約なしに柔軟な商業ライセンスを提供します。

  • MVCおよびRazorビューに最適

    シームレスに.cshtmlのRazorビューをASP.NETアプリケーションで印刷可能なPDFに変換します。

    欠点:

  • 商業利用にはライセンスが必要です

    無料試用版がありますが、IronPDFはオープンソースではありません。 予算が厳しいプロジェクトでは、ライセンスコストを評価する必要があるかもしれません。

  • 初期パッケージサイズの大きさ

    ヘッドレスChromiumエンジンをバンドルしているため、NuGetパッケージは他の代替品よりも重くなっています。

実用的なコード例の比較

このセクションの以下のコード例は、これらのライブラリが実際にどのように機能するかを示します。この中で、IronPDFiText 7 を同じタスクで比較します。 両方のライブラリは同じシナリオを通じてテストされます。URLからPDFを生成し、画像をPDFとしてレンダリングし、スタイル付きHTMLをPDFに変換する際に、すべてのPDFコンテンツをバイト配列で処理します。 これは、開発者が各ライブラリがこれらの一般的なユースケースにどのようにアプローチするかを評価するのを可能にします。

バイト配列を使用してURLからシンプルなPDFを生成する

IronPDF

using IronPdf;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.GeneratePdfFromUrlWithIronPdf();

        // Save the PDF to a file
        File.WriteAllBytes("ironpdf-from-url.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] GeneratePdfFromUrlWithIronPdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.WaitFor.JavaScript(5000);
        renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

        var pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
        return pdf.BinaryData;
    }
}
using IronPdf;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.GeneratePdfFromUrlWithIronPdf();

        // Save the PDF to a file
        File.WriteAllBytes("ironpdf-from-url.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] GeneratePdfFromUrlWithIronPdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.WaitFor.JavaScript(5000);
        renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

        var pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
        return pdf.BinaryData;
    }
}

出力 PDF

PDF IronPDF 出力へのURL

IronPDF は、ヘッドレスな Chromium エンジンを使用して、完全な JavaScript および CSS サポートを備えたウェブページのピクセルパーフェクトレンダリングを実現します。

iText 7

using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using System.Net.Http;
using System.Threading.Tasks;
using iText.Html2pdf;

class Program
{
    static async Task Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = await pdfGenerator.GeneratePdfFromUrlWithIText7Async();

        // Save the PDF to a file
        File.WriteAllBytes("itext7-from-url.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public async Task<byte[]> GeneratePdfFromUrlWithIText7Async()
    {
        using var httpClient = new HttpClient();
        string html = await httpClient.GetStringAsync("https://www.apple.com");

        using var stream = new MemoryStream();
        HtmlConverter.ConvertToPdf(html, stream);
        return stream.ToArray();
    }
}
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using System.Net.Http;
using System.Threading.Tasks;
using iText.Html2pdf;

class Program
{
    static async Task Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = await pdfGenerator.GeneratePdfFromUrlWithIText7Async();

        // Save the PDF to a file
        File.WriteAllBytes("itext7-from-url.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public async Task<byte[]> GeneratePdfFromUrlWithIText7Async()
    {
        using var httpClient = new HttpClient();
        string html = await httpClient.GetStringAsync("https://www.apple.com");

        using var stream = new MemoryStream();
        HtmlConverter.ConvertToPdf(html, stream);
        return stream.ToArray();
    }
}

出力

iText 7 URL から PDF 出力

⚠️ iText 7 は HttpClient を使用して生の HTML を取得し、HtmlConverter を使用してレンダリングしますが、JavaScript をサポートせずCSS スタイリングが制限されています

2. バイト配列を使用して画像から新しいPDFファイルを作成する

IronPDF

using IronPdf;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.CreatePdfWithImage();

        // Save the PDF to a file
        File.WriteAllBytes("ironpdf-with-image.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] CreatePdfWithImage()
    {
        var pdf = ImageToPdfConverter.ImageToPdf("example.png");
        return pdf.BinaryData;
    }

}
using IronPdf;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.CreatePdfWithImage();

        // Save the PDF to a file
        File.WriteAllBytes("ironpdf-with-image.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] CreatePdfWithImage()
    {
        var pdf = ImageToPdfConverter.ImageToPdf("example.png");
        return pdf.BinaryData;
    }

}

出力

Create Pdf From Byte Array Itextsharp 11 related to IronPDF

✅ IronPDFのImageToPdfConverterツールによる簡単な画像からPDFの生成。 これにより、PNGファイルやJPGなどの画像からPDFファイルを簡単に作成できます。

iText 7

using iText.Kernel.Pdf;
using iText.Layout;
using iText.IO.Image;
using iText.Layout.Element;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.CreatePdfWithImage();

        // Save the PDF to a file
        File.WriteAllBytes("iText-with-image.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] CreatePdfWithImage()
    {
        using var ms = new MemoryStream();
        using var writer = new PdfWriter(ms);
        using var pdfDoc = new iText.Kernel.Pdf.PdfDocument(writer);
        var document = new Document(pdfDoc);

        var img = new Image(ImageDataFactory.Create("https://itextpdf.com/sites/default/files/2018-11/iText%207%20Product%20software%20-%20webimages_509x339px_V2_iText%207%20Core.png"));
        document.Add(img);
        document.Close();

        return ms.ToArray();
    }

}
using iText.Kernel.Pdf;
using iText.Layout;
using iText.IO.Image;
using iText.Layout.Element;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.CreatePdfWithImage();

        // Save the PDF to a file
        File.WriteAllBytes("iText-with-image.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] CreatePdfWithImage()
    {
        using var ms = new MemoryStream();
        using var writer = new PdfWriter(ms);
        using var pdfDoc = new iText.Kernel.Pdf.PdfDocument(writer);
        var document = new Document(pdfDoc);

        var img = new Image(ImageDataFactory.Create("https://itextpdf.com/sites/default/files/2018-11/iText%207%20Product%20software%20-%20webimages_509x339px_V2_iText%207%20Core.png"));
        document.Add(img);
        document.Close();

        return ms.ToArray();
    }

}

出力

画像出力付きiText 7 PDF

🟡 ImageDataFactoryを使用したドキュメントレイアウトの手動作成と明示的な画像挿入。

3. スタイル付きHTMLコンテンツをバイト配列を使用してPDFに変換

IronPDF

using iText.Kernel.Pdf;
using iText.Layout;
using iText.IO.Image;
using iText.Layout.Element;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.CreateStyledPdf();

        // Save the PDF to a file
        File.WriteAllBytes("ironpdf-styled-html.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] CreateStyledPdf()
    {
        string html = @"
        <html>
            <head>
                <style>
                    body { 
                        background-color: #f0f0f0; 
                        margin: 20px; 
                        padding: 20px; 
                        border-radius: 5px; 
                        box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
                    }
                    h1 { 
                        color: navy;
                        font-size: 32px;   
                        text-align: center;
                       }
                    p { 
                        font-size: 16px; 
                        font-weight: bold;
                      }
                </style>
            </head>
            <body>
                <h1>Welcome to IronPDF</h1>
                <p>This is a simple PDF document generated using IronPDF.</p>
            </body>
        </html>";

        var pdf = new ChromePdfRenderer().RenderHtmlAsPdf(html);
        return pdf.BinaryData;
    }

}
using iText.Kernel.Pdf;
using iText.Layout;
using iText.IO.Image;
using iText.Layout.Element;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.CreateStyledPdf();

        // Save the PDF to a file
        File.WriteAllBytes("ironpdf-styled-html.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] CreateStyledPdf()
    {
        string html = @"
        <html>
            <head>
                <style>
                    body { 
                        background-color: #f0f0f0; 
                        margin: 20px; 
                        padding: 20px; 
                        border-radius: 5px; 
                        box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
                    }
                    h1 { 
                        color: navy;
                        font-size: 32px;   
                        text-align: center;
                       }
                    p { 
                        font-size: 16px; 
                        font-weight: bold;
                      }
                </style>
            </head>
            <body>
                <h1>Welcome to IronPDF</h1>
                <p>This is a simple PDF document generated using IronPDF.</p>
            </body>
        </html>";

        var pdf = new ChromePdfRenderer().RenderHtmlAsPdf(html);
        return pdf.BinaryData;
    }

}

出力

IronPDF スタイルの HTML から PDF への出力

✅ IronPDF は、その Chromium エンジンのおかげで、タグや外部スタイルシートでの CSS を完全にサポートしています。

iText 7 + pdfHTML

using iText.Kernel.Pdf;
using iText.Layout;
using iText.IO.Image;
using iText.Layout.Element;
using System.IO;
using iText.Html2pdf;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.CreateStyledPdf();

        // Save the new document to the specified file location
        File.WriteAllBytes("iText-styled-html.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] CreateStyledPdf()
    {
        string html = @"
        <html>
            <head>
                <style>
                    body { 
                        background-color: #f0f0f0; 
                        margin: 20px; 
                        padding: 20px; 
                        border-radius: 5px; 
                        box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
                    }
                    h1 { 
                        color: navy;
                        font-size: 32px;   
                        text-align: center;
                       }
                    p { 
                        font-size: 16px; 
                        font-weight: bold;
                      }
                </style>
            </head>
            <body>
                <h1>Welcome to iText 7</h1>
                <p>This is a simple PDF document generated using iText 7 and pdfHTML.</p>
            </body>
        </html>";

        using var ms = new MemoryStream();
        ConverterProperties properties = new ConverterProperties();
        HtmlConverter.ConvertToPdf(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html)), ms, properties);
        return ms.ToArray();
    }

}
using iText.Kernel.Pdf;
using iText.Layout;
using iText.IO.Image;
using iText.Layout.Element;
using System.IO;
using iText.Html2pdf;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.CreateStyledPdf();

        // Save the new document to the specified file location
        File.WriteAllBytes("iText-styled-html.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] CreateStyledPdf()
    {
        string html = @"
        <html>
            <head>
                <style>
                    body { 
                        background-color: #f0f0f0; 
                        margin: 20px; 
                        padding: 20px; 
                        border-radius: 5px; 
                        box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
                    }
                    h1 { 
                        color: navy;
                        font-size: 32px;   
                        text-align: center;
                       }
                    p { 
                        font-size: 16px; 
                        font-weight: bold;
                      }
                </style>
            </head>
            <body>
                <h1>Welcome to iText 7</h1>
                <p>This is a simple PDF document generated using iText 7 and pdfHTML.</p>
            </body>
        </html>";

        using var ms = new MemoryStream();
        ConverterProperties properties = new ConverterProperties();
        HtmlConverter.ConvertToPdf(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html)), ms, properties);
        return ms.ToArray();
    }

}

出力

iText 7 スタイルのHTMLからPDFへの出力

⚠️HTML変換タスクを処理するには、有料のアドオンpdfHTMLのインストールが必要です。

📊 比較概要

機能 IronPDF iText 7(pdfHTML付き)


URLをPDFにレンダリング ✅ フルChromiumレンダリング ⚠️ HTMLをフェッチ、ネイティブJSはサポートされていません

画像を追加 ✅ HTMLまたは専用のイメージスタンプツールを介して埋め込む ✅ マニュアル画像ファクトリー

スタイル付きHTMLのレンダリング ✅ フルCSSサポート ⚠️ CSSサポートはpdfHTMLを通じてのみ提供されます

バイト配列を返す ✅ はい ✅ はい

セットアップの複雑さ ⭐ シンプル ⭐⭐ 中級(手動レイアウト)

出力品質 ⭐⭐⭐⭐⭐ ピクセルパーフェクト ⭐⭐⭐ 良いが静的

結論: どの.NETライブラリを選択するべきか?

IronPDFiText 7の選択はプロジェクトのニーズによりますが、開発者の体験、使いやすさ、現代的なレンダリング精度に関しては、IronPDFが明らかに抜きん出ています。

動的なHTMLコンテンツ、ウェブレンダリング、または完全なJavaScriptとCSSサポートでURLからPDFファイルを作成する必要がある場合、IronPDFのChromiumベースのエンジンは比類ない忠実度を提供します。 直感的なAPIと迅速なセットアップにより、バイト配列、ファイルストリーム、またはウェブベースのPDF生成を使用する際の迅速な開発と実際的な生産使用に最適です。

一方で、iText 7は、より伝統的でレイアウトに基づくアプローチを持つ、強力で評価の高いライブラリです。 それはドキュメント構造に対する堅実な制御を提供し、きめ細かい操作が必要な開発者には最適ですが、学習曲線が急で、最新のHTMLレンダリング機能に欠けています。

結論として:

  • 最新のWebコンテンツ、スタイル付きHTML、または迅速なプロトタイピングからピクセルパーフェクトな出力が欲しいですか? IronPDFを使用しましょう。
  • 詳細な制御が可能な低レベルのPDF作成ツールが必要ですか? iText 7 は適しているかもしれません。

    🚀 IronPDF の使用を開始する準備はできましたか?

    無料トライアルをダウンロードし、わずか数行のコードでC#を使用してプロフェッショナルでバイト配列に基づいたPDFを作成するのがいかに簡単かを体験してください。

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