製品比較

PDFの編集におけるiTextSharpとIronPDFの比較

公開済み 2023年5月8日
共有:

PDF(ポータブルドキュメントフォーマット)は、ドキュメントのフォーマット、セキュリティ、および携帯性を維持する能力から広く使用されているドキュメントフォーマットです。

PDFファイルは、世界で最も広く使用されている文書フォーマットの1つとなっており、C#言語でPDFを作成および操作するためのライブラリがいくつかあります。

IronPDFとiTextSharpを使ってC#でPDFファイルを編集する方法を発見するまた、これらの強力なライブラリを活用することで、作業を簡単にします。

この記事では、C#でのPDF操作に関する2つの人気ライブラリ、iTextSharpとIronPDFを比較します。 次に、両方のライブラリを使用してPDFファイルを編集する方法について説明し、その後、特に出力の印刷、パフォーマンス、価格の観点から、IronPDFがiTextSharpに比べて優れている点を探ります。

iTextSharp DLLおよびIronPDFライブラリの導入

iTextSharp とIronPDFの機能とトライアル情報は、開発者がC#でPDFファイルを効率的に操作するのに役立ちます。 両方のライブラリは、PDFドキュメントの作成、編集、および操作のための幅広い機能と性能を提供します。

iTextSharp DLLは、JavaベースのiTextライブラリのC#ポートです。 それは、PDFドキュメントの作成と操作のためのシンプルで使いやすいAPIを提供します。 iTextSharpは、AGPLライセンスの下で提供されているオープンソースライブラリです。

IronPDFは、C#を使用してPDFファイルを作成、編集、および操作するために設計された.NETライブラリです。 それは、PDFドキュメントを操作するための現代的かつ直感的なAPIを提供します。 IronPDFは、商業ライブラリです。無料トライアル版とサブスクリプションオプションより広範な用途のために

「iTextSharp と IronPDF ライブラリの比較」

iTextSharpとIronPDFのライブラリは、PDFドキュメントの作成、編集、及び操作のための多様な機能と特長を提供しています。 しかし、IronPDFにはiTextSharpに対するいくつかの利点があり、C#でPDFドキュメントを扱う際の優先的な選択肢とされています。

iTextSharpとIronPDFを使用したPDFファイルの編集

iTextSharp と IronPDF の違いについて議論したところで、両方のライブラリを使用して PDF ファイルを編集する方法を見てみましょう。 既存のPDFドキュメントにiTextSharpとIronPDFを使用して、テキストの追加、フォームフィールドの追加、およびフォームの記入の例を見ていきます。

iTextSharpを使用したPDFファイルの編集

前提条件

はじめに、次のものが必要になります:

  1. お使いのマシンにインストールされたVisual Studio。

  2. C#プログラミング言語の基本的な知識。

  3. プロジェクトにインストールされたiTextSharpライブラリ。

    PDF編集におけるiTextSharpとIronPDFの比較: 図1 - C#でiTextSharpを使用してPDFを作成。

    プロジェクトにiTextSharpライブラリをインストールするには、NuGetパッケージマネージャを使用できます。 Visual Studioプロジェクトを開き、ソリューションエクスプローラーでプロジェクト名を右クリックします。 コンテキストメニューから「NuGet パッケージの管理」を選択します。 NuGetパッケージマネージャーで「iTextSharp」を検索し、最新バージョンのパッケージをインストールします。

    PDF編集のためのiTextSharpとIronPDFの比較:図2 - ASP.NET C#でiTextSharpを使用する方法を探る

新しいPDFファイルの作成

iTextSharpを使用して新しいPDFファイルを作成するには、"Document"クラスの新しいインスタンスを作成し、そのコンストラクタに新しいFileStreamオブジェクトを渡す必要があります。 Here's an example: 例があります。

Paragraph header = new Paragraph("HEADER")
    .SetTextAlignment(TextAlignment.CENTER)
    .SetFontSize(16);
document.Add(header);
for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
{
    Rectangle pageSize = pdf.GetPage(i).GetPageSize();
    float x = pageSize.GetWidth() / 2;
    float y = pageSize.GetTop() - 20;
    document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0);
}
document.SetTopMargin(50);
document.SetBottomMargin(50);
Paragraph header = new Paragraph("HEADER")
    .SetTextAlignment(TextAlignment.CENTER)
    .SetFontSize(16);
