製品比較

.NET Core向けiTextSharp C# HTML to PDF代替ソリューション

公開済み 2024年10月23日
共有:

IronPDF およびiText 7 (以前はiTextSharpとして知られていました)この2つのツールは、生成、操作、および.NETと.NET CoreでPDFを印刷する.

そのための最もOptimalな選択は、Iron套件で提供される多くの製品を見て、どれがあなたの特定のニーズに最適かを理解することです。たとえば、あなたがPDFを生成したり操作したりする必要がある場合、IronPDF for .NETが適しています。OCR(光学文字認識)のタスクに取り組んでいる場合は、IronOCR for .NETが役立ちます。同様に、Excelファイルの作成と操作に関しては、IronXL for .NETがあなたのためです。

あなたの開発環境やプログラミング言語に合わせて、最適なツールを選びましょう。IronPDF for Java、IronPDF for Python、またはIronPDF for Node.jsのように、特定の言語用のバージョンも提供されています。

さらに、ライセンスの種類についても考慮することをお勧めします。Lite License、Plus License、Professional License、Unlimited Licenseのいずれか、あなたのニーズに最も合ったものを選択してください。また、Iron Suiteを導入することで、複数の製品を一括で利用することも可能です。

もしわからないことがあれば、Iron Softwareの公式ウェブサイトにアクセスするか、サポートチームに問い合わせてみてください。彼らはあなたが最適なソリューションを見つけるお手伝いをします。C# PDFライブラリ.NETプロジェクトに最適なのはどれですか? この記事の目的は、読者が適切で情報に基づいた決定を下せるように支援することです。

IronPDFは著名な.NET PDFライブラリで、開発者が簡単にPDFドキュメントを作成、変更、操作できるようにします。 .NET Core、.NET 8、7、6、Frameworkを含む様々な.NET環境をサポートしており、高い汎用性を持っています。IronPDFの主な機能には、HTMLからPDFへの変換、PDFのマージ、暗号化、電子署名などがあります。 ドキュメントはユーザーフレンドリーで、テクニカルサポートも充実しています。

iTextSharpは.NETプラットフォーム用の強力なPDFライブラリで、もともとはiText(Javaベース). このツールは、PDFの作成と操作のためのエンタープライズレベルのソリューションを提供し、オープンソースの両方で利用可能です。(AGPL)および商用ライセンス。 iTextSharpのコアライブラリは高い柔軟性を備えており、開発者はゼロからPDFを作成したり、フォームを管理したり、電子署名を適用したり、PDF機能を追加したりすることができます。

クロスプラットフォーム互換性

IronPDFとは:

  • .NETファースト
  • 公開された価格でのオープンな商業利用
  • 開発者がPDFの仕組みを学ぶ必要がないように、HTMLからPDFをレンダリングすることに重点を置いています。
  • 実務に取り組むプログラマーにとって最適な選択肢です。

    iText (アイテックス) (iTextSharp)です:

    • Java First Java First
  • 非常にオープンソース。 次の場合には、厳密なオープンソースのAGLPプロジェクト以外で使用するための見積もりを求めて、彼らに連絡することができます。
  • PDFが内部的にどのように動作するかに基づいたプログラムAPIを使用してPDFをレンダリングすることに重点を置いています。
  • 無料および学術プロジェクトに最適な選択

    IronPDFさまざまなプラットフォームや環境をサポートしており、さまざまなシステムにおけるシームレスな統合と展開を保証します。

    iTextSharpiTextは、iTextと呼ばれるオープンソースのJavaコードベースに基づいて、少なくとも6年前から存在しており、現在でもJavaの風味が多少残っています。 Javaから学習を始めた開発者にとって、このライブラリは馴染み深いでしょう。

    IronPDFは.NETファーストのライブラリで、APIはVisual Studioで使いやすく設計されています。 .NETは、ほぼ20年間にわたり存在し続け、成長と拡大を続け、多くの可能性を開いてきました。そして、IronPDFはその可能性を活用するために設計されています。 .NETフレームワークのプロジェクトでPDFドキュメントを作成・操作することができます。 IronPDFを以下の形式でダウンロードできます:iTextSharpユーザーのための代替PDFライブラリ.

    • .NETコア(8, 7, 6, 5, および3.1+)

    • .NETスタンダード(2.0以上)
  • .NETフレームワーク(4.6.2+)
  • アプリ環境: IronPDFは、Windows、Linux、Mac、Docker、Azure、およびAWSを含むアプリ環境で動作します。
  • IDEs: Microsoft Visual Studio や JetBrains Rider & ReSharper などの IDEs と互換性があります
  • OSとプロセッサ: Windows、Mac、Linux、x64、x86、ARMを含む複数の異なるOSおよびプロセッサをサポート

