製品比較 IronPDFとITextPDFの比較 Curtis Chau 更新日:7月 28, 2025 Download IronPDF NuGet Download テキストの検索と置換 テキストと画像のスタンプ Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article PDFを扱う開発者にとって、信頼できるPDF生成と操作のためのライブラリを持つことは不可欠です。 In the .NET ecosystem, two popular PDF libraries stand out – IronPDF and iTextPdf – each offering powerful tools to create, edit, and manage PDF documents. この記事では、機能能力、ドキュメントの質、および価格政策に基づいたこれらのライブラリの詳細な比較を提供します。 IronPDFとiTextPdfの概要 IronPDF IronPDFは.NET環境(Core 8、7、6、Frameworkなど)と互換性のある強力な.NETライブラリで、PDF管理に最適です。 HTMLからPDFへの変換、PDFのマージ、暗号化、デジタル署名などの包括的な機能セットを提供しています。 IronPDFのドキュメントは直感的で、ユーザーは信頼できるテクニカルサポートにアクセスできます。 開発者は、Stack Overflowのディスカッションやその他のソースコード共有プラットフォームでよく共通の問題を解決します。 iTextPdf iTextPdfはエンタープライズレベルのドキュメント処理に焦点を当てたiTextライブラリからのJavaおよび.NET(C#)の高度なPDFライブラリです。 AGPLおよび商用ライセンスの両方で利用可能で、さまざまなプロジェクトに対応する柔軟性を提供します。 iTextソフトウェア、例えばiTextPdfは非常にカスタマイズ可能で、ドキュメントの暗号化、デジタル署名、フォームの作成などの複雑なPDFタスクに最適です。 クロスプラットフォーム互換性 IronPDFとiTextPdfの両方はクロスプラットフォーム機能をサポートしており、.NET内のさまざまなアプリケーションニーズに対する柔軟性を提供します。 ここに各ライブラリの互換性の内訳があります。 IronPDF .NETバージョン: .NET Core(8、7、6、5、3.1+)、.NET Standard(2.0+)、および.NET Framework(4.6.2+)と互換性があります。 アプリ環境: Windows、Linux、Mac、Docker、Azure、AWS環境でシームレスに動作します。 サポートされているIDE: Microsoft Visual Studio、JetBrains Rider、ReSharperと良好に動作します。 OS & プロセッサ: Windows、Mac、Linux、x64、x86、ARMをサポートします。 iTextPdf .NETバージョン: .NET Core(2.x、3.x)、.NET Framework(4.6.1+)、.NET 5+をサポートします。 アプリ環境: Windows、macOS、Linux、Dockerと互換性があります。 主要機能の比較: IronPDF vs. iTextPdf 以下はそれぞれのライブラリが提供する主要機能の詳細な比較です。 IronPDF HTMLからPDFへの変換: HTML、CSS、JavaScript、画像をサポートします。 PDF操作: PDFドキュメントの分割、マージ、編集が可能です。 セキュリティ: PDFの暗号化と復号化機能。 編集: 注釈、ブックマーク、アウトラインを許可します。 テンプレート: ヘッダー、フッター、およびページ番号を適用します。 ウォーターマーク: HTML/CSSを使用してテキストおよび画像のウォーターマークをサポートします。 PDFスタンプ: 画像およびテキストスタンプをPDFファイルに追加します。 IronPDFが提供する豊富な機能セットの詳細については、IronPDFの機能ページをご覧ください。 iTextPdf PDF作成: ゼロからPDFドキュメントを作成することをサポートします。 フォーム: PDFフォームの作成と編集を提供します。 デジタル署名: PDFドキュメントに署名します。 圧縮: PDFファイルサイズを最適化します。 コンテンツ抽出: PDFからテキストと画像を抽出します。 カスタマイズ性: 複雑なプロジェクトに対する高いカスタマイズ性。 PDF機能の比較: IronPDF vs. iTextPdf HTMLからPDFへの変換 両方のライブラリはHTMLからPDFへの変換をサポートしていますが、アプローチと使用の簡単さに違いがあります。 IronPDF using IronPdf; // Instantiate the renderer var renderer = new ChromePdfRenderer(); // Create a PDF from an HTML string var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>"); pdf.SaveAs("output.pdf"); // Advanced example with external assets var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\"); myAdvancedPdf.SaveAs("html-with-assets.pdf"); using IronPdf; // Instantiate the renderer var renderer = new ChromePdfRenderer(); // Create a PDF from an HTML string var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>"); pdf.SaveAs("output.pdf"); // Advanced example with external assets var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\"); myAdvancedPdf.SaveAs("html-with-assets.pdf"); Imports IronPdf ' Instantiate the renderer Private renderer = New ChromePdfRenderer() ' Create a PDF from an HTML string Private pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>") pdf.SaveAs("output.pdf") ' Advanced example with external assets Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\") myAdvancedPdf.SaveAs("html-with-assets.pdf") $vbLabelText $csharpLabel iTextPdf using iText.Html2pdf; using System.IO; public class HtmlToPdf { public static void ConvertHtmlToPdf() { using (FileStream htmlSource = File.Open("input.html", FileMode.Open)) using (FileStream pdfDest = File.Open("output.pdf", FileMode.Create)) { ConverterProperties converterProperties = new ConverterProperties(); HtmlConverter.ConvertToPdf(htmlSource, pdfDest, converterProperties); } } } using iText.Html2pdf; using System.IO; public class HtmlToPdf { public static void ConvertHtmlToPdf() { using (FileStream htmlSource = File.Open("input.html", FileMode.Open)) using (FileStream pdfDest = File.Open("output.pdf", FileMode.Create)) { ConverterProperties converterProperties = new ConverterProperties(); HtmlConverter.ConvertToPdf(htmlSource, pdfDest, converterProperties); } } } Imports iText.Html2pdf Imports System.IO Public Class HtmlToPdf Public Shared Sub ConvertHtmlToPdf() Using htmlSource As FileStream = File.Open("input.html", FileMode.Open) Using pdfDest As FileStream = File.Open("output.pdf", FileMode.Create) Dim converterProperties As New ConverterProperties() HtmlConverter.ConvertToPdf(htmlSource, pdfDest, converterProperties) End Using End Using End Sub End Class $vbLabelText $csharpLabel IronPDFはHTML、CSS、およびJavaScriptのサポートを含むHTMLからPDFへの変換に対してシンプルなアプローチを提供します。 HTML文字列から直接変換したり、オプションのベースパスでアセットを含めることができます。 iTextPdfは効果的ですが、ファイルベースの変換に重点を置き、より多くの設定を必要とします。 PDFファイルの暗号化 セキュリティが非常に重要なシナリオでは、暗号化が不可欠です。 各ライブラリがそれをどのように扱うかを紹介します。 IronPDF using IronPdf; // Load an encrypted PDF or create a new one var pdf = PdfDocument.FromFile("encrypted.pdf", "password"); // Set document security settings pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key"); pdf.SecuritySettings.AllowUserCopyPasteContent = false; pdf.Password = "my-password"; pdf.SaveAs("secured.pdf"); using IronPdf; // Load an encrypted PDF or create a new one var pdf = PdfDocument.FromFile("encrypted.pdf", "password"); // Set document security settings pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key"); pdf.SecuritySettings.AllowUserCopyPasteContent = false; pdf.Password = "my-password"; pdf.SaveAs("secured.pdf"); Imports IronPdf ' Load an encrypted PDF or create a new one Private pdf = PdfDocument.FromFile("encrypted.pdf", "password") ' Set document security settings pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key") pdf.SecuritySettings.AllowUserCopyPasteContent = False pdf.Password = "my-password" pdf.SaveAs("secured.pdf") $vbLabelText $csharpLabel iTextPdf using iText.Kernel.Pdf; using System.Text; public class EncryptPdf { public static readonly string DEST = "encrypt_pdf.pdf"; public static readonly string OWNER_PASSWORD = "World"; public static readonly string USER_PASSWORD = "Hello"; protected void ManipulatePdf(string dest) { PdfDocument document = new PdfDocument(new PdfReader("input.pdf"), new PdfWriter(dest, new WriterProperties().SetStandardEncryption( Encoding.UTF8.GetBytes(USER_PASSWORD), Encoding.UTF8.GetBytes(OWNER_PASSWORD), EncryptionConstants.ALLOW_PRINTING, EncryptionConstants.ENCRYPTION_AES_128))); document.Close(); } } using iText.Kernel.Pdf; using System.Text; public class EncryptPdf { public static readonly string DEST = "encrypt_pdf.pdf"; public static readonly string OWNER_PASSWORD = "World"; public static readonly string USER_PASSWORD = "Hello"; protected void ManipulatePdf(string dest) { PdfDocument document = new PdfDocument(new PdfReader("input.pdf"), new PdfWriter(dest, new WriterProperties().SetStandardEncryption( Encoding.UTF8.GetBytes(USER_PASSWORD), Encoding.UTF8.GetBytes(OWNER_PASSWORD), EncryptionConstants.ALLOW_PRINTING, EncryptionConstants.ENCRYPTION_AES_128))); document.Close(); } } Imports iText.Kernel.Pdf Imports System.Text Public Class EncryptPdf Public Shared ReadOnly DEST As String = "encrypt_pdf.pdf" Public Shared ReadOnly OWNER_PASSWORD As String = "World" Public Shared ReadOnly USER_PASSWORD As String = "Hello" Protected Sub ManipulatePdf(ByVal dest As String) Dim document As New PdfDocument(New PdfReader("input.pdf"), New PdfWriter(dest, (New WriterProperties()).SetStandardEncryption(Encoding.UTF8.GetBytes(USER_PASSWORD), Encoding.UTF8.GetBytes(OWNER_PASSWORD), EncryptionConstants.ALLOW_PRINTING, EncryptionConstants.ENCRYPTION_AES_128))) document.Close() End Sub End Class $vbLabelText $csharpLabel IronPDFの方法は、暗号化と文書権限のコントロールを行いやすく、ユーザーフレンドリーです。 iTextPdfも効果的ですが、暗号化標準に焦点を当てた詳細なセットアップが必要です。 PDFコンテンツの編集 PDFファイルの情報をマスキングすることはプライバシーとセキュリティのために重要です。 各ライブラリがこの機能をどのようにサポートしているかを示します。 IronPDF using IronPdf; PdfDocument pdf = PdfDocument.FromFile("novel.pdf"); // Redact 'are' from all pages pdf.RedactTextOnAllPages("are"); pdf.SaveAs("redacted.pdf"); using IronPdf; PdfDocument pdf = PdfDocument.FromFile("novel.pdf"); // Redact 'are' from all pages pdf.RedactTextOnAllPages("are"); pdf.SaveAs("redacted.pdf"); Imports IronPdf Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf") ' Redact 'are' from all pages pdf.RedactTextOnAllPages("are") pdf.SaveAs("redacted.pdf") $vbLabelText $csharpLabel iTextPdf using iText.Kernel.Pdf; using iText.Kernel.Colors; // Define areas to redact on each page Rectangle[] rectanglesToRedact = { new Rectangle(100, 100, 200, 50) }; // Draw black rectangles to cover sensitive areas using (PdfDocument pdfDoc = new PdfDocument(new PdfReader("input.pdf"), new PdfWriter("output_redacted.pdf"))) { for (int pageNum = 1; pageNum <= pdfDoc.GetNumberOfPages(); pageNum++) { PdfPage page = pdfDoc.GetPage(pageNum); PdfCanvas canvas = new PdfCanvas(page); foreach (Rectangle rect in rectanglesToRedact) { canvas.SetFillColor(ColorConstants.BLACK) .Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight()) .Fill(); } } } using iText.Kernel.Pdf; using iText.Kernel.Colors; // Define areas to redact on each page Rectangle[] rectanglesToRedact = { new Rectangle(100, 100, 200, 50) }; // Draw black rectangles to cover sensitive areas using (PdfDocument pdfDoc = new PdfDocument(new PdfReader("input.pdf"), new PdfWriter("output_redacted.pdf"))) { for (int pageNum = 1; pageNum <= pdfDoc.GetNumberOfPages(); pageNum++) { PdfPage page = pdfDoc.GetPage(pageNum); PdfCanvas canvas = new PdfCanvas(page); foreach (Rectangle rect in rectanglesToRedact) { canvas.SetFillColor(ColorConstants.BLACK) .Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight()) .Fill(); } } } Imports iText.Kernel.Pdf Imports iText.Kernel.Colors ' Define areas to redact on each page Private rectanglesToRedact() As Rectangle = { New Rectangle(100, 100, 200, 50) } ' Draw black rectangles to cover sensitive areas Using pdfDoc As New PdfDocument(New PdfReader("input.pdf"), New PdfWriter("output_redacted.pdf")) Dim pageNum As Integer = 1 Do While pageNum <= pdfDoc.GetNumberOfPages() Dim page As PdfPage = pdfDoc.GetPage(pageNum) Dim canvas As New PdfCanvas(page) For Each rect As Rectangle In rectanglesToRedact canvas.SetFillColor(ColorConstants.BLACK).Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight()).Fill() Next rect pageNum += 1 Loop End Using $vbLabelText $csharpLabel IronPDFは簡単に全ページにわたって機密テキストを隠すマスキングツールを提供します。 対照的に、iTextPdfはセキュリティ領域を覆うために黒い長方形を手動で定義し適用する必要があります。 PDF文書への署名 PDFドキュメントの署名を自動化すると、かなりの時間を節約できます。 IronPDFとiTextPdfがデジタル署名をどのように扱っているかを示します。 IronPDF using IronPdf; using IronPdf.Signing; using System.Security.Cryptography.X509Certificates; // Create X509Certificate2 object with X509KeyStorageFlags set to Exportable X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable); // Create PdfSignature object var sig = new PdfSignature(cert); // Sign PDF document PdfDocument pdf = PdfDocument.FromFile("document.pdf"); pdf.Sign(sig); pdf.SaveAs("signed.pdf"); using IronPdf; using IronPdf.Signing; using System.Security.Cryptography.X509Certificates; // Create X509Certificate2 object with X509KeyStorageFlags set to Exportable X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable); // Create PdfSignature object var sig = new PdfSignature(cert); // Sign PDF document PdfDocument pdf = PdfDocument.FromFile("document.pdf"); pdf.Sign(sig); pdf.SaveAs("signed.pdf"); Imports IronPdf Imports IronPdf.Signing Imports System.Security.Cryptography.X509Certificates ' Create X509Certificate2 object with X509KeyStorageFlags set to Exportable Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable) ' Create PdfSignature object Private sig = New PdfSignature(cert) ' Sign PDF document Private pdf As PdfDocument = PdfDocument.FromFile("document.pdf") pdf.Sign(sig) pdf.SaveAs("signed.pdf") $vbLabelText $csharpLabel iTextPdf using System; using System.IO; using iText.Kernel.Pdf; using iText.Signatures; using Org.BouncyCastle.Crypto; using Org.BouncyCastle.Pkcs; using Org.BouncyCastle.X509; class Program { static void Main(string[] args) { string src = "input.pdf"; string dest = "output_signed.pdf"; string pfxFile = "your_certificate.pfx"; string pfxPassword = "your_password"; try { // Load your certificate Pkcs12Store ks = new Pkcs12Store(new FileStream(pfxFile, FileMode.Open), pfxPassword.ToCharArray()); string alias = null; foreach (string al in ks.Aliases) { if (ks.IsKeyEntry(al)) { alias = al; break; } } ICipherParameters pk = ks.GetKey(alias).Key; X509CertificateEntry[] chain = ks.GetCertificateChain(alias); X509Certificate2 cert = new X509Certificate2(chain[0].Certificate.GetEncoded()); // Create output PDF with signed content using (PdfReader reader = new PdfReader(src)) { using (PdfWriter writer = new PdfWriter(dest)) { using (PdfDocument pdfDoc = new PdfDocument(reader, writer)) { // Create the signer PdfSigner signer = new PdfSigner(pdfDoc, writer, new StampingProperties().UseAppendMode()); // Configure signature appearance PdfSignatureAppearance appearance = signer.GetSignatureAppearance(); appearance.SetReason("Digital Signature"); appearance.SetLocation("Your Location"); appearance.SetContact("Your Contact"); // Create signature IExternalSignature pks = new PrivateKeySignature(pk, "SHA-256"); signer.SignDetached(pks, chain, null, null, null, 0, PdfSigner.CryptoStandard.CMS); } } } Console.WriteLine($"PDF digitally signed successfully: {dest}"); } catch (Exception ex) { Console.WriteLine($"Error signing PDF: {ex.Message}"); } } } using System; using System.IO; using iText.Kernel.Pdf; using iText.Signatures; using Org.BouncyCastle.Crypto; using Org.BouncyCastle.Pkcs; using Org.BouncyCastle.X509; class Program { static void Main(string[] args) { string src = "input.pdf"; string dest = "output_signed.pdf"; string pfxFile = "your_certificate.pfx"; string pfxPassword = "your_password"; try { // Load your certificate Pkcs12Store ks = new Pkcs12Store(new FileStream(pfxFile, FileMode.Open), pfxPassword.ToCharArray()); string alias = null; foreach (string al in ks.Aliases) { if (ks.IsKeyEntry(al)) { alias = al; break; } } ICipherParameters pk = ks.GetKey(alias).Key; X509CertificateEntry[] chain = ks.GetCertificateChain(alias); X509Certificate2 cert = new X509Certificate2(chain[0].Certificate.GetEncoded()); // Create output PDF with signed content using (PdfReader reader = new PdfReader(src)) { using (PdfWriter writer = new PdfWriter(dest)) { using (PdfDocument pdfDoc = new PdfDocument(reader, writer)) { // Create the signer PdfSigner signer = new PdfSigner(pdfDoc, writer, new StampingProperties().UseAppendMode()); // Configure signature appearance PdfSignatureAppearance appearance = signer.GetSignatureAppearance(); appearance.SetReason("Digital Signature"); appearance.SetLocation("Your Location"); appearance.SetContact("Your Contact"); // Create signature IExternalSignature pks = new PrivateKeySignature(pk, "SHA-256"); signer.SignDetached(pks, chain, null, null, null, 0, PdfSigner.CryptoStandard.CMS); } } } Console.WriteLine($"PDF digitally signed successfully: {dest}"); } catch (Exception ex) { Console.WriteLine($"Error signing PDF: {ex.Message}"); } } } Imports System Imports System.IO Imports iText.Kernel.Pdf Imports iText.Signatures Imports Org.BouncyCastle.Crypto Imports Org.BouncyCastle.Pkcs Imports Org.BouncyCastle.X509 Friend Class Program Shared Sub Main(ByVal args() As String) Dim src As String = "input.pdf" Dim dest As String = "output_signed.pdf" Dim pfxFile As String = "your_certificate.pfx" Dim pfxPassword As String = "your_password" Try ' Load your certificate Dim ks As New Pkcs12Store(New FileStream(pfxFile, FileMode.Open), pfxPassword.ToCharArray()) Dim [alias] As String = Nothing For Each al As String In ks.Aliases If ks.IsKeyEntry(al) Then [alias] = al Exit For End If Next al Dim pk As ICipherParameters = ks.GetKey([alias]).Key Dim chain() As X509CertificateEntry = ks.GetCertificateChain([alias]) Dim cert As New X509Certificate2(chain(0).Certificate.GetEncoded()) ' Create output PDF with signed content Using reader As New PdfReader(src) Using writer As New PdfWriter(dest) Using pdfDoc As New PdfDocument(reader, writer) ' Create the signer Dim signer As New PdfSigner(pdfDoc, writer, (New StampingProperties()).UseAppendMode()) ' Configure signature appearance Dim appearance As PdfSignatureAppearance = signer.GetSignatureAppearance() appearance.SetReason("Digital Signature") appearance.SetLocation("Your Location") appearance.SetContact("Your Contact") ' Create signature Dim pks As IExternalSignature = New PrivateKeySignature(pk, "SHA-256") signer.SignDetached(pks, chain, Nothing, Nothing, Nothing, 0, PdfSigner.CryptoStandard.CMS) End Using End Using End Using Console.WriteLine($"PDF digitally signed successfully: {dest}") Catch ex As Exception Console.WriteLine($"Error signing PDF: {ex.Message}") End Try End Sub End Class $vbLabelText $csharpLabel PDFファイルにデジタル署名を適用する場合、IronPDFはX509証明書を使用して簡単かつ効率的な方法でこれを実現します。 そのAPIはプロセスを簡素化し、署名のセキュリティを犠牲にすることなくワークフローに統合しやすくします。 対照的に、iTextPDFの文書署名プロセスはより複雑なセットアップですが、追加のカスタマイズオプションを提供します。 開発者はより詳細なコントロールが可能ですが、iTextPDFの署名設定と証明書の処理をナビゲートする際には、より急な学習曲線に直面するかもしれません。 PDF文書への透かしの適用 PDFへのウォーターマーク適用は、ブランディング、機密保持、著作権保護のために重要です。 IronPDFとiTextPDFがどのようにPDFドキュメントにウォーターマークを適用するかをご紹介します。 IronPDF using IronPdf; // Stamps a Watermark onto a new or existing PDF var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf"); pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center); pdf.SaveAs(@"C:\Path\To\Watermarked.pdf"); using IronPdf; // Stamps a Watermark onto a new or existing PDF var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf"); pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center); pdf.SaveAs(@"C:\Path\To\Watermarked.pdf"); Imports IronPdf ' Stamps a Watermark onto a new or existing PDF Private renderer = New ChromePdfRenderer() Private pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf") pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center) pdf.SaveAs("C:\Path\To\Watermarked.pdf") $vbLabelText $csharpLabel iTextPdf using iText.IO.Font; using iText.IO.Font.Constants; using iText.Kernel.Colors; using iText.Kernel.Font; using iText.Kernel.Pdf; using iText.Kernel.Pdf.Canvas; using iText.Kernel.Pdf.Extgstate; using iText.Layout; using iText.Layout.Element; using iText.Layout.Properties; public class TransparentWatermark { public static readonly string DEST = "results/sandbox/stamper/transparent_watermark.pdf"; public static readonly string SRC = "../../../resources/pdfs/hero.pdf"; public static void Main(string[] args) { FileInfo file = new FileInfo(DEST); file.Directory.Create(); new TransparentWatermark().ManipulatePdf(DEST); } protected void ManipulatePdf(string dest) { PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest)); PdfCanvas under = new PdfCanvas(pdfDoc.GetFirstPage().NewContentStreamBefore(), new PdfResources(), pdfDoc); PdfFont font = PdfFontFactory.CreateFont(FontProgramFactory.CreateFont(StandardFonts.HELVETICA)); Paragraph paragraph = new Paragraph("This watermark is added UNDER the existing content") .SetFont(font) .SetFontSize(15); Canvas canvasWatermark1 = new Canvas(under, pdfDoc.GetDefaultPageSize()) .ShowTextAligned(paragraph, 297, 550, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0); canvasWatermark1.Close(); PdfCanvas over = new PdfCanvas(pdfDoc.GetFirstPage()); over.SetFillColor(ColorConstants.BLACK); paragraph = new Paragraph("This watermark is added ON TOP OF the existing content") .SetFont(font) .SetFontSize(15); Canvas canvasWatermark2 = new Canvas(over, pdfDoc.GetDefaultPageSize()) .ShowTextAligned(paragraph, 297, 500, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0); canvasWatermark2.Close(); paragraph = new Paragraph("This TRANSPARENT watermark is added ON TOP OF the existing content") .SetFont(font) .SetFontSize(15); over.SaveState(); PdfExtGState gs1 = new PdfExtGState(); gs1.SetFillOpacity(0.5f); over.SetExtGState(gs1); Canvas canvasWatermark3 = new Canvas(over, pdfDoc.GetDefaultPageSize()) .ShowTextAligned(paragraph, 297, 450, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0); canvasWatermark3.Close(); over.RestoreState(); pdfDoc.Close(); } } using iText.IO.Font; using iText.IO.Font.Constants; using iText.Kernel.Colors; using iText.Kernel.Font; using iText.Kernel.Pdf; using iText.Kernel.Pdf.Canvas; using iText.Kernel.Pdf.Extgstate; using iText.Layout; using iText.Layout.Element; using iText.Layout.Properties; public class TransparentWatermark { public static readonly string DEST = "results/sandbox/stamper/transparent_watermark.pdf"; public static readonly string SRC = "../../../resources/pdfs/hero.pdf"; public static void Main(string[] args) { FileInfo file = new FileInfo(DEST); file.Directory.Create(); new TransparentWatermark().ManipulatePdf(DEST); } protected void ManipulatePdf(string dest) { PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest)); PdfCanvas under = new PdfCanvas(pdfDoc.GetFirstPage().NewContentStreamBefore(), new PdfResources(), pdfDoc); PdfFont font = PdfFontFactory.CreateFont(FontProgramFactory.CreateFont(StandardFonts.HELVETICA)); Paragraph paragraph = new Paragraph("This watermark is added UNDER the existing content") .SetFont(font) .SetFontSize(15); Canvas canvasWatermark1 = new Canvas(under, pdfDoc.GetDefaultPageSize()) .ShowTextAligned(paragraph, 297, 550, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0); canvasWatermark1.Close(); PdfCanvas over = new PdfCanvas(pdfDoc.GetFirstPage()); over.SetFillColor(ColorConstants.BLACK); paragraph = new Paragraph("This watermark is added ON TOP OF the existing content") .SetFont(font) .SetFontSize(15); Canvas canvasWatermark2 = new Canvas(over, pdfDoc.GetDefaultPageSize()) .ShowTextAligned(paragraph, 297, 500, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0); canvasWatermark2.Close(); paragraph = new Paragraph("This TRANSPARENT watermark is added ON TOP OF the existing content") .SetFont(font) .SetFontSize(15); over.SaveState(); PdfExtGState gs1 = new PdfExtGState(); gs1.SetFillOpacity(0.5f); over.SetExtGState(gs1); Canvas canvasWatermark3 = new Canvas(over, pdfDoc.GetDefaultPageSize()) .ShowTextAligned(paragraph, 297, 450, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0); canvasWatermark3.Close(); over.RestoreState(); pdfDoc.Close(); } } Imports iText.IO.Font Imports iText.IO.Font.Constants Imports iText.Kernel.Colors Imports iText.Kernel.Font Imports iText.Kernel.Pdf Imports iText.Kernel.Pdf.Canvas Imports iText.Kernel.Pdf.Extgstate Imports iText.Layout Imports iText.Layout.Element Imports iText.Layout.Properties Public Class TransparentWatermark Public Shared ReadOnly DEST As String = "results/sandbox/stamper/transparent_watermark.pdf" Public Shared ReadOnly SRC As String = "../../../resources/pdfs/hero.pdf" Public Shared Sub Main(ByVal args() As String) Dim file As New FileInfo(DEST) file.Directory.Create() Call (New TransparentWatermark()).ManipulatePdf(DEST) End Sub Protected Sub ManipulatePdf(ByVal dest As String) Dim pdfDoc As New PdfDocument(New PdfReader(SRC), New PdfWriter(dest)) Dim under As New PdfCanvas(pdfDoc.GetFirstPage().NewContentStreamBefore(), New PdfResources(), pdfDoc) Dim font As PdfFont = PdfFontFactory.CreateFont(FontProgramFactory.CreateFont(StandardFonts.HELVETICA)) Dim paragraph As Paragraph = (New Paragraph("This watermark is added UNDER the existing content")).SetFont(font).SetFontSize(15) Dim canvasWatermark1 As Canvas = (New Canvas(under, pdfDoc.GetDefaultPageSize())).ShowTextAligned(paragraph, 297, 550, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0) canvasWatermark1.Close() Dim over As New PdfCanvas(pdfDoc.GetFirstPage()) over.SetFillColor(ColorConstants.BLACK) paragraph = (New Paragraph("This watermark is added ON TOP OF the existing content")).SetFont(font).SetFontSize(15) Dim canvasWatermark2 As Canvas = (New Canvas(over, pdfDoc.GetDefaultPageSize())).ShowTextAligned(paragraph, 297, 500, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0) canvasWatermark2.Close() paragraph = (New Paragraph("This TRANSPARENT watermark is added ON TOP OF the existing content")).SetFont(font).SetFontSize(15) over.SaveState() Dim gs1 As New PdfExtGState() gs1.SetFillOpacity(0.5F) over.SetExtGState(gs1) Dim canvasWatermark3 As Canvas = (New Canvas(over, pdfDoc.GetDefaultPageSize())).ShowTextAligned(paragraph, 297, 450, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0) canvasWatermark3.Close() over.RestoreState() pdfDoc.Close() End Sub End Class $vbLabelText $csharpLabel IronPDFのAPIは迅速かつ直感的なウォーターマーク適用を可能にし、HTMLおよびCSSを使用してカスタマイズする柔軟性を提供します。 このアプローチはユーザーフレンドリーで、大規模な設定なしに視覚的に独自のウォーターマークを作成することを容易にします。他方、iTextPDFはより詳細な設定オプションを通じて高度にカスタマイズ可能なウォーターマーク配置を可能にしますが、より広範なコーディング努力を必要とします。 PDFに画像とテキストをスタンプする コンテンツをPDFにスタンプすることは、ウォーターマークの適用と類似していますが、ラベル付けやブランディングの目的で特定の要素、例えば画像やテキストを追加することに重点を置いています。 IronPDFとiTextPDFがこのタスクをどのように遂行するかを示します。 IronPDF using IronPdf; using IronPdf.Editing; ChromePdfRenderer renderer = new ChromePdfRenderer(); PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>"); // Create text stamper TextStamper textStamper = new TextStamper() { Text = "Text Stamper!", FontFamily = "Bungee Spice", UseGoogleFont = true, FontSize = 30, IsBold = true, IsItalic = true, VerticalAlignment = VerticalAlignment.Top, }; // Stamp the text stamper pdf.ApplyStamp(textStamper); pdf.SaveAs("stampText.pdf"); // Create image stamper ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) { VerticalAlignment = VerticalAlignment.Top, }; // Stamp the image stamper pdf.ApplyStamp(imageStamper, 0); pdf.SaveAs("stampImage.pdf"); using IronPdf; using IronPdf.Editing; ChromePdfRenderer renderer = new ChromePdfRenderer(); PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>"); // Create text stamper TextStamper textStamper = new TextStamper() { Text = "Text Stamper!", FontFamily = "Bungee Spice", UseGoogleFont = true, FontSize = 30, IsBold = true, IsItalic = true, VerticalAlignment = VerticalAlignment.Top, }; // Stamp the text stamper pdf.ApplyStamp(textStamper); pdf.SaveAs("stampText.pdf"); // Create image stamper ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) { VerticalAlignment = VerticalAlignment.Top, }; // Stamp the image stamper pdf.ApplyStamp(imageStamper, 0); pdf.SaveAs("stampImage.pdf"); Imports IronPdf Imports IronPdf.Editing Private renderer As New ChromePdfRenderer() Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>") ' Create text stamper Private textStamper As New TextStamper() With { .Text = "Text Stamper!", .FontFamily = "Bungee Spice", .UseGoogleFont = True, .FontSize = 30, .IsBold = True, .IsItalic = True, .VerticalAlignment = VerticalAlignment.Top } ' Stamp the text stamper pdf.ApplyStamp(textStamper) pdf.SaveAs("stampText.pdf") ' Create image stamper Dim imageStamper As New ImageStamper(New Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) With {.VerticalAlignment = VerticalAlignment.Top} ' Stamp the image stamper pdf.ApplyStamp(imageStamper, 0) pdf.SaveAs("stampImage.pdf") $vbLabelText $csharpLabel iTextPdf using iText.Kernel.Pdf; using iText.Layout; using iText.Layout.Element; public void StampPDF(string inputPdfPath, string outputPdfPath, string stampText) { PdfDocument pdfDoc = new PdfDocument(new PdfReader(inputPdfPath), new PdfWriter(outputPdfPath)); Document doc = new Document(pdfDoc); // Add stamp (text) to each page int numPages = pdfDoc.GetNumberOfPages(); for (int i = 1; i <= numPages; i++) { doc.ShowTextAligned(new Paragraph(stampText), 36, 36, i, iText.Layout.Properties.TextAlignment.LEFT, iText.Layout.Properties.VerticalAlignment.TOP, 0); } doc.Close(); } using iText.Kernel.Pdf; using iText.Layout; using iText.Layout.Element; public void StampPDF(string inputPdfPath, string outputPdfPath, string stampText) { PdfDocument pdfDoc = new PdfDocument(new PdfReader(inputPdfPath), new PdfWriter(outputPdfPath)); Document doc = new Document(pdfDoc); // Add stamp (text) to each page int numPages = pdfDoc.GetNumberOfPages(); for (int i = 1; i <= numPages; i++) { doc.ShowTextAligned(new Paragraph(stampText), 36, 36, i, iText.Layout.Properties.TextAlignment.LEFT, iText.Layout.Properties.VerticalAlignment.TOP, 0); } doc.Close(); } Imports iText.Kernel.Pdf Imports iText.Layout Imports iText.Layout.Element Public Sub StampPDF(ByVal inputPdfPath As String, ByVal outputPdfPath As String, ByVal stampText As String) Dim pdfDoc As New PdfDocument(New PdfReader(inputPdfPath), New PdfWriter(outputPdfPath)) Dim doc As New Document(pdfDoc) ' Add stamp (text) to each page Dim numPages As Integer = pdfDoc.GetNumberOfPages() For i As Integer = 1 To numPages doc.ShowTextAligned(New Paragraph(stampText), 36, 36, i, iText.Layout.Properties.TextAlignment.LEFT, iText.Layout.Properties.VerticalAlignment.TOP, 0) Next i doc.Close() End Sub $vbLabelText $csharpLabel IronPDFの画像とテキストスタンプの方法は合理化されており、開発者が簡単にブランド化されたコンテンツやラベルをPDFページに追加するのを可能にします。 APIは馴染みのあるHTML/CSSスタイリング要素を活用しており、カスタマイズを簡単にします。 iTextPDFも画像表示およびテキストスタンピング機能を提供していますが、その設定には手動のセットアップが多く必要で、PDFレイアウト構造の実用知識が求められます。 PDFページ上で直接コンテンツを操作しスタイルする能力は開発者に強力なスティンピングツールを提供しますが、iTextPDFの設定は多少の努力を必要とするかもしれません。 DOCXからPDFに変換 いくつかのプロジェクトでは、DOCXファイルをPDF形式に変換する必要があります。 IronPDFとiTextがタスクをどのように処理するかの比較を示します、両者の違いを強調しています。 IronPDF using IronPdf; // Instantiate Renderer DocxToPdfRenderer renderer = new DocxToPdfRenderer(); // Render from DOCX file PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx"); // Save the PDF pdf.SaveAs("pdfFromDocx.pdf"); using IronPdf; // Instantiate Renderer DocxToPdfRenderer renderer = new DocxToPdfRenderer(); // Render from DOCX file PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx"); // Save the PDF pdf.SaveAs("pdfFromDocx.pdf"); Imports IronPdf ' Instantiate Renderer Private renderer As New DocxToPdfRenderer() ' Render from DOCX file Private pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx") ' Save the PDF pdf.SaveAs("pdfFromDocx.pdf") $vbLabelText $csharpLabel iTextPDF IronPDFとは異なり、iTextPDFにはDOCXをPDFに変換するためのビルトインサポートはありません。 この変換を実行するために、開発者は最初にDOCXファイルをiTextPDFを使用して処理または修正可能なPDF互換フォーマットに変換するために、DocXやAspose.Wordsなどのサードパーティーライブラリに頼る必要があります。 IronPDFは、DOCXからPDFへの変換に対するシンプルなビルトインソリューションを提供し、追加のライブラリを必要としません。 これにより、迅速で統合されたアプローチを必要とする開発者に非常に適しています。 対照的に、iTextPDFはDOCXファイルを変換するために外部ライブラリに依存しており、追加のセットアップと依存関係が必要で、プロジェクトの複雑さを増す可能性があります。 Bootstrap とモダン CSS フレームワークのサポート BootstrapスタイルのWebアプリケーションからPDFを生成する際、フルフレームワークのサポートは、並行するCSSファイルやレイアウトの修正を必要とせずにデザインの一貫性を確保します。 IronPDF: 完全なBootstrapフレームワークサポート IronPDF: フルBootstrapフレームワークサポート IronPDFのChromiumエンジンは、次を完全サポートします: Bootstrap 5: フルフレックスポックスレイアウト、CSSグリッド、ユーティリティクラス、すべてのコンポーネント Tailwind CSS: ブラウザで正確にレンダリングされる全ユーティリティクラス Foundation: 完全なグリッドシステムとコンポーネントライブラリ モダンCSS3: フレックスボックス、CSSグリッド、カスタムプロパティ、アニメーション、トランジション Real-world validation: IronPDF renders the Bootstrap homepage and all official examples with pixel-perfect accuracy. iTextPDF: 限られたBootstrapサポート iTextPDFは選択的なCSS3サポートでpdfHTMLを使用します: 限られたflexboxサポート: バージョン7.1.15で追加されましたが不完全です CSSグリッドなし: グリッドベースのBootstrapレイアウトはサポートされていません Bootstrap 3の制約: モダンなBootstrap 4/5コンポーネントには対応策が必要です 手動レイアウト変換: 複雑なレイアウトではPDF固有のコードが必要になることが多いです iTextPDFのドキュメントは、高度なCSS機能が期待通りレンダリングされない可能性があることを明示的に記載しており、開発者は各Bootstrapコンポーネントをテストし、簡素化されたレイアウトを作成する必要があります。 開発への影響: PDF生成のために独立したレイアウトコードを維持したり、Bootstrapコンポーネントを詳しくテストして修正しなければならないことで、開発時間は増加し、デザインの一貫性は低下します。 包括的なBootstrapフレームワークガイドとCSS3レンダリング機能の詳細については、BootstrapとフレックスボックスCSSガイドを参照してください。 コード例比較のまとめ より詳細な例はIronPDF Examplesをご覧ください。 価格とライセンス: IronPDF vs. iTextPdfライブラリ IronPDFの価格とライセンス IronPDFはライセンス購入に応じて異なるレベルと追加機能があります。 開発者はIron Suiteを購入することができ、IronSoftwareの製品すべてに2つの価格でアクセスできます。 ライセンスを購入する準備がまだ整っていない場合、IronPDFは無料トライアルを提供しています。 永久ライセンス: チームの規模、プロジェクトの要件、場所の数に応じて、さまざまな永久ライセンスを提供します。 各ライセンスタイプにはメールサポートが含まれています。 ライトライセンス: このライセンスは$799で1開発者、1拠点、1プロジェクトをサポートします。 Plusライセンス: 3人の開発者、3か所、3つのプロジェクトをサポートするこのライセンスは、ライセンス料金の中段に位置し、$1,199です。 プラスライセンスには、基本メールサポートに加えて、チャットサポートと電話サポートもあります。 プロフェッショナルライセンス: 10人の開発者、10か所、10プロジェクトをサポートし、$2,399で販売される大規模チーム向けのライセンスです。 以前の層と同じ連絡サポートチャネルを提供し、スクリーンシェアリングサポートも提供します。 ロイヤリティフリーの再配布: IronPDFのライセンスは、ロイヤリティフリーの再配布を追加$2,399で提供します。 中断のない製品サポート: IronPDFは年間$999または5年で$1,999の一括購入で、継続的な製品アップデート、セキュリティ機能アップグレード、およびエンジニアリングチームのサポートを提供します。 Iron Suite: $1,498で、IronPDF、IronOCR、IronWord、IronXL、IronBarcode、IronQR、IronZIP、IronPrint、IronWebScraperを含むすべてのIron Software製品にアクセスできます。 iTextPDFライセンス AGPLライセンス: iTextPDF CoreライブラリはAGPLライセンスの下でオープンソースであり、条件の下無料で使用できます。 開発者はAGPLライセンスの同じ条件で改変を公開しなければなりません。 商用ライセンス: AGPL条件を満たさない開発者のために、iTextPDFは見積もりベースの商用ライセンスを提供しています。 ドキュメントとサポート: IronPDF vs. iTextPdf IronPDF 包括的なドキュメント: 提供機能のすべてを網羅する広範でユーザーフレンドリーなドキュメント。 24/5サポート: アクティブなエンジニアサポートが利用可能です。 ビデオチュートリアル: YouTubeでのステップバイステップガイド。 コミュニティフォーラム: 追加サポートのための積極的なコミュニティ。 定期的なアップデート: 最新の機能とセキュリティパッチを確保するための月次製品アップデート。 iTextPDF iTextPDFはその広範な機能セットのために堅固なドキュメントとサポートを提供しています。 ドキュメント: iText PDFのドキュメントは利用可能な機能を詳細にカバーしています。 例とチュートリアル: コード例とチュートリアルで開発者が始めるのを助けます。 GitHubコミュニティ: 開発者は問題を報告したり、プルリクエストを提出したり、iTextPDFチームと交流することができます。 定期的なアップデート: iTextPDFは頻繁なアップデートと改良を提供します。 For more details on IronPDF documentation and support, visit the IronPDF Documentation and the IronSoftware YouTube Channel. 結論 .NETのPDF操作ツールの領域では、IronPDFとiTextPDFの両方が開発者に強力なソリューションを提供しています。 IronPDFは外部依存関係なしにDOCXをPDFに変換するなど、その簡単な.NETプラットフォームでの統合とユーザーフレンドリーな機能で際立っています。 対照的に、iTextPDFはその多用途性と豊富な機能セットで知られ、特に他のツールと組み合わせると強力な選択肢であり、DOCX変換には追加の依存関係が必要ですが。 最終的に、IronPDFとiTextPDFの選択は、プロジェクトの特定のニーズ、ライセンスの好み、および必要なサポートレベルに依存します。 両方のライブラリは、.NETアプリケーションにおけるPDFワークフローを効率化する信頼できる方法を提供します。 ご注意iTextPDFはその所有者の登録商標です。 このサイトはiTextPDFと提携しておらず、推奨または後援されていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。 よくある質問 C# で HTML を PDF に変換するにはどうすればいいですか? IronPDF の RenderHtmlAsPdf メソッドを使用して、HTML 文字列を PDF に変換できます。RenderHtmlFileAsPdf を使用して HTML ファイルを PDF に変換することもできます。 IronPDFはPDFの作成と操作にどのような機能を提供していますか? IronPDFは、HTMLからPDFへの変換、PDFのマージ、暗号化、デジタル署名、透かし、DOCXからPDFへの変換などの機能を提供します。 IronPDFはPDF署名をどのように簡素化しますか? IronPDFはX509証明書を使用してPDFファイルにデジタル署名を適用し、ドキュメントを安全に保つための簡単な方法を提供します。 IronPDFは異なるオペレーティングシステムで使用できますか? はい、IronPDFはクロスプラットフォームの互換性をサポートしています。Windows、Linux、Macでシームレスに動作し、.NET Core、.NET Standard、および.NET Frameworkと互換性があります。 ITextPDFはIronPDFと文書暗号化の観点でどのように異なりますか? ITextPDFは暗号化標準の詳細なセットアップを提供しますが、IronPDFは実装が簡単な組み込みの暗号化方法でプロセスを簡素化します。 IronPDFユーザーにはどのようなサポートリソースが利用可能ですか? IronPDFは包括的なドキュメント、ビデオチュートリアル、コミュニティフォーラム、24/5のエンジニアサポートを通じて充実したサポートを提供します。 IronPDFはDOCXからPDFへの変換をどのように扱いますか? IronPDFにはネイティブのDOCXからPDFへの変換機能が含まれており、追加のライブラリを必要とせずにシームレスな統合を可能にします。 IronPDFのライセンスオプションはどのようになっていますか? IronPDFはLite、Plus、Professionalなどの異なる階層と共に、ライセンスの無償再配布や製品サポートの継続を可能にする永続ライセンスを提供します。 IronPDFを使用してどのようにPDFに透かしを適用できますか? IronPDFを使用すると、HTMLとCSSを使用して簡単に透かしを適用でき、テキストまたは画像の透かしを迅速に追加し、必要に応じてカスタマイズすることができます。 IronPDFが.NETアプリケーションを開発する開発者にとって適している理由は何ですか? IronPDFは使いやすいように設計されており、簡素化されたAPIでHTMLからPDFへの変換、暗号化、デジタル署名などのタスクを効率的に実行します。これは.NET開発者に理想的です。 Curtis Chau 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 公開日 11月 13, 2025 C#のHTMLからPDFへのオープンソース対IronPDFの比較 C#用のオープンソースのHTMLからPDFライブラリをIronPDFと比較します。あなたの.NETプロジェクトに最適なPDF生成能力を提供するソリューションを見つけましょう。 詳しく読む 公開日 10月 27, 2025 どのASP.NET Core PDFライブラリが最も価値がありますか? ASP.NET Core アプリケーションに最適な PDF ライブラリを発見しよう。IronPDF の Chrome エンジンを Aspose および Syncfusion の代替案と比較します。 詳しく読む 公開日 10月 27, 2025 Aspose C# VS IronPDFでPDFを作成する方法 このステップバイステップガイドで、開発者向けにデザインされた Aspose C# と IronPDF を使用して PDF を作成する方法を学びましょう。 詳しく読む IronPDFとPDFreactorの比較IronPDF vs GemBox.Pdf: HTMLからPD...
公開日 11月 13, 2025 C#のHTMLからPDFへのオープンソース対IronPDFの比較 C#用のオープンソースのHTMLからPDFライブラリをIronPDFと比較します。あなたの.NETプロジェクトに最適なPDF生成能力を提供するソリューションを見つけましょう。 詳しく読む
公開日 10月 27, 2025 どのASP.NET Core PDFライブラリが最も価値がありますか? ASP.NET Core アプリケーションに最適な PDF ライブラリを発見しよう。IronPDF の Chrome エンジンを Aspose および Syncfusion の代替案と比較します。 詳しく読む
公開日 10月 27, 2025 Aspose C# VS IronPDFでPDFを作成する方法 このステップバイステップガイドで、開発者向けにデザインされた Aspose C# と IronPDF を使用して PDF を作成する方法を学びましょう。 詳しく読む