ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
PDF(ポータブルドキュメントフォーマット)は、ドキュメントのフォーマット、セキュリティ、および携帯性を維持する能力から広く使用されているドキュメントフォーマットです。
PDFファイルは、世界で最も広く使用されている文書フォーマットの1つとなっており、C#言語でPDFを作成および操作するためのライブラリがいくつかあります。
IronPDFとiTextSharpを使ってC#でPDFファイルを編集する方法を発見するまた、これらの強力なライブラリを活用することで、作業を簡単にします。
この記事では、C#でのPDF操作に関する2つの人気ライブラリ、iTextSharpとIronPDFを比較します。 次に、両方のライブラリを使用してPDFファイルを編集する方法について説明し、その後、特に出力の印刷、パフォーマンス、価格の観点から、IronPDFがiTextSharpに比べて優れている点を探ります。
iTextSharp とIronPDFの機能とトライアル情報は、開発者がC#でPDFファイルを効率的に操作するのに役立ちます。 両方のライブラリは、PDFドキュメントの作成、編集、および操作のための幅広い機能と性能を提供します。
iTextSharp DLLは、JavaベースのiTextライブラリのC#ポートです。 それは、PDFドキュメントの作成と操作のためのシンプルで使いやすいAPIを提供します。 iTextSharpは、AGPLライセンスの下で提供されているオープンソースライブラリです。
IronPDFは、C#を使用してPDFファイルを作成、編集、および操作するために設計された.NETライブラリです。 それは、PDFドキュメントを操作するための現代的かつ直感的なAPIを提供します。 IronPDFは、商業ライブラリです。無料トライアル版とサブスクリプションオプションより広範な用途のために
iTextSharpとIronPDFのライブラリは、PDFドキュメントの作成、編集、及び操作のための多様な機能と特長を提供しています。 しかし、IronPDFにはiTextSharpに対するいくつかの利点があり、C#でPDFドキュメントを扱う際の優先的な選択肢とされています。
iTextSharp と IronPDF の違いについて議論したところで、両方のライブラリを使用して PDF ファイルを編集する方法を見てみましょう。 既存のPDFドキュメントにiTextSharpとIronPDFを使用して、テキストの追加、フォームフィールドの追加、およびフォームの記入の例を見ていきます。
はじめに、次のものが必要になります:
お使いのマシンにインストールされたVisual Studio。
C#プログラミング言語の基本的な知識。
プロジェクトにインストールされたiTextSharpライブラリ。
プロジェクトにiTextSharpライブラリをインストールするには、NuGetパッケージマネージャを使用できます。 Visual Studioプロジェクトを開き、ソリューションエクスプローラーでプロジェクト名を右クリックします。 コンテキストメニューから「NuGet パッケージの管理」を選択します。 NuGetパッケージマネージャーで「iTextSharp」を検索し、最新バージョンのパッケージをインストールします。
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)
上記のコードでは、"newfile.pdf"という新しい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
上記のコードでは、「existingfile.pdf」という既存のPDFファイルを開き、「editedfile.pdf」という新しいPDFファイルを作成しました。 フォームフィールドにデータを入力し、PDFファイルに新しいページを追加しました。
PdfStamper
クラスは、画像の追加、注釈の作成、ページサイズの変更など、既存のPDFファイルを編集するための多くのオプションを提供します。
IronPDFはPDFドキュメントの編集を可能にする、強力なC#用PDFライブラリです。 このチュートリアルでは、IronPDFを使用して既存のPDFファイルを編集するために必要な手順を説明します。 さまざまな側面(新しいPDFドキュメントの作成、既存のPDFへのページの追加、PDFへのコンテンツの追加、PDFのフォームフィールドの入力)について取り上げます。 以下は、さまざまな手順を説明するためのC#のサンプルコードです。
始める前に、次のものがインストールされていることを確認してください:
Visual Studioで新しいC#プロジェクトを作成します。 「コンソール アプリケーション」プロジェクトタイプを選択してください。
NuGetパッケージマネージャーを通じてプロジェクトにIronPDFライブラリをインストールしてください。
Install-Package IronPdf
既存の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)
既存のドキュメントに新しいページを追加するには、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
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
iTextSharp は、C#でPDF ドキュメントを生成、操作、データ抽出を可能にする人気の高いオープンソースライブラリです。 それは長い歴史を持ち、広く使用されているライブラリです。しかし、IronPDFは新しく、より現代的なライブラリであり、追加の機能と利点を提供するため、開発者にはより良い選択肢となります。
IronPDFがiTextSharpを超える領域の一つは、その出力能力です。 IronPDFは、HTMLからPDFへの変換を優れたサポートを提供し、開発者がHTMLページをPDFドキュメントに簡単に変換できるようにします。 これは、リッチメディアやインタラクティブコンテンツを含むレポートやドキュメントを生成する際に特に有益です。 さらに、IronPDFはページレイアウトとフォーマットの詳細な制御を可能にし、望む外観に正確に一致する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
以下のコードは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
パフォーマンスの観点から見ると、IronPDFも明らかに優れています。 それはiTextSharpより高速かつ効率的に設計されており、開発者がより迅速に、そしてシステムリソースを少なくしてPDFを生成できるようにします。 これは特に、大規模または複雑なPDFドキュメントを扱う場合に重要です。このような場合、パフォーマンスが大きな要因となることがあります。
もう一つのIronPDFがiTextSharpに対して優位性を持つ点は価格設定です。 iTextSharpはほとんどの用途で無料で使用できますが、特定の使用ケースでは商業ライセンスが必要であり、その商業ライセンスは非常に高価になることがあります。一方、IronPDFはより手頃な価格モデルを提供しており、さまざまなニーズや予算に応じたオプションが用意されています。
iTextSharpとIronPDFの主な違いの一つは、ライセンスと価格設定です。
iTextSharpはAGPLライセンスの下でライセンス供与されており、オープンソースプロジェクトでは無料で使用できますが、商業利用には商業ライセンスが必要です。 iTextSharpの商用ライセンスは、求められる機能やサポートレベル、開発者の数およびデプロイメントサーバーの台数に基づいて、異なる階層で利用可能です。
一方、IronPDFは商業用ライブラリであり、購入前に評価するための無料トライアルを開発者に提供しています。 IronPDFは、開発者ごとのライセンスとサーバーごとのライセンス、さらに大規模な組織向けのエンタープライズライセンスなど、柔軟なライセンスオプションを提供しています。 IronPDFの価格は、必要な開発者数と機能に基づいています。複数年および大量ライセンスには割引が適用されます。
iTextSharpは小規模なオープンソースプロジェクトにはコスト効率が高いかもしれませんが、IronPDFの柔軟なライセンスオプションと商用サポートにより、商業プロジェクトや大規模な組織にとってより実行可能な選択肢となります。
結論として、iTextSharpとIronPDFはどちらもC#でPDF操作が可能なライブラリですが、より多才で効率的な選択肢として際立っているのはIronPDFです。その高度な機能、直感的なAPI、およびユーザーフレンドリーなドキュメントにより、IronPDFは開発者にとって優れた体験を提供します。 柔軟なライセンスオプションと費用対効果の高い価格設定により、商業プロジェクトや大企業により適しています。
さらに、IronPDFは、より高速なレンダリング時間、効率的なメモリ使用、および大規模なPDFドキュメントの最適化された処理により、優れた技術性能を誇ります。 Iron Softwareのライセンスに関するIronPDFの特別価格オプション複数の製品とライセンスを購入することで、開発者は、アプリケーション開発プロセスを合理化するための強力なツールとライブラリの包括的なスイートにアクセスすることができます。 C#プロジェクトに強力で効率的なPDFライブラリが必要な場合、IronPDFは良い選択です。
9つの .NET API製品 オフィス文書用