iTextSharp:

  • .NETバージョン:.NET Coreをサポートしています。(2.x, 3.x).NET フレームワーク(4.6.1+).NET 5以上。
  • アプリケーション環境:Windows、macOS、Linux、Docker上で動作します。
  • オープンソース: AGPLライセンスのもとで利用可能。

主な機能の比較IronPDF vs. iTextSharp

IronPDFとiTextSharpはどちらも、PDFファイルを扱うために使用できるさまざまな機能とツールを提供しています; 次のセクションの焦点は、これらの機能のいくつかをより詳しく見ていき、さまざまなPDF関連のタスクを実行する際に、二つのライブラリがどのように比較されるかを検討することになります。

IronPDF

  • HTML to PDF変換:HTML、CSS、JavaScript、および画像をサポート。
  • PDFファイル操作: ドキュメントを分割してから結合し、既存のPDFドキュメントのフォーマットを変更して編集します。
  • セキュリティ: PDFの暗号化と復号。
  • 編集: 注釈、ブックマーク、アウトラインを追加します。
  • テンプレート: ヘッダー、フッター、ページ番号を適用します。
  • 透かし: 簡単にテキストと画像の透かしをPDFファイルに適用できます。 HTML/CSSを使用してプロセスを完全に制御することを活用してください。
  • PDFスタンピング: IronPDFを使用してPDFドキュメントに画像やテキストをスタンプします。

    IronPDFが提供する豊富な機能の詳細については、以下のリンクをご覧ください。IronPDF機能ページ.

iTextSharp:

  • PDF作成:ゼロからPDFドキュメントを作成することをサポートします。
  • Forms: PDFフォームの作成と編集。
  • デジタル署名: PDF 文書に署名する。
  • 圧縮: PDFファイルサイズを最適化。
  • コンテンツ抽出: PDFからテキストと画像を抽出します。
  • オープンソース: AGPLライセンスのもとで利用可能。
  • カスタマイズ性: 高度なユースケースに対応する高いカスタマイズ性。

IronPDFとiTextSharpのPDF機能の比較

HTMLをPDFに変換

変換HTMLコンテンツをPDFに変換多くのオフィスや職場で行われる非常に簡単な作業です。 以下は、IronPDF と iText がこのプロセスにどのようにアプローチするかを比較するコード例です。

IronPDF

using IronPdf;

// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");

// Advanced Example with HTML Assets
// Load external html assets: images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
using IronPdf;

// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");

// Advanced Example with HTML Assets
// Load external html assets: images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Imports IronPdf

' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True

' Instantiate Renderer
Dim renderer = New ChromePdfRenderer()

' Create a PDF from an HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
pdf.SaveAs("output.pdf")

' Advanced Example with HTML Assets
' Load external html assets: images, CSS and JavaScript.
' An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
VB   C#

**テキストシャープ

using iText.Html2pdf;

static void Main(string[] args)
  {
    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;

static void Main(string[] args)
  {
    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

Shared Sub Main(ByVal args() As String)
	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
VB   C#

HTMLをPDFに変換する際、IronPDFはこのタスクを実行するための簡潔で便利なツールを提供します。 HTMLコンテンツをPDFに変換するためにChromePdfRendererを利用することで、IronPDFはユーザーにピクセルパーフェクトなPDFドキュメントを提供するのに優れています。 ユーザーは、最初の例に示されているように、HTML文字列から直接PDFを作成することができます。また、高度な例で示されているように、オプションの基本パスを使用して画像などの外部アセットを含めることも可能です。 一方、iTextSharp**は、HTMLファイルを変換するためにHtmlConverterを使用しますが、そのプロセスにはより多くの設定が必要です。

PDF ファイルの暗号化

暗号化多くの職場において、PDFドキュメントの暗号化と復号化は非常に重要です。 このタスクを簡単に処理するには、便利に実行できるツールが必要です。 以下のコードでは、iTextSharpとIronPDFがどのようにPDFの暗号化に取り組んでいるかを見ていきます。

IronPDF

using IronPdf;
using System;

// Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;

// Edit file security settings
// The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

// change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
using IronPdf;
using System;

// Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;

// Edit file security settings
// The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

// change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
Imports IronPdf
Imports System

' Open an Encrypted File, alternatively create a new PDF from Html
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")

' Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto"
pdf.MetaData.Keywords = "SEO, Friendly"
pdf.MetaData.ModifiedDate = DateTime.Now

' Edit file security settings
' The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption()
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserFormData = False
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights

' change or set the document encryption password
pdf.Password = "my-password"
pdf.SaveAs("secured.pdf")
VB   C#

**テキストシャープ

using System;
using System.IO;
using System.Text;
using iText.Kernel.Pdf;

public class EncryptPdf
    {
        public static readonly String DEST = "results/sandbox/security/encrypt_pdf.pdf";
        public static readonly String SRC = "../../../resources/pdfs/hello.pdf";

        public static readonly String OWNER_PASSWORD = "World";
        public static readonly String USER_PASSWORD = "Hello";

        public static void Main(String[] args)
        {
            FileInfo file = new FileInfo(DEST);
            file.Directory.Create();

            new EncryptPdf().ManipulatePdf(DEST);
        }

        protected void ManipulatePdf(String dest)
        {
            PdfDocument document = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest,
                new WriterProperties().SetStandardEncryption(
                    Encoding.UTF8.GetBytes(USER_PASSWORD),
                    Encoding.UTF8.GetBytes(OWNER_PASSWORD),
                    EncryptionConstants.ALLOW_PRINTING,
                    EncryptionConstants.ENCRYPTION_AES_128 
 EncryptionConstants.DO_NOT_ENCRYPT_METADATA
                )));
            document.Close();
        }
    }