document.Add(header);
for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
{
    Rectangle pageSize = pdf.GetPage(i).GetPageSize();
    float x = pageSize.GetWidth() / 2;
    float y = pageSize.GetTop() - 20;
    document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0);
}
document.SetTopMargin(50);
document.SetBottomMargin(50);
Dim header As Paragraph = (New Paragraph("HEADER")).SetTextAlignment(TextAlignment.CENTER).SetFontSize(16)
document.Add(header)
Dim i As Integer = 1
Do While i <= pdf.GetNumberOfPages()
	Dim pageSize As Rectangle = pdf.GetPage(i).GetPageSize()
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
	Dim x As Single = pageSize.GetWidth() / 2
	Dim y As Single = pageSize.GetTop() - 20
	document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0)
	i += 1
Loop
document.SetTopMargin(50)
document.SetBottomMargin(50)
VB   C#

上記のコードでは、"newfile.pdf"という新しいPDFファイルを作成し、そこに新しい段落を追加しました。

PDF編集のためのiTextSharpとIronPDFの比較:図3 - C#でPDFを作成するiTextSharpチュートリアル

既存のPDFファイルの編集

既存のPDFファイルをiTextSharpを使って編集するには、既存のPDFドキュメントを読み込むための PdfReader オブジェクトと、それを修正するための PdfStamper オブジェクトを作成する必要があります。 Here's an example: 例があります。

/**
iText URL to PDF
anchor-itext-url-to-pdf
**/
private void ExistingWebURL()
{
    //Initialize PDF writer
    PdfWriter writer = new PdfWriter("wikipedia.pdf");
    //Initialize PDF document
    using PdfDocument pdf = new PdfDocument(writer);
    ConverterProperties properties = new ConverterProperties();
    properties.SetBaseUri("https://en.wikipedia.org/wiki/Portable_Document_Format");
    Document document = HtmlConverter.ConvertToDocument(new FileStream("Test_iText7_1.pdf", FileMode.Open), pdf, properties);
    Paragraph header = new Paragraph("HEADER")
        .SetTextAlignment(TextAlignment.CENTER)
        .SetFontSize(16);
    document.Add(header);
    for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
    {
        Rectangle pageSize = pdf.GetPage(i).GetPageSize();
        float x = pageSize.GetWidth() / 2;
        float y = pageSize.GetTop() - 20;
        document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0);
    }
    document.SetTopMargin(50);
    document.SetBottomMargin(50);
    document.Close();
}
/**
iText URL to PDF
anchor-itext-url-to-pdf
**/
private void ExistingWebURL()
{
    //Initialize PDF writer
    PdfWriter writer = new PdfWriter("wikipedia.pdf");
    //Initialize PDF document
    using PdfDocument pdf = new PdfDocument(writer);
    ConverterProperties properties = new ConverterProperties();
    properties.SetBaseUri("https://en.wikipedia.org/wiki/Portable_Document_Format");
    Document document = HtmlConverter.ConvertToDocument(new FileStream("Test_iText7_1.pdf", FileMode.Open), pdf, properties);
    Paragraph header = new Paragraph("HEADER")
        .SetTextAlignment(TextAlignment.CENTER)
        .SetFontSize(16);
    document.Add(header);
    for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
    {
        Rectangle pageSize = pdf.GetPage(i).GetPageSize();
        float x = pageSize.GetWidth() / 2;
        float y = pageSize.GetTop() - 20;
        document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0);
    }
    document.SetTopMargin(50);
    document.SetBottomMargin(50);
    document.Close();
}
'''
'''iText URL to PDF
'''anchor-itext-url-to-pdf
'''*
Private Sub ExistingWebURL()
	'Initialize PDF writer
	Dim writer As New PdfWriter("wikipedia.pdf")
	'Initialize PDF document
	Using pdf As New PdfDocument(writer)
		Dim properties As New ConverterProperties()
		properties.SetBaseUri("https://en.wikipedia.org/wiki/Portable_Document_Format")
		Dim document As Document = HtmlConverter.ConvertToDocument(New FileStream("Test_iText7_1.pdf", FileMode.Open), pdf, properties)
		Dim header As Paragraph = (New Paragraph("HEADER")).SetTextAlignment(TextAlignment.CENTER).SetFontSize(16)
		document.Add(header)
		Dim i As Integer = 1
		Do While i <= pdf.GetNumberOfPages()
			Dim pageSize As Rectangle = pdf.GetPage(i).GetPageSize()
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
			Dim x As Single = pageSize.GetWidth() / 2
			Dim y As Single = pageSize.GetTop() - 20
			document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0)
			i += 1
		Loop
		document.SetTopMargin(50)
		document.SetBottomMargin(50)
		document.Close()
	End Using
