ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
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プロジェクトに最適なのはどれですか? この記事の目的は、読者が適切で情報に基づいた決定を下せるように支援することです。
HtmlConverter.ConvertToPDF
HTMLファイルをPDFファイルに変換する方法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とは:
実務に取り組むプログラマーにとって最適な選択肢です。
iText (アイテックス) (iTextSharp)です:
無料および学術プロジェクトに最適な選択
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+)
IronPDFとiTextSharpはどちらも、PDFファイルを扱うために使用できるさまざまな機能とツールを提供しています; 次のセクションの焦点は、これらの機能のいくつかをより詳しく見ていき、さまざまなPDF関連のタスクを実行する際に、二つのライブラリがどのように比較されるかを検討することになります。
PDFスタンピング: IronPDFを使用してPDFドキュメントに画像やテキストをスタンプします。
IronPDFが提供する豊富な機能の詳細については、以下のリンクをご覧ください。IronPDF機能ページ.
変換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")
**テキストシャープ
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
HTMLをPDFに変換する際、IronPDFはこのタスクを実行するための簡潔で便利なツールを提供します。 HTMLコンテンツをPDFに変換するためにChromePdfRendererを利用することで、IronPDFはユーザーにピクセルパーフェクトなPDFドキュメントを提供するのに優れています。 ユーザーは、最初の例に示されているように、HTML文字列から直接PDFを作成することができます。また、高度な例で示されているように、オプションの基本パスを使用して画像などの外部アセットを含めることも可能です。 一方、iTextSharp**は、HTMLファイルを変換するためにHtmlConverterを使用しますが、そのプロセスにはより多くの設定が必要です。
暗号化多くの職場において、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")
**テキストシャープ
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
IronPDFは、PDFファイルを暗号化するための簡単な方法をユーザーに提供し、メタデータの編集や、ドキュメントを読み取り専用にする、コピーやペーストなどのユーザー操作を制限するなど、セキュリティ設定を調整するなど、プロセスの多くのコントロールをユーザーに提供します。 一方、iTextSharpは、よりきめ細かな制御を提供しますが、暗号化標準や権限の指定など、追加の設定が必要です。
場合によっては、機密情報やプライベート情報を扱う際に、それが必要になることがあります編集する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")
**テキストシャープ
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
IronPDFの秘匿ツールは簡潔で使いやすく、機密情報を削除するプロセスを合理化するためにほんの数行のコードしか必要としません。 これにより、PDFの赤黒削除タスクの効率が向上し、ユーザーは機密情報や個人情報を安全に保つ簡単な方法が提供されます。
一方、iTextSharpには冗長化機能が組み込まれていないため、冗長化したいコンテンツの上に手動で黒い四角形を描く必要があります。 しかし、このアプローチでは、矩形の下のテキストにアクセス可能なままにしておくことができるため、ユーザーは隠されたデータをコピーして貼り付けることができます。
できることサインPDFファイルのようなデジタル文書を自動化することで、時間を節約できます。 以下のコードスニペットは、IronPDFとiTextSharpがデジタル署名をどのように扱うかを比較したものです。
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")
**テキストシャープ
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
PDFファイルにデジタル署名を適用する際、IronPDFはこのプロセスを完了するための簡潔でありながら強力なツールを提供します。 そのシンプルさのおかげで、署名のニーズに実装する開発者の時間を節約しながら、プロセスを迅速に行うことができます。 これとは対照的に、iTextSharpはより多くのセットアップを必要とし、デジタル署名を処理するための追加ステップを含むため、より複雑ですが、上級ユーザーにとってはより柔軟な可能性があります。
追加とパーソナライズする機能透かし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")
**テキストシャープ
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
IronPDF の使いやすく直感的なAPIは、ユーザーがカスタム透かしを迅速にPDFファイルに適用できるようにしながら、プロセス全体を完全に制御することを可能にします。 HTML/CSSの使用により、カスタマイズのコントロールを失わずにプロセスをさらに簡素化します。 iTextSharpのPDFに透かしを追加するアプローチでは、タスクを実行するために手作業が必要になり、プロセスが遅くなる可能性があります。
PDFページを必要とする瞬間がありますスタンプ付きコンテンツとともに、PDFファイルに透かしを適用する必要がある場合のように。 IronPdfとiTextSharp**の比較を見てみましょう:
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")
**テキストシャープ
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
コードをざっと見るだけで、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から開始します。
これが2つのライブラリの比較です:
内蔵ウェブブラウザを使用してHTMLをPDFに変換 | PDFHTMLアドオンによる基本的なHTMLからPDFへの変換 |
レンダリングのフォーカス:埋め込みWebブラウザー | レンダリングフォーカス: プログラムによる描画モデル |
IronPDFには公表された価格の明確なライセンスがあります。 | AGPL!商用利用の価格は公開されていません。 |
簡単にコード化できる .NET ファーストデザイン | Java APIに基づく |
学術課題やコースワークには適していません。 | 学術課題および研究に最適です。 |
IronPDFは、.NETおよび.NET Coreの開発者が、.NET Coreと.NET Framework用のC#、F#、VB.NETでPDFコンテンツを簡単に生成、結合、分割、編集、抽出できるようにします。HTML、ASPX、CSS、JS、および画像ファイルからPDFを作成する。.
それは、HTMLをPDFに変換するために完全に組み込まれたウェブブラウザを利用します。 これは開発者がHTML、画像、CSSからPDFを生成し、既存のWebアセットと密接に連携しながら、プロジェクト中にデザイナーと並行して作業することを可能にします。
IronPDFは、開発者の生産性に本当に重点を置いています。 このライブラリは、多くの一般的な複雑なPDFコードのタスクを、テキストや画像の抽出、PDFへの署名、新しいHTMLによるPDFの編集などの便利なC#メソッドに簡略化します。これにより、開発者は最高の結果を得る方法を理解するためにPDFドキュメント標準を学ぶ必要がありません。
についてiTextSharp.dllは主にプログラム的なモデルを使用してPDFをレンダリングし、PDF標準に忠実で強力な高機能PDF操作APIを備えています。
Javaライブラリに基づいて
両方のライブラリを使用して例のプロジェクトを作成することで比較してみましょう。
次の手順を使用してASP.NETウェブサイトを作成します:
Visual Studio を開く
ファイル > 新しいプロジェクトをクリック
プロジェクト タイプのリストボックスで、Visual C# の下にある Web を選択します。
「OK」をクリック
これで作業に取り掛かることができます。 IronPDFをインストールしましょう。
IronPDFを利用するには、まずインストールする必要があります。(無料). 以下の2つのオプションがあります:
ライブラリをダウンロード
詳しく見てみましょう。
IronPDF NuGetパッケージをインストールするには、3つの方法があります:
ビジュアルスタジオ
開発者コマンドプロンプト
NuGetパッケージを直接ダウンロード
一つずつやりましょう。
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にこれらのオプションを示します。
オプションのいずれかから「Manage NuGet Packages(NuGetパッケージの管理)」をクリックした後、「IronPDF」パッケージを参照し、図5に示すようにインストールします。
開発者向けコマンドプロンプト
次の手順は、開発者コマンドプロンプトを開き、IronPDF NuGet パッケージをインストールします。
デベロッパー コマンド プロンプトを検索してください - 通常はVisual Studioフォルダの下にあります
以下のコマンドを入力してください:PM > Install-Package IronPdf
Enterキーを押してください
パッケージがインストールされます。
NuGetパッケージをダウンロードするために:
パッケージをダウンロードするをクリックしてください
パッケージがダウンロードされた後、ダブルクリックしてください。
IronPDFをインストールする第2の方法は直接ダウンロード.
次の手順を使用して、プロジェクト内でライブラリを参照してください:
ソリューションエクスプローラーでソリューションを右クリックします
参照を選択
IronPDF.dllライブラリを参照
「OK」をクリック
セットアップが完了したので、iTextSharpのセットアップ後に、IronPDFライブラリの素晴らしい機能を試してみましょう。
3つの方法がありますiTextSharp NuGetパッケージをインストールします。、それらは次のとおりです:
一つずつやりましょう。
Visual Studioでは、iTextを検索して次に示す関連パッケージをインストールしてください。
開発者コマンドプロンプトで(前述のように、以下のコマンドを入力してください。)
PM > Install-Package itext7
または、ダウンロードiText 7直接彼らのウェブサイトから。
必要なプロジェクトを作成したので、これら二つのライブラリをコードで比較してみましょう。
以下のコードはウェブページをダウンロードし、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
IronPDF は、PDF にテキストや画像を追加するのに非常に柔軟かつカスタマイズ可能な方法を提供します。 完全に制御することができます。 HTML/CSSに精通している開発者にとって、APIを理解し、扱うのは簡単です。 iTextSharpは、画像とテキストのスタンプツールを使用して、ユーザーが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")
**テキストシャープ
残念ながら、iTextSharpはDOCXからPDFへの変換機能を内蔵しておらず、開発者はこのタスクをAspose.Wordsのような外部ライブラリに頼らなければなりません。
IronPDFは、開発者にDOCXからPDFへの変換タスクを処理するための簡潔で分かりやすいツールを提供し、外部ライブラリを必要とせずにDOCXファイルをPDF形式に変換することを容易にします。 一方、iTextSharp**は、このタスクを実行するために外部ライブラリに依存しています。
詳細な例については、こちらをご覧くださいIronPDFの例.
IronPDFライセンスの購入には異なるレベルと追加機能があります。 開発者は、また、購入することができますIron Suiteこれは、Iron Softwareのすべての製品に2つの価格でアクセスできるものです。 ライセンスを購入する準備ができていない場合、IronPDF は無料試用30日間持続する。
Lite License: このライセンスは$749で、1人の開発者、1つの場所、1つのプロジェクトをサポートします。
このコードセグメントで、私たちはタイガーウィキペディアを変えました。ウェブページをPDFに変換する両方のライブラリを使用して。
IronSuite:1,498ドルで、IronPDF、IronOCR、IronWord、IronXL、IronBarcode、IronQR、IronZIP、IronPrint、およびIronWebScraperを含むすべてのIron Software製品にアクセスできます。
iTextSharpは、.NET開発者向けのPDFライブラリで、PDFドキュメントの作成、編集、解析を提供します。このオープンソースライブラリは、複雑なレイアウトやフォーマット操作が可能で、多くの機能を提供しています。
特徴:
このライブラリは、高度なPDF操作が必要な多くのアプリケーションに利用されています。
アップデート: 機能を改善し、バグに対処するための定期的なアップデートが提供されます。
IronPDF のドキュメントとサポートの詳細については、訪問してくださいIronPDF ドキュメントおよびIron Software YouTubeチャンネル.
どちらもIronPDFとiTextSharpは、.NETプロジェクトでのPDF操作において堅実な選択肢です。 IronPDFは、直感的なプラットフォーム統合やHTMLからPDFへの変換、高度なセキュリティオプションなどの機能で際立っています。 iTextSharpは、オープンソースのiTextライブラリを基に作られており、AGPLおよび商用ライセンスの下で強力で柔軟なツールセットを提供します。そのため、オープンソースの柔軟性の恩恵を受けるプロジェクトや、厳格なライセンス遵守が必要なプロジェクトに最適です。
適切なツールを選ぶには、プロジェクトのライセンス要件、技術サポートの必要性、および特定の機能の要求に基づいて判断する必要があります。 IronPDF のシンプルさと包括的なサポートを好むか、iTextSharp のオープンソースの堅牢さを好むかにかかわらず、どちらのライブラリも開発者にアプリケーション内のPDFワークフローを強化するための十分なリソースを提供します。
今日から無料トライアルでIronPDFをあなたのプロジェクトで使い始めましょう。
9つの .NET API製品 オフィス文書用