using System;
using System.IO;
using System.Text;
using iText.Kernel.Pdf;

public class EncryptPdf
    {
        public static readonly String DEST = "results/sandbox/security/encrypt_pdf.pdf";
        public static readonly String SRC = "../../../resources/pdfs/hello.pdf";

        public static readonly String OWNER_PASSWORD = "World";
        public static readonly String USER_PASSWORD = "Hello";

        public static void Main(String[] args)
        {
            FileInfo file = new FileInfo(DEST);
            file.Directory.Create();

            new EncryptPdf().ManipulatePdf(DEST);
        }

        protected void ManipulatePdf(String dest)
        {
            PdfDocument document = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest,
                new WriterProperties().SetStandardEncryption(
                    Encoding.UTF8.GetBytes(USER_PASSWORD),
                    Encoding.UTF8.GetBytes(OWNER_PASSWORD),
                    EncryptionConstants.ALLOW_PRINTING,
                    EncryptionConstants.ENCRYPTION_AES_128 
 EncryptionConstants.DO_NOT_ENCRYPT_METADATA
                )));
            document.Close();
        }
    }
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

IronPDFは、PDFファイルを暗号化するための簡単な方法をユーザーに提供し、メタデータの編集や、ドキュメントを読み取り専用にする、コピーやペーストなどのユーザー操作を制限するなど、セキュリティ設定を調整するなど、プロセスの多くのコントロールをユーザーに提供します。 一方、iTextSharpは、よりきめ細かな制御を提供しますが、暗号化標準や権限の指定など、追加の設定が必要です。

PDFコンテンツを編集

場合によっては、機密情報やプライベート情報を扱う際に、それが必要になることがあります編集するPDFファイルの一部。以下の例は、iTextSharpと比較して、IronPDFを使用してどのようにテキストを再編集できるかを示しています。

IronPDF

using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");

pdf.SaveAs("redacted.pdf");
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");

pdf.SaveAs("redacted.pdf");
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")

' Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are")

pdf.SaveAs("redacted.pdf")
VB   C#

**テキストシャープ

using System;
using System.IO;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;
using iText.Kernel.Colors;

string src = "input.pdf";
string dest = "output_redacted.pdf";

using (PdfReader reader = new PdfReader(src))
            {
                using (PdfWriter writer = new PdfWriter(dest))
                {
                    using (PdfDocument pdfDoc = new PdfDocument(reader, writer))
                    {
                        // Iterate through each page
                        for (int pageNum = 1; pageNum <= pdfDoc.GetNumberOfPages(); pageNum++)
                        {
                            PdfPage page = pdfDoc.GetPage(pageNum);
                            PdfCanvas canvas = new PdfCanvas(page);
                            Rectangle[] rectanglesToRedact = { new Rectangle(100, 100, 200, 50) }; // Example: Define rectangles to redact

                            // Overlay black rectangles to simulate redaction
                            foreach (Rectangle rect in rectanglesToRedact)
                            {
                                canvas.SetFillColor(ColorConstants.BLACK)
                                    .Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight())
                                    .Fill();
                            }
                        }
                    }
                }
using System;
using System.IO;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;
using iText.Kernel.Colors;

string src = "input.pdf";
string dest = "output_redacted.pdf";

using (PdfReader reader = new PdfReader(src))
            {
                using (PdfWriter writer = new PdfWriter(dest))
                {
                    using (PdfDocument pdfDoc = new PdfDocument(reader, writer))
                    {
                        // Iterate through each page
                        for (int pageNum = 1; pageNum <= pdfDoc.GetNumberOfPages(); pageNum++)
                        {
                            PdfPage page = pdfDoc.GetPage(pageNum);
                            PdfCanvas canvas = new PdfCanvas(page);
                            Rectangle[] rectanglesToRedact = { new Rectangle(100, 100, 200, 50) }; // Example: Define rectangles to redact

                            // Overlay black rectangles to simulate redaction
                            foreach (Rectangle rect in rectanglesToRedact)
                            {
                                canvas.SetFillColor(ColorConstants.BLACK)
                                    .Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight())
                                    .Fill();
                            }
                        }
                    }
                }