End Sub
VB   C#

上記のコードでは、「existingfile.pdf」という既存のPDFファイルを開き、「editedfile.pdf」という新しいPDFファイルを作成しました。 フォームフィールドにデータを入力し、PDFファイルに新しいページを追加しました。

PdfStamper クラスは、画像の追加、注釈の作成、ページサイズの変更など、既存のPDFファイルを編集するための多くのオプションを提供します。

IronPDFを使ってPDFドキュメントを編集する

IronPDFはPDFドキュメントの編集を可能にする、強力なC#用PDFライブラリです。 このチュートリアルでは、IronPDFを使用して既存のPDFファイルを編集するために必要な手順を説明します。 さまざまな側面(新しいPDFドキュメントの作成、既存のPDFへのページの追加、PDFへのコンテンツの追加、PDFのフォームフィールドの入力)について取り上げます。 以下は、さまざまな手順を説明するためのC#のサンプルコードです。

PDF編集のためのiTextSharpとIronPDFの比較:図4 - IronPDFの機能概要

始める前に、次のものがインストールされていることを確認してください:

  • Visual Studio IDE(統合開発環境)
  • IronPDFライブラリ

ステップ1:新規プロジェクトの作成

Visual Studioで新しいC#プロジェクトを作成します。 「コンソール アプリケーション」プロジェクトタイプを選択してください。

ステップ2:IronPDFをインストールする

PDF編集のためのiTextSharpとIronPDFの比較:図5 - IronPDF NuGetパッケージのインストール

NuGetパッケージマネージャーを通じてプロジェクトにIronPDFライブラリをインストールしてください。

Install-Package IronPdf

ステップ3:既存のPDF文書を読み込む

既存のPDFドキュメントを読み込むには、PdfDocumentクラスを使用できます。 以下の例として、既存のPDFドキュメントをロードするコードを示します:

using IronPdf;

var existingPdf = @"C:\path\to\existing\pdf\document.pdf";
var pdfDoc = PdfDocument.FromFile(existingPdf);
using IronPdf;

var existingPdf = @"C:\path\to\existing\pdf\document.pdf";
var pdfDoc = PdfDocument.FromFile(existingPdf);
Imports IronPdf

Private existingPdf = "C:\path\to\existing\pdf\document.pdf"
Private pdfDoc = PdfDocument.FromFile(existingPdf)
VB   C#

PDF編集のためのiTextSharpとIronPDFの比較:図6 - IronPDFを使ってPDFを作成する

ステップ4:既存のPDFドキュメントに新しいページを追加する

既存のドキュメントに新しいページを追加するには、PdfDocument クラスの AddPage メソッドを使用できます。 以下は、既存のPDFに新しいページを追加する例です:

var newPage = pdfDoc.AddPage();
newPage.Size = PageSize.Letter;
var newPage = pdfDoc.AddPage();
newPage.Size = PageSize.Letter;
Dim newPage = pdfDoc.AddPage()
newPage.Size = PageSize.Letter
VB   C#

ステップ5:ウェブサイトからPDFを作成する

IronPDFを使用することで、以下のコードはウェブページのアドレスから直接PDFファイルを生成することができます。 さらに、カスタムヘッダーとフッターが提供されています。

