フッターコンテンツにスキップ
製品比較

IronPDFとITextPDFの比較

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 vs iTextPDF比較画像

より詳細な例は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製品にアクセスできます。

IronPDF vs iTextPDF価格画像

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ボットを作成したりして、技術に対する愛情と創造性を組み合わせています。