Imports System
Imports System.IO
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element
Imports iText.Layout.Properties
Imports iText.Kernel.Colors

Private src As String = "input.pdf"
Private dest As String = "output_redacted.pdf"

Using reader As New PdfReader(src)
				Using writer As New PdfWriter(dest)
					Using pdfDoc As New PdfDocument(reader, writer)
						' Iterate through each page
						Dim pageNum As Integer = 1
						Do While pageNum <= pdfDoc.GetNumberOfPages()
							Dim page As PdfPage = pdfDoc.GetPage(pageNum)
							Dim canvas As New PdfCanvas(page)
							Dim rectanglesToRedact() As Rectangle = { New Rectangle(100, 100, 200, 50) } ' Example: Define rectangles to redact

							' Overlay black rectangles to simulate redaction
							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
				End Using
VB   C#

IronPDFの秘匿ツールは簡潔で使いやすく、機密情報を削除するプロセスを合理化するためにほんの数行のコードしか必要としません。 これにより、PDFの赤黒削除タスクの効率が向上し、ユーザーは機密情報や個人情報を安全に保つ簡単な方法が提供されます。

一方、iTextSharpには冗長化機能が組み込まれていないため、冗長化したいコンテンツの上に手動で黒い四角形を描く必要があります。 しかし、このアプローチでは、矩形の下のテキストにアクセス可能なままにしておくことができるため、ユーザーは隠されたデータをコピーして貼り付けることができます。

PDFドキュメントの署名

できることサインPDFファイルのようなデジタル文書を自動化することで、時間を節約できます。 以下のコードスニペットは、IronPDFiTextSharpがデジタル署名をどのように扱うかを比較したものです。

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")
VB   C#

**テキストシャープ

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
VB   C#

PDFファイルにデジタル署名を適用する際、IronPDFはこのプロセスを完了するための簡潔でありながら強力なツールを提供します。 そのシンプルさのおかげで、署名のニーズに実装する開発者の時間を節約しながら、プロセスを迅速に行うことができます。 これとは対照的に、iTextSharpはより多くのセットアップを必要とし、デジタル署名を処理するための追加ステップを含むため、より複雑ですが、上級ユーザーにとってはより柔軟な可能性があります。

PDFドキュメントにウォーターマークを適用する

追加とパーソナライズする機能透かしPDFに関するソフトウェアを使用することは、機密性の保持、著作権保護、ブランド管理、その他の機密情報に関わるタスクに大いに役立ちます。 以下はIronPDFとiTextSharpがどのように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")
VB   C#

**テキストシャープ

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();

            // Creating a dictionary that maps resource names to graphics state parameter dictionaries
            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();

            // Creating a dictionary that maps resource names to graphics state parameter dictionaries
            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()

			' Creating a dictionary that maps resource names to graphics state parameter dictionaries
			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
VB   C#

IronPDF の使いやすく直感的なAPIは、ユーザーがカスタム透かしを迅速にPDFファイルに適用できるようにしながら、プロセス全体を完全に制御することを可能にします。 HTML/CSSの使用により、カスタマイズのコントロールを失わずにプロセスをさらに簡素化します。 iTextSharpのPDFに透かしを追加するアプローチでは、タスクを実行するために手作業が必要になり、プロセスが遅くなる可能性があります。

PDFに画像とテキストをスタンプする

PDFページを必要とする瞬間がありますスタンプ付きコンテンツとともに、PDFファイルに透かしを適用する必要がある場合のように。 IronPdfiTextSharp**の比較を見てみましょう:

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")
VB   C#

**テキストシャープ

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));

    var document = new Document(pdfDoc);
    ...
}
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));

    var document = new Document(pdfDoc);
    ...
}
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 document As New Document(pdfDoc)
	'...
End Sub
VB   C#

コードをざっと見るだけで、IronPDFが一般的なエンドユーザーの要件に基づいた実用的なものであることがわかります。

iTextは、オブジェクト、形状、およびテキストをページに追加する描画APIに焦点を当てた低レベルのライブラリです。

iTextSharp.dllは、主にプログラムモデルを使用してPDFをレンダリングします。 iTextSharp PDFライブラリを使用する際、PDFの各テキスト、グラフィック、テーブル、またはラインはPDF上に「プロット」または描画されます。 APIは低レベルに見え、PDFドキュメント標準に焦点を当てています。 このモデルは精度を可能にしますが、開発者がPDFの動作について少し学ぶ必要があるかもしれません。 既存のデザインスタイルやウェブアセットを厳密に一致させるには、何度かの反復と読解が必要になることがあります。iTextSharp ドキュメント. その遺産を守り続け、メソドロジーとプログラムインターフェースには独特のJava風味があります。