/**
IronPDF URL to PDF
anchor-ironpdf-website-to-pdf
**/
private void ExistingWebURL()
{
    // Create a PDF from any existing web page
    var Renderer = new IronPdf.ChromePdfRenderer();
    // Create a PDF from an existing HTML
    Renderer.RenderingOptions.MarginTop = 50;  //millimetres
    Renderer.RenderingOptions.MarginBottom = 50;
    Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    Renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
    {
        CenterText = "{pdf-title}",
        DrawDividerLine = true,
        FontSize = 16
    };
    Renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
    {
        LeftText = "{date} {time}",
        RightText = "Page {page} of {total-pages}",
        DrawDividerLine = true,
        FontSize = 14
    };
    Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    Renderer.RenderingOptions.EnableJavaScript = true;
    Renderer.RenderingOptions.RenderDelay = 500; //milliseconds
    using var PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");
    PDF.SaveAs("wikipedia.pdf");
}
/**
IronPDF URL to PDF
anchor-ironpdf-website-to-pdf
**/
private void ExistingWebURL()
{
    // Create a PDF from any existing web page
    var Renderer = new IronPdf.ChromePdfRenderer();
    // Create a PDF from an existing HTML
    Renderer.RenderingOptions.MarginTop = 50;  //millimetres
    Renderer.RenderingOptions.MarginBottom = 50;
    Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    Renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
    {
        CenterText = "{pdf-title}",
        DrawDividerLine = true,
        FontSize = 16
    };
    Renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
    {
        LeftText = "{date} {time}",
        RightText = "Page {page} of {total-pages}",
        DrawDividerLine = true,
        FontSize = 14
    };
    Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    Renderer.RenderingOptions.EnableJavaScript = true;
    Renderer.RenderingOptions.RenderDelay = 500; //milliseconds
    using var PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");
    PDF.SaveAs("wikipedia.pdf");
}
'''
'''IronPDF URL to PDF
'''anchor-ironpdf-website-to-pdf
'''*
Private Sub ExistingWebURL()
	' Create a PDF from any existing web page
	Dim Renderer = New IronPdf.ChromePdfRenderer()
	' Create a PDF from an existing HTML
	Renderer.RenderingOptions.MarginTop = 50 'millimetres
	Renderer.RenderingOptions.MarginBottom = 50
	Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
	Renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
		.CenterText = "{pdf-title}",
		.DrawDividerLine = True,
		.FontSize = 16
	}
	Renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
		.LeftText = "{date} {time}",
		.RightText = "Page {page} of {total-pages}",
		.DrawDividerLine = True,
		.FontSize = 14
	}
	Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
	Renderer.RenderingOptions.EnableJavaScript = True
	Renderer.RenderingOptions.RenderDelay = 500 'milliseconds
	Dim PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format")
	PDF.SaveAs("wikipedia.pdf")
End Sub
VB   C#

iTextSharpとIronPDFの違い

PDF編集のためのiTextSharpとIronPDFの比較:図7 - iTextSharpとIronPDFの選択

iTextSharp は、C#でPDF ドキュメントを生成、操作、データ抽出を可能にする人気の高いオープンソースライブラリです。 それは長い歴史を持ち、広く使用されているライブラリです。しかし、IronPDFは新しく、より現代的なライブラリであり、追加の機能と利点を提供するため、開発者にはより良い選択肢となります。

IronPDFがiTextSharpを超える領域の一つは、その出力能力です。 IronPDFは、HTMLからPDFへの変換を優れたサポートを提供し、開発者がHTMLページをPDFドキュメントに簡単に変換できるようにします。 これは、リッチメディアやインタラクティブコンテンツを含むレポートやドキュメントを生成する際に特に有益です。 さらに、IronPDFはページレイアウトとフォーマットの詳細な制御を可能にし、望む外観に正確に一致するPDFドキュメントの作成を簡単にします。

PDF編集のためのiTextSharpとIronPDFの比較:図8 - IronPDFの特徴と機能

HTML入力文字列からPDFを生成

以下のコードは、IronPDFを使用してHTML入力からPDFを作成します。

