透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
PDFを扱う開発者にとって、PDFの生成と操作のための信頼できるライブラリを持つことは不可欠です。 .NETエコシステムには、C# PDFライブラリーが多数存在する可能性があるため、どのライブラリーがあなたのニーズに最適かをどうやって選ぶのでしょうか?
.NETアプリケーションでPDF機能を扱う際、適切なライブラリを選択することは効率的な開発にとって重要です。 この記事は、2つの主要なC# PDFライブラリ、IronPDFとiText 7(以前はiTextSharpとして知られていました)を詳細に比較しています。 私たちは、機能、パフォーマンス、ライセンス、さまざまなプロジェクト要件への適合性を探求し、情報に基づいた決定を下すのを支援します。
PDFはレポート、請求書、法的文書で広く使用されており、PDFの生成と操作は多くのアプリケーションにとって不可欠です。 ライブラリを選択する際に考慮すべき重要な要素には以下があります:
IronPDFは、.NET開発者向けに特別に設計された商業PDFライブラリです。 それはPDFの生成、操作、変換を簡素化し、C#アプリケーションで最も簡単に使用できるライブラリの一つにしています。
IronPDFは、.NET Core、.NET Framework、および.NET Standardをサポートしており、さまざまな.NET環境との互換性を確保しています。 その高いクロスプラットフォーム互換性により、異なるアプリ環境で作業するチームにとって理想的な選択肢となり、Visual StudioなどのIDEとシームレスに統合されます。 IronPDFは、.NETバージョンに加えて、Java、Python、Node.jsでも利用可能です。
🔹 主な機能:
フォームの入力とデータ抽出 – インタラクティブなPDFフォームにプログラムで入力し、フォームデータを抽出します。
📌 最適: 追加アドオンや複雑なライセンスの手間をかけず、シンプルでオールインワンのソリューションを求める開発者。
iText 7は、文書の作成、暗号化、署名を含む広範なPDF操作機能を提供する強力で柔軟なPDFライブラリです。 しかし、そのコアライブラリはネイティブにHTMLからPDFへの変換をサポートしていません。
🔹 主な機能:
PDFフォーム管理: 対話型PDFフォーム用にAcroFormsやXFA Formsを作成および編集します。
📌 最適な対象: 高度にカスタマイズ可能なPDFソリューションを必要とし、拡張機能のために追加アドオンを購入することをいとわない開発者。
特徴とそれに伴うコード例に入る前に、まずIronPDFとiText 7の間の最大の機能的な違いの1つであるHTMLからPDFへの変換を見てみましょう。
iText 7は一方で、pdfHTMLアドオンが必要であり、これは商用ライセンスの下での有料機能です。 これは、Web-to-PDF機能を必要とする開発者のコストを増加させます。
HTMLからPDFへの比較フローチャート
📌 結論: HTMLからPDFへの変換が必要な場合、IronPDFはこの機能を標準で備えているため、よりコスト効果の高いソリューションです。
IronPDFは、PDFドキュメントを操作するための豊富な機能セットを誇ります。 これらはPDFの作成から、PDFの操作およびセキュリティまでに及びます。 このライブラリが提供する幅広い機能をより明確に理解するために、いくつかの主要機能を選んで見ていきます。
HTML コンテンツを変換し、IronPDF の強力なレンダリングエンジンで高品質な PDF ドキュメントにします。IronPDF のレンダラーは単に HTML コンテンツを変換するだけでなく、オリジナルの CSS スタイリングや JavaScript のインタラクティビティをすべて維持することができます。
using IronPdf;
public class Program
{
static void Main(string[] args)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("example.html");
pdf.SaveAs("HtmlToPdf.pdf");
}
}
using IronPdf;
public class Program
{
static void Main(string[] args)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("example.html");
pdf.SaveAs("HtmlToPdf.pdf");
}
}
入力HTML
入力HTMLコンテンツ
出力PDF
IronPDFを使用したHTMLからPDFへの出力
このコード例では、最初に新しいChromePdfRenderer
インスタンスを作成しました。これは、IronPDFがHTMLをPDFにレンダリングするために使用する強力なレンダリングエンジンにアクセスすることを可能にします。 その後、RenderHtmlFileAsPdf()
メソッドにHTMLファイルを渡します。このメソッドは、HTMLをPDFにレンダリングし、PdfDocument
オブジェクトに保存します。 最後に、PDFを指定されたファイルの場所に保存します。
URLコンテンツをPDFに変換したい開発者向けに、IronPDFをご利用ください。 このライブラリを使用すると、ChromePdfRendererレンダリングエンジンを使用して、ピクセル完璧なPDFドキュメントを作成することができます。これにより、URL to PDFがレンダリングされた際に、すべての元のスタイリングとレイアウトが維持されます。 この例では、このURLを使用して、IronPDFがより複雑なCSSスタイリングをどのように処理できるかを示します。
using IronPdf;
public class Program
{
static void Main(string[] args)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
pdf.SaveAs("UrlToPdf.pdf");
}
}
using IronPdf;
public class Program
{
static void Main(string[] args)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
pdf.SaveAs("UrlToPdf.pdf");
}
}
PDF出力:
URL から PDF への出力に IronPDF を使用する
HTML から PDF への例と同様に、IronPDF を使用して URL を PDF に変換する最初のステップは、新しい ChromePdfRenderer
インスタンスを作成することです。 メソッドがURLコンテンツをRenderUrlAsPdf
を使用してPDF形式にレンダリングし終えたら、結果のPDFを新しいPdfDocument
オブジェクトに保存し、その後SaveAs
メソッドを使用してPDFを保存します。
PDFドキュメントにデジタル署名を適用することで、PDFドキュメントの信頼性を確保します。 開発者が考慮すべきデジタル署名の適用方法には、セキュアな証明書でPDFにデジタル署名をする、手書きの署名の画像をPDFに追加する、または証明書の画像をPDF自体にスタンプするなどの方法があります。
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
using IronSoftware.Drawing;
public class Program
{
static void Main(string[] args)
{
// Create PdfSignature object
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);
var sig = new PdfSignature(cert);
sig.SignatureImage = new PdfSignatureImage("IronPdf.png", 0, new Rectangle(150, 100, 350, 250));
// Sign and save PDF document
sig.SignPdfFile("product_report.pdf");
}
}
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
using IronSoftware.Drawing;
public class Program
{
static void Main(string[] args)
{
// Create PdfSignature object
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);
var sig = new PdfSignature(cert);
sig.SignatureImage = new PdfSignatureImage("IronPdf.png", 0, new Rectangle(150, 100, 350, 250));
// Sign and save PDF document
sig.SignPdfFile("product_report.pdf");
}
}
出力PDF
IronPDFを使用したデジタル署名の出力
この例では、証明書オブジェクトを読み込み、署名の視覚的表現、またはこの場合ではIronPDF画像を作成し、新しいPdfSignature
オブジェクトを作成して、PDFドキュメント自体の署名を行います。 最後に、SignPdfFile
を使用して、PDFドキュメントに署名し保存しました。
IronPDFの提供する機能をさらに探求したい場合は、ぜひその詳細な機能ページや各機能の詳細なコード例を含む使い方ガイドをご覧ください。
iText7は、PDFドキュメントをカスタマイズおよび強化するための幅広い機能を提供します。 さまざまなPDF規格の広範なフォーマットサポートと高度なPDF操作により、このPDFライブラリには多くの機能が詰め込まれています。 しかし、先に述べたように、iText7 は HTML から PDF への変換など、特定の PDF 関連のタスクを実行するために追加のパッケージを必要とする場合があります。
iText7自体はHTMLからPDFへの変換を行うことができませんが、iText7の商用ライセンス下で提供されている有料アドオンであるpdfHTMLを利用して、IronPDFの例で使用したHTMLファイルをPDFドキュメントに変換することができます。
using iText.Html2pdf;
public class Program
{
static void Main(string[] args)
{
using (FileStream htmlSource = File.Open("example.html", FileMode.Open))
using (FileStream pdf = File.Open("HtmlToPdfOutput.pdf", FileMode.Create))
{
ConverterProperties converterProperties = new ConverterProperties();
HtmlConverter.ConvertToPdf(htmlSource, pdf, converterProperties);
pdf.Close();
}
}
}
using iText.Html2pdf;
public class Program
{
static void Main(string[] args)
{
using (FileStream htmlSource = File.Open("example.html", FileMode.Open))
using (FileStream pdf = File.Open("HtmlToPdfOutput.pdf", FileMode.Create))
{
ConverterProperties converterProperties = new ConverterProperties();
HtmlConverter.ConvertToPdf(htmlSource, pdf, converterProperties);
pdf.Close();
}
}
}
出力PDF
iText7 HTMLからPDFへの出力
この例では、HTMLファイルを読み込み、レンダリングされたPDFを保存するファイルの場所を指定しました。 次に、ConvertToPdf
メソッドを使用して、HTMLファイルを簡単にPDFドキュメントに変換できます。
さて、URLをPDFに変換する際、iText7がIronPDFとどのように比較されるかを見ていく時です。 これについては、公平な比較を行うため、前と同じURLを使用します。
using System;
using System.Net.Http;
using System.IO;
using iText.Html2pdf;
public class Program
{
public static async System.Threading.Tasks.Task Main(string[] args)
{
string url = "https://www.apple.com"; // Replace with your target URL
string outputPdfPath = "output.pdf";
try
{
// Download HTML content from the URL
using (HttpClient client = new HttpClient())
{
string htmlContent = await client.GetStringAsync(url);
// Convert HTML to PDF
using (FileStream pdfStream = new FileStream(outputPdfPath, FileMode.Create))
{
ConverterProperties properties = new ConverterProperties();
HtmlConverter.ConvertToPdf(htmlContent, pdfStream, properties);
}
}
Console.WriteLine("PDF created successfully: " + outputPdfPath);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
using System;
using System.Net.Http;
using System.IO;
using iText.Html2pdf;
public class Program
{
public static async System.Threading.Tasks.Task Main(string[] args)
{
string url = "https://www.apple.com"; // Replace with your target URL
string outputPdfPath = "output.pdf";
try
{
// Download HTML content from the URL
using (HttpClient client = new HttpClient())
{
string htmlContent = await client.GetStringAsync(url);
// Convert HTML to PDF
using (FileStream pdfStream = new FileStream(outputPdfPath, FileMode.Create))
{
ConverterProperties properties = new ConverterProperties();
HtmlConverter.ConvertToPdf(htmlContent, pdfStream, properties);
}
}
Console.WriteLine("PDF created successfully: " + outputPdfPath);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
出力PDF
iText7 URLをPDF出力
ここに示されているように、iText7のURLからPDFへの変換アプローチはより手動で複雑です。 まず、URLからHTMLコンテンツをダウンロードし、その後HTML to PDFの例に見られるような同様の手順に従って、URLコンテンツをPDFドキュメントにレンダリングし、保存する必要があります。 出力画像でわかるように、iText7はIronPDFと異なり、元のスタイルやレイアウトの多くを維持できませんでした。
using System.Security.Cryptography.X509Certificates;
using iText.Kernel.Pdf;
using iText.Signatures;
using iText.Bouncycastle.Crypto;
using iText.Commons.Bouncycastle.Cert;
using iText.Commons.Bouncycastle.Crypto;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.Crypto;
using iText.Bouncycastle.X509;
using iText.Kernel.Crypto;
public partial class Program
{
static void Main(string[] args)
{
string inputPdf = "input.pdf"; // PDF to be signed
string outputPdf = "signed_output.pdf"; // Signed PDF output
string pfxFile = "IronSoftware.pfx"; // Path to your PFX certificate
string password = "Passw0rd"; // Password for PFX file
try
{
// Load your certificate
Pkcs12Store ks = new Pkcs12StoreBuilder().Build();
using (FileStream fs = new FileStream(pfxFile, FileMode.Open, FileAccess.Read))
{
ks.Load(fs, password.ToCharArray());
}
string? alias = null;
foreach (string al in ks.Aliases)
{
if (ks.IsKeyEntry(al))
{
alias = al;
break;
}
}
if (alias == null)
{
throw new Exception("Alias not found in the PFX file.");
}
ICipherParameters pk = ks.GetKey(alias).Key;
X509CertificateEntry[] chain = ks.GetCertificateChain(alias);
X509Certificate2 cert = new X509Certificate2(chain[0].Certificate.GetEncoded());
// Convert BouncyCastle certificate to iText certificate
var itextCertChain = new IX509Certificate[chain.Length];
for (int i = 0; i < chain.Length; i++)
{
itextCertChain[i] = new X509CertificateBC(chain[i].Certificate);
}
// Create output PDF with signed content
using (PdfReader reader = new PdfReader(inputPdf))
using (FileStream os = new FileStream(outputPdf, FileMode.Create, FileAccess.Write))
{
PdfSigner signer = new PdfSigner(reader, os, new StampingProperties().UseAppendMode());
// Set up the external signature (private key + digest algorithm)
IPrivateKey iTextPrivateKey = new PrivateKeyBC(pk);
IExternalSignature pks = new PrivateKeySignature(iTextPrivateKey, DigestAlgorithms.SHA256);
IExternalDigest digest = new BouncyCastleDigest();
// Perform the signing (detached signature)
signer.SignDetached(digest, pks, itextCertChain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);
}
Console.WriteLine($"PDF digitally signed successfully: {outputPdf}");
}
catch (Exception ex)
{
Console.WriteLine($"Error signing PDF: {ex.Message}");
}
}
}
using System.Security.Cryptography.X509Certificates;
using iText.Kernel.Pdf;
using iText.Signatures;
using iText.Bouncycastle.Crypto;
using iText.Commons.Bouncycastle.Cert;
using iText.Commons.Bouncycastle.Crypto;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.Crypto;
using iText.Bouncycastle.X509;
using iText.Kernel.Crypto;
public partial class Program
{
static void Main(string[] args)
{
string inputPdf = "input.pdf"; // PDF to be signed
string outputPdf = "signed_output.pdf"; // Signed PDF output
string pfxFile = "IronSoftware.pfx"; // Path to your PFX certificate
string password = "Passw0rd"; // Password for PFX file
try
{
// Load your certificate
Pkcs12Store ks = new Pkcs12StoreBuilder().Build();
using (FileStream fs = new FileStream(pfxFile, FileMode.Open, FileAccess.Read))
{
ks.Load(fs, password.ToCharArray());
}
string? alias = null;
foreach (string al in ks.Aliases)
{
if (ks.IsKeyEntry(al))
{
alias = al;
break;
}
}
if (alias == null)
{
throw new Exception("Alias not found in the PFX file.");
}
ICipherParameters pk = ks.GetKey(alias).Key;
X509CertificateEntry[] chain = ks.GetCertificateChain(alias);
X509Certificate2 cert = new X509Certificate2(chain[0].Certificate.GetEncoded());
// Convert BouncyCastle certificate to iText certificate
var itextCertChain = new IX509Certificate[chain.Length];
for (int i = 0; i < chain.Length; i++)
{
itextCertChain[i] = new X509CertificateBC(chain[i].Certificate);
}
// Create output PDF with signed content
using (PdfReader reader = new PdfReader(inputPdf))
using (FileStream os = new FileStream(outputPdf, FileMode.Create, FileAccess.Write))
{
PdfSigner signer = new PdfSigner(reader, os, new StampingProperties().UseAppendMode());
// Set up the external signature (private key + digest algorithm)
IPrivateKey iTextPrivateKey = new PrivateKeyBC(pk);
IExternalSignature pks = new PrivateKeySignature(iTextPrivateKey, DigestAlgorithms.SHA256);
IExternalDigest digest = new BouncyCastleDigest();
// Perform the signing (detached signature)
signer.SignDetached(digest, pks, itextCertChain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);
}
Console.WriteLine($"PDF digitally signed successfully: {outputPdf}");
}
catch (Exception ex)
{
Console.WriteLine($"Error signing PDF: {ex.Message}");
}
}
}
出力PDF
iText7 デジタル署名出力
ご覧のとおり、iText7はPDFドキュメントのデジタル署名が可能ですが、プロセスはIronPDFよりもずっと複雑になりがちです。 このコードは PFX 証明書を読み込み、それを使用して PDF にデジタル署名します。 それは秘密鍵と証明書を抽出し、署名者を設定してPDFに分離署名を追加し、署名されたドキュメントを保存します。
IronPDFは、その使いやすさと高性能化の最適化で知られており、HTMLからPDFへの変換などの一般的なタスクを簡素化するよりシンプルなAPIを提供しています。 それは、高度なPDF処理タスクを抽象化する高レベルのメソッドを提供し、開発者が最小限のコードでPDFを生成、編集、操作できるようにします。 マルチスレッドまたは大規模なドキュメント処理のために、IronPDFは並列実行をサポートしています。
一方、iText 7は、より詳細で細かなレベルのコントロールを提供しており、広範囲なカスタマイズを必要とする開発者にとって有用です。 これは低レベルのPDF操作を扱うための堅牢なAPIを提供します。しかし、その複雑さから、iText 7はIronPDFと比べて同様の結果を達成するためにより多くのコードを必要とすることがよくあります。
.NETプロジェクトのためにPDFライブラリを選択する際、ライセンスとコストの考慮事項は重要です。 IronPDFとiText 7はそれぞれ異なるライセンスモデルを採用しており、適切なものを選択するにはプロジェクトの要件、予算、コンプライアンスのニーズに依存します。
IronPDFは商用ライセンシングモデルに従っており、商用ライセンスの無料トライアルを提供し、開発と評価には無料ですが、完全な本番使用には有料ライセンスが必要です。料金は透明で、使用規模、開発者の数、プロジェクトの種類などの要因によって決まります。
🔹 IronPDF ライセンス:
✅ シンプルでコスト効果の高いPDFソリューションを必要とするビジネスに最適。
📌 結論: IronPDF は、すべての主要な機能を単一ライセンスに含んでおり、チームや企業にとってコスト効率の高い選択肢です。
iText7はデュアルライセンスモデルの下で動作し、これには以下が含まれます:
AGPL(GNU Affero General Public License) – オープンソースプロジェクトには無料ですが、iText7を使用するプロジェクト全体がオープンソースであり、AGPLに準拠している必要があります。 これは、プロジェクトに加えられた変更や追加はすべて公開されなければならないことを意味します。
商用ライセンス – ソースコードを開示したくない独自のソフトウェアや商用アプリケーションに必要です。 価格構造は、使用状況、サポートレベル、および展開規模に基づいて異なります。
独自のソフトウェアにiText 7を統合しようとする企業には、商用ライセンスが必須です。 コストは特にエンタープライズレベルのソリューションにおいては開発者ごとのスケールで価格設定されているため、かなりのものになる可能性がありますが、それによりプロフェッショナルなサポートへのアクセスが提供され、法的コンプライアンスが保証されます。
🔹 iText 7がより高価になる理由:
重要な機能には高価なアドオンが必要です:
pdfHTML(有料)– HTML-to-PDF変換に必要です。
pdfOCR(有料)– 画像からのテキスト認識に必要です。
pdfCalligraph (有料) – テキストレンダリングとフォントサポートを改善します。
📌 結論: チームが複数の開発者とHTML-to-PDFやOCRのような主要機能を必要とする場合、iText 7はIronPDFよりもはるかに高価になる可能性があります。IronPDFはこれらの機能を追加費用なしで提供します。
小規模プロジェクト vs. エンタープライズプロジェクト
小規模から中規模のプロジェクトで、最小限の設定でPDF機能を迅速に実装する必要がある場合は、IronPDFは使いやすいAPIと包括的な機能セットを備えているため、魅力的な選択肢です。 エンタープライズレベルのプロジェクトで、特定のPDF標準への広範なカスタマイズと遵守が求められる場合、iText7の高度な機能が有益かもしれませんが、IronPDFも、高パフォーマンス、ライセンスオプション、および使いやすさにより、このレベルの作業に適した強力な候補であることが証明されています。
学術利用および商業利用
学術環境やオープンソースプロジェクトでは、iText 7のAGPLライセンスはプロジェクトのライセンスが互換性を備えている限り、無料で使用することができます。 商用アプリケーションの場合、IronPDFとiText 7の両方に商用ライセンスの購入が必要です。 各ライブラリのライセンス条件を確認し、プロジェクトの目的に適合することを確認することをお勧めします。
.NETプロジェクトに適したPDFライブラリを選ぶことは、使いやすさ、機能セット、ライセンスのニーズといった要因に依存する重要な決定です。 IronPDF と iText 7 の両方が強力な PDF 機能を提供しますが、それぞれ異なる要件に対応しています。 これらの2つのライブラリを超えて、Aspose、Syncfusion、およびPDFSharpのような競合他社も競争力のある.NET PDFライブラリを提供しています。 しかしながら、IronPDFはその使いやすいAPI、包括的な機能セット、そしてコスト効率の高さでPDF業界を常にリードしています。
以下に、IronPDFがすべての.NET PDFライブラリのニーズに対して優れた選択肢である理由についての説得力のある議論をまとめました。
IronPDF 対 iText7 比較サマリー
プロジェクトで、特にウェブコンテンツからの迅速なPDF生成が必要で、使いやすいソリューションを探している場合、IronPDFが最適な選択肢である可能性があります。しかし、アプリケーションに高度なPDF操作やPDF標準への厳密な準拠が求められ、大幅なカスタマイズの柔軟性が必要な場合は、iText7がより適しているかもしれません。 プロジェクトの特定の要件とライセンシング制約を考慮して、ニーズに最適なライブラリを決定してください。
🎯 IronPDFを試してみましょう: IronPDFの強力な機能を自分自身で探索するために無料トライアルをダウンロードしましょう!
今日から無料トライアルでIronPDFをあなたのプロジェクトで使い始めましょう。