対照的に、IronPDFは完全に埋め込まれたウェブブラウザレンダラーを使用してHTMLをPDFに変換する. 短文に従う(1行および2行) HTMLからPDFへの変換のためのC#コード例開発者は、既存または新規のHTML、画像、およびCSSからPDFを生成することができます。 これにより、開発者は既存のウェブ資産と密接に連携し、プロジェクト中にデザイナーと並行して作業することができます。 iTextにはC# .NET用のHTML to PDF機能が含まれていますが、それがライブラリの主要な機能ではないようです。

以下に、IronPDF と iTextSharp が開発者の目標達成を支援する方法についての詳細な比較を示します。

ライセンシング

ライセンスオプションも開発者プロジェクトにおける重要な要素です。 iTextSharpはAGPLライセンスの下でオープンソースです。 iTextSharpを含むアプリケーションの一部を使用する人は、AGLPのもとでライセンスされている場合、(会社のネットワークやインターネットを介してでも)アプリの完全なソースコードの全コピーを受け取る権利があるかもしれません。 これは学術作業に最適です。 商業アプリケーションでiTextSharpを使用したい場合は、iTextに連絡するのが最善の方法です。iTextの商業利用の価格について見積もりを依頼してください。.

IronPDFは開発用に無料そしてその後に商用展開のためにライセンスされている公開された合理的な価格で、$749から開始します。

IronPDF と iTextSharp

これが2つのライブラリの比較です:

IronPDF iTextSharp
内蔵ウェブブラウザを使用してHTMLをPDFに変換 PDFHTMLアドオンによる基本的なHTMLからPDFへの変換
レンダリングのフォーカス:埋め込みWebブラウザー レンダリングフォーカス: プログラムによる描画モデル
IronPDFには公表された価格の明確なライセンスがあります。 AGPL!商用利用の価格は公開されていません。
簡単にコード化できる .NET ファーストデザイン Java APIに基づく
学術課題やコースワークには適していません。 学術課題および研究に最適です。

主な違い

IronPDFを使用してHTMLからPDFを生成する

IronPDFは、.NETおよび.NET Coreの開発者が、.NET Coreと.NET Framework用のC#、F#、VB.NETでPDFコンテンツを簡単に生成、結合、分割、編集、抽出できるようにします。HTML、ASPX、CSS、JS、および画像ファイルからPDFを作成する。.

それは、HTMLをPDFに変換するために完全に組み込まれたウェブブラウザを利用します。 これは開発者がHTML、画像、CSSからPDFを生成し、既存のWebアセットと密接に連携しながら、プロジェクト中にデザイナーと並行して作業することを可能にします。

2. IronPDFの機能

IronPDFは、開発者の生産性に本当に重点を置いています。 このライブラリは、多くの一般的な複雑なPDFコードのタスクを、テキストや画像の抽出、PDFへの署名、新しいHTMLによるPDFの編集などの便利なC#メソッドに簡略化します。これにより、開発者は最高の結果を得る方法を理解するためにPDFドキュメント標準を学ぶ必要がありません。

  • HTML、画像、ASPXファイルからPDFドキュメントを生成する
  • PDFテキストの読み取り
  • PDFからデータと画像を抽出する
  • PDF文書の結合
  • PDF分割
  • PDFの操作

    . iTextSharp ドキュメント機能

    についてiTextSharp.dllは主にプログラム的なモデルを使用してPDFをレンダリングし、PDF標準に忠実で強力な高機能PDF操作APIを備えています。

  • AGLP 厳格なオープンソースライセンス
  • プログラムによる描画モデル
  • PDFの編集と読み取り
  • PDF 操作における堅固な機能
  • Javaライブラリに基づいて

    両方のライブラリを使用して例のプロジェクトを作成することで比較してみましょう。


    例プロジェクト

    ASP.NETプロジェクトの作成

    次の手順を使用してASP.NETウェブサイトを作成します:

  1. Visual Studio を開く

  2. ファイル > 新しいプロジェクトをクリック

  3. プロジェクト タイプのリストボックスで、Visual C# の下にある Web を選択します。

  4. ASP.NET Web アプリケーションを選択
    New Project related to 2. IronPDFの機能

    図1 申し訳ありませんが、翻訳するための具体的なコンテンツが提供されていないようです。翻訳したいテキストを提供してください。 新しいプロジェクト

    • 「OK」をクリック
    • 次の画面で、図2に示すように「Web Forms」を選択してください。
      Web Form related to 2. IronPDFの機能

      図2 申し訳ありませんが、翻訳するための具体的なコンテンツが提供されていないようです。翻訳したいテキストを提供してください。 Web Forms (ウェブフォーム)

  • 「OK」をクリック

    これで作業に取り掛かることができます。 IronPDFをインストールしましょう。


    始めましょう

3. IronPDFライブラリのインストール

IronPDFを利用するには、まずインストールする必要があります。(無料). 以下の2つのオプションがあります:

  • NuGet (ニューゲット)
  • ライブラリをダウンロード

    詳しく見てみましょう。