/**
IronPDF HTML to PDF
anchor-ironpdf-document-from-html
**/
private void HTMLString()
{
    // Render any HTML fragment or document to HTML
    var Renderer = new IronPdf.ChromePdfRenderer();
    using var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
    Renderer.RenderingOptions.TextFooter = new HtmlHeaderFooter() 
    { 
        HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
    };
    var OutputPath = "ChromePdfRenderer.pdf";
    PDF.SaveAs(OutputPath);
    Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
}
/**
IronPDF HTML to PDF
anchor-ironpdf-document-from-html
**/
private void HTMLString()
{
    // Render any HTML fragment or document to HTML
    var Renderer = new IronPdf.ChromePdfRenderer();
    using var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
    Renderer.RenderingOptions.TextFooter = new HtmlHeaderFooter() 
    { 
        HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
    };
    var OutputPath = "ChromePdfRenderer.pdf";
    PDF.SaveAs(OutputPath);
    Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
}
'''
'''IronPDF HTML to PDF
'''anchor-ironpdf-document-from-html
'''*
Private Sub HTMLString()
	' Render any HTML fragment or document to HTML
	Dim Renderer = New IronPdf.ChromePdfRenderer()
	Dim PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>")
	Renderer.RenderingOptions.TextFooter = New HtmlHeaderFooter() With {.HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"}
	Dim OutputPath = "ChromePdfRenderer.pdf"
	PDF.SaveAs(OutputPath)
	Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
End Sub
VB   C#

iText 7 HTMLからPDFへの変換

以下のコードはiText7を使用してHTMLテキストを用いたPDFを生成します。

/**
iText HTML to PDF
anchor-itext-html-to-pdf
**/
private void HTMLString()
{
    HtmlConverter.ConvertToPdf("< h1 > Hello iText7 </ h1 >", new FileStream("ChromePdfRenderer.pdf", FileMode.Create));
}
/**
iText HTML to PDF
anchor-itext-html-to-pdf
**/
private void HTMLString()
{
    HtmlConverter.ConvertToPdf("< h1 > Hello iText7 </ h1 >", new FileStream("ChromePdfRenderer.pdf", FileMode.Create));
}
'''
'''iText HTML to PDF
'''anchor-itext-html-to-pdf
'''*
Private Sub HTMLString()
	HtmlConverter.ConvertToPdf("< h1 > Hello iText7 </ h1 >", New FileStream("ChromePdfRenderer.pdf", FileMode.Create))
End Sub
VB   C#

パフォーマンス

パフォーマンスの観点から見ると、IronPDFも明らかに優れています。 それはiTextSharpより高速かつ効率的に設計されており、開発者がより迅速に、そしてシステムリソースを少なくしてPDFを生成できるようにします。 これは特に、大規模または複雑なPDFドキュメントを扱う場合に重要です。このような場合、パフォーマンスが大きな要因となることがあります。

価格設定

もう一つのIronPDFがiTextSharpに対して優位性を持つ点は価格設定です。 iTextSharpはほとんどの用途で無料で使用できますが、特定の使用ケースでは商業ライセンスが必要であり、その商業ライセンスは非常に高価になることがあります。一方、IronPDFはより手頃な価格モデルを提供しており、さまざまなニーズや予算に応じたオプションが用意されています。

ライセンスと価格設定

iTextSharpとIronPDFの主な違いの一つは、ライセンスと価格設定です。

iTextSharpはAGPLライセンスの下でライセンス供与されており、オープンソースプロジェクトでは無料で使用できますが、商業利用には商業ライセンスが必要です。 iTextSharpの商用ライセンスは、求められる機能やサポートレベル、開発者の数およびデプロイメントサーバーの台数に基づいて、異なる階層で利用可能です。

一方、IronPDFは商業用ライブラリであり、購入前に評価するための無料トライアルを開発者に提供しています。 IronPDFは、開発者ごとのライセンスとサーバーごとのライセンス、さらに大規模な組織向けのエンタープライズライセンスなど、柔軟なライセンスオプションを提供しています。 IronPDFの価格は、必要な開発者数と機能に基づいています。複数年および大量ライセンスには割引が適用されます。

iTextSharpは小規模なオープンソースプロジェクトにはコスト効率が高いかもしれませんが、IronPDFの柔軟なライセンスオプションと商用サポートにより、商業プロジェクトや大規模な組織にとってより実行可能な選択肢となります。

PDF編集のためのiTextSharpとIronPDFの比較:図9 - IronPdfの主な機能

結論

結論として、iTextSharpとIronPDFはどちらもC#でPDF操作が可能なライブラリですが、より多才で効率的な選択肢として際立っているのはIronPDFです。その高度な機能、直感的なAPI、およびユーザーフレンドリーなドキュメントにより、IronPDFは開発者にとって優れた体験を提供します。 柔軟なライセンスオプションと費用対効果の高い価格設定により、商業プロジェクトや大企業により適しています。

さらに、IronPDFは、より高速なレンダリング時間、効率的なメモリ使用、および大規模なPDFドキュメントの最適化された処理により、優れた技術性能を誇ります。 Iron Softwareのライセンスに関するIronPDFの特別価格オプション複数の製品とライセンスを購入することで、開発者は、アプリケーション開発プロセスを合理化するための強力なツールとライブラリの包括的なスイートにアクセスすることができます。 C#プロジェクトに強力で効率的なPDFライブラリが必要な場合、IronPDFは良い選択です。

< 以前
バイト配列からPDFを生成 C# iTextSharp (vs IronPDF)
次へ >
iTextとは?(IronPDFを使用したC#およびJava PDFライブラリの代替)