3.1. NuGet を使用してインストール

IronPDF NuGetパッケージをインストールするには、3つの方法があります:

  1. ビジュアルスタジオ

  2. 開発者コマンドプロンプト

  3. NuGetパッケージを直接ダウンロード

    一つずつやりましょう。

    3.2. Visual Studio

Visual Studioは、Microsoftによって開発された統合開発環境(IDE)です。IronPDF for .NET、IronOCR for .NET、IronXL for .NET、IronBarcode for .NET、IronQR for .NET、IronZIP for .NET、IronWord for .NET、IronPrint for .NET、IronWebScraper for .NETを含むIron Softwareの製品を使用する開発者にとって理想的なツールです。Visual Studioは、デザイン、コードの記述、デバッグ、ビルド、デプロイなどのソフトウェア開発プロセスの全てのフェーズをサポートします。

Visual Studioは、プロジェクトにNuGetパッケージをインストールするためのNuGetパッケージマネージャーを提供します。 プロジェクトメニューからアクセスするか、ソリューションエクスプローラーでプロジェクトを右クリックしてアクセスできます。 以下の図3および図4にこれらのオプションを示します。

Project Menu related to 3.1. NuGet を使用してインストール

図3 申し訳ありませんが、翻訳するための具体的なコンテンツが提供されていないようです。翻訳したいテキストを提供してください。 プロジェクトメニュー

Solution Explorer related to 3.1. NuGet を使用してインストール

図4 申し訳ありませんが、翻訳するための具体的なコンテンツが提供されていないようです。翻訳したいテキストを提供してください。 ソリューションエクスプローラーを右クリック

オプションのいずれかから「Manage NuGet Packages(NuGetパッケージの管理)」をクリックした後、「IronPDF」パッケージを参照し、図5に示すようにインストールします。

Install Ironpdf Nuget Package related to 3.1. NuGet を使用してインストール

図 5 申し訳ありませんが、翻訳するための具体的なコンテンツが提供されていないようです。翻訳したいテキストを提供してください。 IronPDF NuGetパッケージをインストールする

3.3. Developer Command Prompt

開発者向けコマンドプロンプト

次の手順は、開発者コマンドプロンプトを開き、IronPDF NuGet パッケージをインストールします。

  1. デベロッパー コマンド プロンプトを検索してください - 通常はVisual Studioフォルダの下にあります

  2. 以下のコマンドを入力してください:PM > Install-Package IronPdf

  3. Enterキーを押してください

  4. パッケージがインストールされます。

  5. Visual Studioプロジェクトをリロードしてください

3.4. NuGetパッケージを直接ダウンロードする

NuGetパッケージをダウンロードするために:

  1. 以下に移動します。https://www.nuget.org/packages/IronPdf/

  2. パッケージをダウンロードするをクリックしてください

  3. パッケージがダウンロードされた後、ダブルクリックしてください。

  4. Visual Studioプロジェクトをリロードしてください

3.5. .DLLライブラリをダウンロードする

IronPDFをインストールする第2の方法は直接ダウンロード.

Download Ironpdf Library related to 3.5. .DLLライブラリをダウンロードする

図6 申し訳ありませんが、翻訳するための具体的なコンテンツが提供されていないようです。翻訳したいテキストを提供してください。 IronPDFライブラリをダウンロード

次の手順を使用して、プロジェクト内でライブラリを参照してください:

  1. ソリューションエクスプローラーでソリューションを右クリックします

  2. 参照を選択

  3. IronPDF.dllライブラリを参照

  4. 「OK」をクリック

    セットアップが完了したので、iTextSharpのセットアップ後に、IronPDFライブラリの素晴らしい機能を試してみましょう。

    NuGetを使用してiTextSharpをインストールする

    3つの方法がありますiTextSharp NuGetパッケージをインストールします。、それらは次のとおりです:

    • ビジュアルスタジオ
    • 開発者コマンドプロンプト
    • NuGetパッケージを直接ダウンロード

    一つずつやりましょう。

    Visual Studioでは、iTextを検索して次に示す関連パッケージをインストールしてください。

    Itext related to NuGetを使用してiTextSharpをインストールする

    図7 申し訳ありませんが、翻訳するための具体的なコンテンツが提供されていないようです。翻訳したいテキストを提供してください。 iText

    開発者コマンドプロンプトで(前述のように、以下のコマンドを入力してください。)

  • PM > Install-Package itext7

    または、ダウンロードiText 7直接彼らのウェブサイトから。

    必要なプロジェクトを作成したので、これら二つのライブラリをコードで比較してみましょう。


    コードを比較する

既存のURLからPDFを作成する

以下のコードはウェブページをダウンロードし、PDFドキュメントに変換します。

4.1. IronPDFを使用したウェブサイトからPDFの生成

以下のコードは、IronPDFを使用してWebサイトのアドレスから直接PDFドキュメントを作成します。 カスタムヘッダーとフッターも含まれています。

/**
IronPDF URL to PDF
anchor-ironpdf-website-to-pdf
**/
private void ExistingWebURL()
{
    // Create a PDF from any existing web page
    var Renderer = new IronPdf.ChromePdfRenderer();

    // Create a PDF from an existing HTML
    Renderer.RenderingOptions.MarginTop = 50;  //millimetres
    Renderer.RenderingOptions.MarginBottom = 50;
    Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    Renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
    {
        CenterText = "{pdf-title}",
        DrawDividerLine = true,
        FontSize = 16
    };
    Renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
    {
        LeftText = "{date} {time}",
        RightText = "Page {page} of {total-pages}",
        DrawDividerLine = true,
        FontSize = 14
    };

    Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

    Renderer.RenderingOptions.EnableJavaScript = true;
    Renderer.RenderingOptions.RenderDelay = 500; //milliseconds

    using var PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");

    PDF.SaveAs("wikipedia.pdf");
}
/**
IronPDF URL to PDF
anchor-ironpdf-website-to-pdf
**/
private void ExistingWebURL()
{
    // Create a PDF from any existing web page
    var Renderer = new IronPdf.ChromePdfRenderer();

    // Create a PDF from an existing HTML
    Renderer.RenderingOptions.MarginTop = 50;  //millimetres
    Renderer.RenderingOptions.MarginBottom = 50;
    Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    Renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
    {
        CenterText = "{pdf-title}",
        DrawDividerLine = true,
        FontSize = 16
    };
    Renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
    {
        LeftText = "{date} {time}",
        RightText = "Page {page} of {total-pages}",
        DrawDividerLine = true,
        FontSize = 14
    };

    Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

    Renderer.RenderingOptions.EnableJavaScript = true;
    Renderer.RenderingOptions.RenderDelay = 500; //milliseconds

    using var PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");

    PDF.SaveAs("wikipedia.pdf");
}
'''
'''IronPDF URL to PDF
'''anchor-ironpdf-website-to-pdf
'''*
Private Sub ExistingWebURL()
	' Create a PDF from any existing web page
	Dim Renderer = New IronPdf.ChromePdfRenderer()

	' Create a PDF from an existing HTML
	Renderer.RenderingOptions.MarginTop = 50 'millimetres
	Renderer.RenderingOptions.MarginBottom = 50
	Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
	Renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
		.CenterText = "{pdf-title}",
		.DrawDividerLine = True,
		.FontSize = 16
	}
	Renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
		.LeftText = "{date} {time}",
		.RightText = "Page {page} of {total-pages}",
		.DrawDividerLine = True,
		.FontSize = 14
	}

	Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print

	Renderer.RenderingOptions.EnableJavaScript = True
	Renderer.RenderingOptions.RenderDelay = 500 'milliseconds

	Dim PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format")

	PDF.SaveAs("wikipedia.pdf")
End Sub
VB   C#

IronPDF は、PDF にテキストや画像を追加するのに非常に柔軟かつカスタマイズ可能な方法を提供します。 完全に制御することができます。 HTML/CSSに精通している開発者にとって、APIを理解し、扱うのは簡単です。 iTextSharpは、画像とテキストのスタンプツールを使用して、ユーザーがPDFファイルに表示される内容をより制御できるようにしますが、そのプロセスはより手作業になる可能性があります。

DOCXをPDFに変換

時々、PDFをある形式から他の形式に変換しなければならないことがあります。 この場合、私たちは を見ていますDOCXからPDFへの変換そして、IronPDFとiTextSharpがどのようにこのプロセスを処理するのかを比較します。

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")
VB   C#

**テキストシャープ

残念ながら、iTextSharpはDOCXからPDFへの変換機能を内蔵しておらず、開発者はこのタスクをAspose.Wordsのような外部ライブラリに頼らなければなりません。

IronPDFは、開発者にDOCXからPDFへの変換タスクを処理するための簡潔で分かりやすいツールを提供し、外部ライブラリを必要とせずにDOCXファイルをPDF形式に変換することを容易にします。 一方、iTextSharp**は、このタスクを実行するために外部ライブラリに依存しています。

コード例の比較の概要

Itextsharp 1 related to コード例の比較の概要

詳細な例については、こちらをご覧くださいIronPDFの例.

価格とライセンスIronPDF vs. iTextSharp ライブラリ

IronPDFの価格とライセンス

IronPDFライセンスの購入には異なるレベルと追加機能があります。 開発者は、また、購入することができますIron Suiteこれは、Iron Softwareのすべての製品に2つの価格でアクセスできるものです。 ライセンスを購入する準備ができていない場合、IronPDF は無料試用30日間持続する。

  • 永久ライセンス: チームの規模、プロジェクトのニーズ、拠点の数に応じたさまざまな永久ライセンスを提供しています。 各ライセンスタイプにはメールサポートが含まれています。
  • Lite License: このライセンスは$749で、1人の開発者、1つの場所、1つのプロジェクトをサポートします。

    このコードセグメントで、私たちはタイガーウィキペディアを変えました。ウェブページをPDFに変換する両方のライブラリを使用して。

  • Professional License: このライセンスはより大規模なチームに適しており、10人の開発者、10か所の拠点、および10のプロジェクトをサポートします。価格は$2,999です。前のティアと同じ連絡サポートチャンネルを提供しますが、画面共有サポートも提供します。
  • ロイヤリティフリーの再配布: IronPDFのライセンスには、追加料金$1,999でロイヤリティフリーの再配布カバレッジも含まれています。
  • 継続的な製品サポート: IronPDFは、$999/年または一度の購入で$1,999の5年間のカバレッジで、継続的な製品更新、セキュリティ機能のアップグレード、エンジニアリングチームからのサポートへのアクセスを提供します。
  • IronSuite:1,498ドルで、IronPDF、IronOCR、IronWord、IronXL、IronBarcode、IronQR、IronZIP、IronPrint、およびIronWebScraperを含むすべてのIron Software製品にアクセスできます。

    Itextsharp 2 related to IronPDFの価格とライセンス

iTextSharpのライセンス

  • AGPLライセンス: iTextSharpは、AGPLの下で無償で利用可能です。(アフェロ一般公衆利用許諾契約書). このライセンスは、iTextSharpを使用するソフトウェアが再配布される場合、同じライセンスの下でオープンソースであることを要求します。
  • 商用ライセンス: AGPLの条件を満たさないプロジェクトのために、iTextSharpは、プロプライエタリなソフトウェアでの使用を許可する商用ライセンスを提供しています。 このライセンスの価格は、見積もりベースのモデルに基づいており、プロジェクトの用途と範囲によって異なります。

ドキュメントとサポート: IronPDF vs. iText

IronPDF

  • 包括的なドキュメント:提供するすべての機能を網羅した、広範かつユーザーフレンドリーなドキュメント。
  • 24/5 サポート: エンジニアによるサポートが利用可能です。
  • ビデオチュートリアル:ステップバイステップのビデオガイドがYouTubeで利用できます。
  • コミュニティフォーラム: 追加サポートのための積極的なコミュニティ。
  • 定期的な更新: 最新機能とセキュリティパッチを確保するための月次製品アップデート。

    iTextSharp

iTextSharpは、.NET開発者向けのPDFライブラリで、PDFドキュメントの作成、編集、解析を提供します。このオープンソースライブラリは、複雑なレイアウトやフォーマット操作が可能で、多くの機能を提供しています。

特徴:

  • PDFの生成と編集
  • テキスト、画像、グラフ、アノテーションの追加
  • フォームフィールドの操作
  • PDFセキュリティ(暗号化、デジタル署名)のサポート

このライブラリは、高度なPDF操作が必要な多くのアプリケーションに利用されています。

  • ドキュメント: iTextSharpは、その主要な機能をカバーする詳細なドキュメントを提供しています。
  • 例題とチュートリアル: さまざまなチュートリアルとコード例が提供され、開発者が使い始めるのに役立ちます。
  • GitHub:開発者はiTextSharp GitHubリポジトリに問題やバグを提出し、iTextSharpコミュニティと交流してサポートを受けることができます。
  • アップデート: 機能を改善し、バグに対処するための定期的なアップデートが提供されます。

    IronPDF のドキュメントとサポートの詳細については、訪問してくださいIronPDF ドキュメントおよびIron Software YouTubeチャンネル.

結論

どちらもIronPDFとiTextSharpは、.NETプロジェクトでのPDF操作において堅実な選択肢です。 IronPDFは、直感的なプラットフォーム統合やHTMLからPDFへの変換、高度なセキュリティオプションなどの機能で際立っています。 iTextSharpは、オープンソースのiTextライブラリを基に作られており、AGPLおよび商用ライセンスの下で強力で柔軟なツールセットを提供します。そのため、オープンソースの柔軟性の恩恵を受けるプロジェクトや、厳格なライセンス遵守が必要なプロジェクトに最適です。

適切なツールを選ぶには、プロジェクトのライセンス要件、技術サポートの必要性、および特定の機能の要求に基づいて判断する必要があります。 IronPDF のシンプルさと包括的なサポートを好むか、iTextSharp のオープンソースの堅牢さを好むかにかかわらず、どちらのライブラリも開発者にアプリケーション内のPDFワークフローを強化するための十分なリソースを提供します。


今日から無料トライアルでIronPDFをあなたのプロジェクトで使い始めましょう。

最初のステップ:
green arrow pointer

< 以前
IronPDFとEvoPdfの比較
次へ >
HTMLからPDFへのSyncfusion PDFビューア比較