IronPDF vs GemBox.Pdf: HTML to PDF Dönüşümü için Tam .NET PDF Kütüphanesi Karşılaştırma Rehberi
Full Comparison
Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.
IronPDF, Chromium tabanlı HTML işleme motoruyla üstünlük sağlar; tam CSS3 ve JavaScript desteğiyle birlikte yerleşik DOCX dönüşümünü de sunar. Buna karşılık, iTextPdf, AGPL veya ticari lisanslamayla gelişmiş kurumsal özellikler sunar, ancak modern web standartları ve belge dönüştürme için harici bağımlılıklar gerektirir.
PDF ile çalışan geliştiriciler için, güvenilir bir PDF oluşturma ve değiştirme kütüphanesine sahip olmak önemlidir. .NET ekosisteminde, iki popüler PDF kütüphanesi öne çıkıyor—IronPDF ve iTextPdf—her biri PDF belgelerini oluşturmak, düzenlemek ve yönetmek için etkili araçlar sunuyor. Bu makale, özellik yetenekleri, dokümantasyon kalitesi ve fiyatlandırma politikalarına göre bu kütüphanelerin detaylı bir karşılaştırmasını sunmaktadır.
IronPDF ve iTextPdf Nedir?
IronPDF, PDF Geliştirmeyi Nasıl Basitleştirir?
IronPDF, PDF yönetimi için güvenilir bir .NET kütüphanesidir ve çeşitli .NET ortamlarıyla (Core 8, 7, 6, Framework ve daha fazlası) uyumludur. Bu, özellik seti dahil olmak üzere, HTML'den PDF'ye dönüştürme, PDF birleştirme, şifreleme ve dijital imzalar sunar. IronPDF'nin dokümantasyonu basittir ve kullanıcılar güvenilir teknik desteğe erişme imkanına sahiptir. Geliştiriciler sıklıkla yaygın sorunlara Stack Overflow tartışmaları ve diğer kaynak kodu paylaşım platformları aracılığıyla çözümler bulurlar. Kütüphane, ayrıntılı uygulama rehberliği için API referansları sağlar ve NuGet paketleri aracılığıyla ileri seviye kurulum yöntemlerini destekler. Hızlı bir uygulama için, başlangıçta hızlıca başlamak adına hızlı başlangıç kılavuzunu ve kurulum genel bakışını inceleyin.
iTextPdf'i Kurumsal Uygulamalar İçin Uygun Kılan Nedir?
iTextPdf, Java ve .NET (C#) için ileri düzey bir PDF kütüphanesidir ve kurumsal düzeyde belge işleme üzerinde yoğunlaşır. Hem AGPL hem de ticari lisanslar altında sunulan bu yazılım, çeşitli proje gereksinimleri için esneklik sağlar. iTextPdf, belge şifreleme, dijital imzalama ve form oluşturma gibi karmaşık PDF görevleri için ideal hale getiren yüksek derecede özelleştirilebilir. Kütüphane, kapsamlı PDF işleme yetenekleri ve arşivleme amaçları için PDF/A standartları ile uyumluluk gerektiren enterprise ortamlarında bir temel olmuştur. 508. Bölüm erişilebilirlik uyumluluğu gerektiren kuruluşlar, genellikle evrensel erişilebilirlik standartlarını destekleyen kurumsal düzeyde çözümleri tercih ederler.
IronPDF ve iTextPdf Hangi Platformları Destekler?
Hem IronPDF hem de iTextPdf, .NET içindeki çeşitli uygulama ihtiyaçları için onları çok yönlü hale getiren çapraz platform işlevselliğini destekler. Her bir kütüphanenin uyumluluğunun dökümü.
.NET Sürümleri: .NET Core (8, 7, 6, 5, 3.1+), .NET Standard (2.0+) ve .NET Framework (4.6.2+) ile uyumludur.
- Uygulama Ortamları: Windows, Linux, Mac, Docker, Azure ve AWS ortamlarında sorunsuz çalışır. Desteklenen IDE'ler: Microsoft Visual Studio ve JetBrains Rider & ReSharper ile iyi çalışır. İşletim Sistemi & İşlemciler: Windows, Mac, Linux, x64, x86, ARM destekler.
.NET Sürümleri: .NET Core 8, 7, 6, 5, 3.1+, .NET Standard 2.0+, .NET Framework 4.6.2+ ile uyumlu
- Uygulama Ortamları: Windows, Linux, Mac, Docker, Azure ve AWS üzerinde çalışır
- Desteklenen IDE'ler: Microsoft Visual Studio ve
JetBrainsRider &ReSharperİşletim Sistemi & İşlemciler: Windows, Mac, Linux, x64, x86, ARM -
Mobil Platformlar: MAUI aracılığıyla Android desteği Kapsayıcı Desteği: Ölçeklenebilir mimariler için uzaktan kapsayıcı dağıtımı
- .NET Sürümleri: .NET Core (2.x, 3.x), .NET Framework (4.6.1+) ve .NET 5+ destekler.
- Uygulama Ortamları: Windows, macOS, Linux ve Docker ile uyumludur.
iTextPdf Nereye Dağıtılabilir?
- .NET Sürümleri: .NET Core 2.x, 3.x, .NET Framework 4.6.1+, .NET 5+ destekler Uygulama Ortamları: Windows, macOS, Linux, Docker ile uyumlu Kurumsal Dağıtımlar: AGPL veya ticari lisanslama ile sunucu ortamları için optimize edilmiştir
IronPDF'nin iTextPdf'e Karşı Temel Özellikleri Nelerdir?
Aşağıda, her bir kütüphanenin sağladığı anahtar özelliklerin detaylı bir karşılaştırması bulunmaktadır.
IronPDF Ne Tür Yetkinlikler Sunar?
– HTML'den PDF'ye Dönüşüm: HTML, CSS, JavaScript ve resimleri destekler. PDF Manipülasyonu: PDF belgelerini böl, birleştir ve düzenle. Güvenlik: PDF şifreleme ve şifre çözme yetenekleri.
- Düzenleme: Açıklamalar, yer işaretleri ve taslakları sağlar.
- Şablonlar: Başlıklar, altbilgiler ve sayfa numaraları uygulayın.
- Filigran: HTML/CSS kullanarak metin ve resim filigranlarını destekler.
- PDF Damgalama: PDF dosyalarına resim ve metin damgaları ekleyin.
Daha fazla bilgi için IronPDF'nin özellikleri hakkında, IronPDF özellikler sayfasını ziyaret ediniz. Kütüphane ayrıca çeşitli kaynaklardan PDF oluşturmayı, formatlar arasında PDF dönüştürmeyi ve profesyonel araçlarla PDF düzenlemeyi destekler.
iTextPdf Hangi Enterprise Özelliklerini Sağlıyor?
- PDF Oluşturma: Sıfırdan PDF belgeleri oluşturmayı destekler.
- Forms: PDF formlarının oluşturulması ve düzenlenmesini sunar.
- Dijital İmzalar: PDF belgelerini imzalayın.
- Sıkıştırma: PDF dosya boyutlarını optimize eder.
- İçerik Çıkarma: PDF'lerden metin ve görüntüleri çıkarır.
- Özelleştirilebilirlik: Karmaşık projeler için yüksek özelleştirebilirlik.
Her İki Kütüphane HTML'den PDF'e Dönüştürmeyi Nasıl Ele Alır?
Her iki kütüphane de HTML'den PDF'e dönüştürmeyi destekler, ancak yaklaşım ve kullanım kolaylığı açısından farklılık gösterirler. IronPDF, Chromium render motorunu piksel mükemmelliğinde doğruluk için kullanır, iTextPdf ise daha sınırlı CSS desteğine sahip pdfHTML eklentisini kullanır. IronPDF, giriş kaynağı olarak HTML dosyalarını, HTML dizgilerini ve URL'leri destekler, tam JavaScript işleme dahil. Karmaşık düzenler için, IronPDF CSS ekran ve yazdırma medya türlerini işler ve hassas kontrol için özel kenar boşluklarını destekler.
IronPDF
using IronPdf;
// Instantiate the renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");
// Advanced example with external assets
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
// Render with custom options
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
var customPdf = renderer.RenderHtmlAsPdf("<h1>Custom Settings</h1>");
customPdf.SaveAs("custom-settings.pdf");
using IronPdf;
// Instantiate the renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");
// Advanced example with external assets
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
// Render with custom options
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
var customPdf = renderer.RenderHtmlAsPdf("<h1>Custom Settings</h1>");
customPdf.SaveAs("custom-settings.pdf");
Imports IronPdf
' Instantiate the renderer
Dim renderer As New ChromePdfRenderer()
' Create a PDF from an HTML string
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
pdf.SaveAs("output.pdf")
' Advanced example with external assets
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
' Render with custom options
renderer.RenderingOptions.MarginTop = 50
renderer.RenderingOptions.MarginBottom = 50
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
Dim customPdf = renderer.RenderHtmlAsPdf("<h1>Custom Settings</h1>")
customPdf.SaveAs("custom-settings.pdf")
iTextPdf
using iText.Html2pdf;
using System.IO;
public class HtmlToPdf
{
public static void ConvertHtmlToPdf()
{
using (FileStream htmlSource = File.Open("input.html", FileMode.Open))
using (FileStream pdfDest = File.Open("output.pdf", FileMode.Create))
{
ConverterProperties converterProperties = new ConverterProperties();
HtmlConverter.ConvertToPdf(htmlSource, pdfDest, converterProperties);
}
}
}
using iText.Html2pdf;
using System.IO;
public class HtmlToPdf
{
public static void ConvertHtmlToPdf()
{
using (FileStream htmlSource = File.Open("input.html", FileMode.Open))
using (FileStream pdfDest = File.Open("output.pdf", FileMode.Create))
{
ConverterProperties converterProperties = new ConverterProperties();
HtmlConverter.ConvertToPdf(htmlSource, pdfDest, converterProperties);
}
}
}
Imports iText.Html2pdf
Imports System.IO
Public Class HtmlToPdf
Public Shared Sub ConvertHtmlToPdf()
Using htmlSource As FileStream = File.Open("input.html", FileMode.Open)
Using pdfDest As FileStream = File.Open("output.pdf", FileMode.Create)
Dim converterProperties As New ConverterProperties()
HtmlConverter.ConvertToPdf(htmlSource, pdfDest, converterProperties)
End Using
End Using
End Sub
End Class
IronPDF, HTML, CSS ve JavaScript'i destekleyerek HTML'den PDF'e dönüşüm için basit bir yaklaşım sunar. Doğrudan HTML dizelerinden dönüştürür veya isteğe bağlı bir base path ile varlıkları dahil eder. Kütüphane ayrıca karmaşık projeler için HTML ZIP dosyalarını ve iyileştirilmiş render için duyarlı CSS desteği sunar. Dinamik içerik için, IronPDF tam sayfa yüklemesini sağlamak amacıyla JavaScript yürütme ve rendere gecikme seçenekleri sunar. Ekstra render özellikleri arasında görünüm alanı kontrolü ve özel kağıt boyutları bulunur. iTextPdf, daha fazla kurulum gerektirir ve öncelikli olarak dosya tabanlı dönüşüme odaklanır, modern web standartları desteği sınırlıdır.
Hangi Kütüphane Daha İyi PDF Şifreleme Sunar?
Güvenliğin öncelikli olduğu durumlarda şifreleme esastır. İşte her kütüphanenin bunu nasıl ele aldığı. IronPDF, güvenlik özellikleri dahil olmak üzere AES şifreleme ve izin yönetimi sağlar. Kütüphane, potansiyel olarak zararlı içeriği kaldırmak için meta veri yönetimi ve temizleme desteği sunar.
IronPDF
using IronPdf;
// Load an encrypted PDF or create a new one
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
// Set document security settings
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.Password = "my-password";
// Set owner password for administrative access
pdf.SecuritySettings.OwnerPassword = "owner-password";
// Save with encryption
pdf.SaveAs("secured.pdf");
using IronPdf;
// Load an encrypted PDF or create a new one
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
// Set document security settings
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.Password = "my-password";
// Set owner password for administrative access
pdf.SecuritySettings.OwnerPassword = "owner-password";
// Save with encryption
pdf.SaveAs("secured.pdf");
Imports IronPdf
' Load an encrypted PDF or create a new one
Dim pdf = PdfDocument.FromFile("encrypted.pdf", "password")
' Set document security settings
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint
pdf.SecuritySettings.AllowUserFormData = False
pdf.Password = "my-password"
' Set owner password for administrative access
pdf.SecuritySettings.OwnerPassword = "owner-password"
' Save with encryption
pdf.SaveAs("secured.pdf")
iTextPdf
using iText.Kernel.Pdf;
using System.Text;
public class EncryptPdf
{
public static readonly string DEST = "encrypt_pdf.pdf";
public static readonly string OWNER_PASSWORD = "World";
public static readonly string USER_PASSWORD = "Hello";
protected void ManipulatePdf(string dest)
{
PdfDocument document = new PdfDocument(new PdfReader("input.pdf"), new PdfWriter(dest,
new WriterProperties().SetStandardEncryption(
Encoding.UTF8.GetBytes(USER_PASSWORD),
Encoding.UTF8.GetBytes(OWNER_PASSWORD),
EncryptionConstants.ALLOW_PRINTING,
EncryptionConstants.ENCRYPTION_AES_128)));
document.Close();
}
}
using iText.Kernel.Pdf;
using System.Text;
public class EncryptPdf
{
public static readonly string DEST = "encrypt_pdf.pdf";
public static readonly string OWNER_PASSWORD = "World";
public static readonly string USER_PASSWORD = "Hello";
protected void ManipulatePdf(string dest)
{
PdfDocument document = new PdfDocument(new PdfReader("input.pdf"), new PdfWriter(dest,
new WriterProperties().SetStandardEncryption(
Encoding.UTF8.GetBytes(USER_PASSWORD),
Encoding.UTF8.GetBytes(OWNER_PASSWORD),
EncryptionConstants.ALLOW_PRINTING,
EncryptionConstants.ENCRYPTION_AES_128)));
document.Close();
}
}
Imports iText.Kernel.Pdf
Imports System.Text
Public Class EncryptPdf
Public Shared ReadOnly DEST As String = "encrypt_pdf.pdf"
Public Shared ReadOnly OWNER_PASSWORD As String = "World"
Public Shared ReadOnly USER_PASSWORD As String = "Hello"
Protected Sub ManipulatePdf(ByVal dest As String)
Dim document As New PdfDocument(New PdfReader("input.pdf"), New PdfWriter(dest, (New WriterProperties()).SetStandardEncryption(Encoding.UTF8.GetBytes(USER_PASSWORD), Encoding.UTF8.GetBytes(OWNER_PASSWORD), EncryptionConstants.ALLOW_PRINTING, EncryptionConstants.ENCRYPTION_AES_128)))
document.Close()
End Sub
End Class
IronPDF, basit şifreleme ve belge izinleri üzerinde kontrol sağlar. Kütüphane, güvenlik denetimi için özel günlüğü ve kurumsal dağıtımlar için lisans anahtarı yönetimini destekler. Geliştirilmiş güvenlik için IronPDF, PDF dosyası sürüm kontrolü ve kayıt defteri yapılandırma seçenekleri sunar. iTextPdf, şifreleme standartlarına odaklanarak ayrıntılı kurulum gerektirir. Gelişmiş güvenlik ihtiyaçları için, IronPDF kurumsal gereksinimler için HSM ile dijital imzaları ve güvenli ortamlar için Kerberos kimlik doğrulamasını da destekler.
IronPDF ve iTextPdf İçerik Düzenlemeyi Nasıl Ele Alır?
PDF dosyalarındaki bilgilerin karartılması, gizlilik ve güvenlik için gereklidir. İşte her bir kütüphanenin bu özelliği nasıl desteklediği. IronPDF, potansiyel olarak zararlı içeriği kaldırmak için tam bilgiler gizleme yetenekleri ve PDF temizleme olanağı sunar. Kütüphane ayrıca formları ve açıklamaları statik içeriğe dönüştürmek için PDF düzleştirme sağlar.
IronPDF
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact 'are' from all pages
pdf.RedactTextOnAllPages("are");
// Redact specific text on specific pages
pdf.RedactTextOnPage(0, "confidential");
// Use regular expressions for pattern matching
pdf.RedactTextOnAllPages(@"\b\d{3}-\d{2}-\d{4}\b"); // Redact SSN pattern
pdf.SaveAs("redacted.pdf");
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact 'are' from all pages
pdf.RedactTextOnAllPages("are");
// Redact specific text on specific pages
pdf.RedactTextOnPage(0, "confidential");
// Use regular expressions for pattern matching
pdf.RedactTextOnAllPages(@"\b\d{3}-\d{2}-\d{4}\b"); // Redact SSN pattern
pdf.SaveAs("redacted.pdf");
Imports IronPdf
Dim pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")
' Redact 'are' from all pages
pdf.RedactTextOnAllPages("are")
' Redact specific text on specific pages
pdf.RedactTextOnPage(0, "confidential")
' Use regular expressions for pattern matching
pdf.RedactTextOnAllPages("\b\d{3}-\d{2}-\d{4}\b") ' Redact SSN pattern
pdf.SaveAs("redacted.pdf")
iTextPdf
using iText.Kernel.Pdf;
using iText.Kernel.Colors;
// Define areas to redact on each page
Rectangle[] rectanglesToRedact = { new Rectangle(100, 100, 200, 50) };
// Draw black rectangles to cover sensitive areas
using (PdfDocument pdfDoc = new PdfDocument(new PdfReader("input.pdf"), new PdfWriter("output_redacted.pdf")))
{
for (int pageNum = 1; pageNum <= pdfDoc.GetNumberOfPages(); pageNum++)
{
PdfPage page = pdfDoc.GetPage(pageNum);
PdfCanvas canvas = new PdfCanvas(page);
foreach (Rectangle rect in rectanglesToRedact)
{
canvas.SetFillColor(ColorConstants.BLACK)
.Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight())
.Fill();
}
}
}
using iText.Kernel.Pdf;
using iText.Kernel.Colors;
// Define areas to redact on each page
Rectangle[] rectanglesToRedact = { new Rectangle(100, 100, 200, 50) };
// Draw black rectangles to cover sensitive areas
using (PdfDocument pdfDoc = new PdfDocument(new PdfReader("input.pdf"), new PdfWriter("output_redacted.pdf")))
{
for (int pageNum = 1; pageNum <= pdfDoc.GetNumberOfPages(); pageNum++)
{
PdfPage page = pdfDoc.GetPage(pageNum);
PdfCanvas canvas = new PdfCanvas(page);
foreach (Rectangle rect in rectanglesToRedact)
{
canvas.SetFillColor(ColorConstants.BLACK)
.Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight())
.Fill();
}
}
}
Imports iText.Kernel.Pdf
Imports iText.Kernel.Colors
' Define areas to redact on each page
Private rectanglesToRedact() As Rectangle = { New Rectangle(100, 100, 200, 50) }
' Draw black rectangles to cover sensitive areas
Using pdfDoc As New PdfDocument(New PdfReader("input.pdf"), New PdfWriter("output_redacted.pdf"))
Dim pageNum As Integer = 1
Do While pageNum <= pdfDoc.GetNumberOfPages()
Dim page As PdfPage = pdfDoc.GetPage(pageNum)
Dim canvas As New PdfCanvas(page)
For Each rect As Rectangle In rectanglesToRedact
canvas.SetFillColor(ColorConstants.BLACK).Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight()).Fill()
Next rect
pageNum += 1
Loop
End Using
IronPDF, metin redaksiyon aracı ile tüm sayfalardaki hassas metinleri kolayca gizler. Kütüphane ayrıca belge içeriğini güncellemeye yönelik metin değiştirme özellikleri ve detaylı içerik manipülasyonu için PDF DOM erişimi sağlar. Sansürleme öncesi içeriği çıkarmak için, metin ve görsel çıkarma ya da PDF dosyalarını programatik olarak ayrıştırma yöntemlerini kullanın. iTextPdf, hassas alanları kapatmak için siyah dikdörtgenlerin manuel olarak tanımlanmasını ve uygulanmasını gerektirir. Tam belge temizliği için, IronPDF ayrıca potansiyel olarak zararlı içeriği kaldırmak amacıyla PDF temizleme özellikleri ve etkileşimli öğeleri statik içeriğe dönüştürmek için PDF düzleştirme sağlar.
Hangi Kütüphane Dijital İmzaları Daha Kolay Hale Getirir?
PDF belgelerini imzalama işlemini otomatikleştirmek önemli ölçüde zaman tasarrufu sağlayabilir. İşte IronPDF ve iTextPdf'in dijital imzalama işlemlerini nasıl ele aldıklarının bir karşılaştırması. IronPDF, imzalama yöntemlerini destekler, bunlara sertifika tabanlı imzalar ve HSM entegrasyonu dahildir. Kütüphane ayrıca belge değişikliklerini ve imza geçerliliğini izlemek için revizyon geçmişi tutar.
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)
{
SigningContact = "support@ironsoftware.com",
SigningLocation = "Chicago, USA",
SigningReason = "Document Approval"
};
// Sign PDF document
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
pdf.Sign(sig);
// Apply timestamp
var timestampedSig = new PdfSignature(cert)
{
TimestampHashAlgorithm = TimestampHashAlgorithm.SHA256,
TimeStampUrl = "___PROTECTED_URL_245___"
};
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)
{
SigningContact = "support@ironsoftware.com",
SigningLocation = "Chicago, USA",
SigningReason = "Document Approval"
};
// Sign PDF document
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
pdf.Sign(sig);
// Apply timestamp
var timestampedSig = new PdfSignature(cert)
{
TimestampHashAlgorithm = TimestampHashAlgorithm.SHA256,
TimeStampUrl = "___PROTECTED_URL_245___"
};
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
' Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
Dim cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)
' Create PdfSignature object
Dim sig As New PdfSignature(cert) With {
.SigningContact = "support@ironsoftware.com",
.SigningLocation = "Chicago, USA",
.SigningReason = "Document Approval"
}
' Sign PDF document
Dim pdf As PdfDocument = PdfDocument.FromFile("document.pdf")
pdf.Sign(sig)
' Apply timestamp
Dim timestampedSig As New PdfSignature(cert) With {
.TimestampHashAlgorithm = TimestampHashAlgorithm.SHA256,
.TimeStampUrl = "___PROTECTED_URL_245___"
}
pdf.SaveAs("signed.pdf")
iTextPdf
using System;
using System.IO;
using iText.Kernel.Pdf;
using iText.Signatures;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.X509;
class Program
{
static void Main(string[] args)
{
string src = "input.pdf";
string dest = "output_signed.pdf";
string pfxFile = "your_certificate.pfx";
string pfxPassword = "your_password";
try
{
// Load your certificate
Pkcs12Store ks = new Pkcs12Store(new FileStream(pfxFile, FileMode.Open), pfxPassword.ToCharArray());
string alias = null;
foreach (string al in ks.Aliases)
{
if (ks.IsKeyEntry(al))
{
alias = al;
break;
}
}
ICipherParameters pk = ks.GetKey(alias).Key;
X509CertificateEntry[] chain = ks.GetCertificateChain(alias);
X509Certificate2 cert = new X509Certificate2(chain[0].Certificate.GetEncoded());
// Create output PDF with signed content
using (PdfReader reader = new PdfReader(src))
{
using (PdfWriter writer = new PdfWriter(dest))
{
using (PdfDocument pdfDoc = new PdfDocument(reader, writer))
{
// Create the signer
PdfSigner signer = new PdfSigner(pdfDoc, writer, new StampingProperties().UseAppendMode());
// Configure signature appearance
PdfSignatureAppearance appearance = signer.GetSignatureAppearance();
appearance.SetReason("Digital Signature");
appearance.SetLocation("Your Location");
appearance.SetContact("Your Contact");
// Create signature
IExternalSignature pks = new PrivateKeySignature(pk, "SHA-256");
signer.SignDetached(pks, chain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);
}
}
}
Console.WriteLine($"PDF digitally signed successfully: {dest}");
}
catch (Exception ex)
{
Console.WriteLine($"Error signing PDF: {ex.Message}");
}
}
}
using System;
using System.IO;
using iText.Kernel.Pdf;
using iText.Signatures;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.X509;
class Program
{
static void Main(string[] args)
{
string src = "input.pdf";
string dest = "output_signed.pdf";
string pfxFile = "your_certificate.pfx";
string pfxPassword = "your_password";
try
{
// Load your certificate
Pkcs12Store ks = new Pkcs12Store(new FileStream(pfxFile, FileMode.Open), pfxPassword.ToCharArray());
string alias = null;
foreach (string al in ks.Aliases)
{
if (ks.IsKeyEntry(al))
{
alias = al;
break;
}
}
ICipherParameters pk = ks.GetKey(alias).Key;
X509CertificateEntry[] chain = ks.GetCertificateChain(alias);
X509Certificate2 cert = new X509Certificate2(chain[0].Certificate.GetEncoded());
// Create output PDF with signed content
using (PdfReader reader = new PdfReader(src))
{
using (PdfWriter writer = new PdfWriter(dest))
{
using (PdfDocument pdfDoc = new PdfDocument(reader, writer))
{
// Create the signer
PdfSigner signer = new PdfSigner(pdfDoc, writer, new StampingProperties().UseAppendMode());
// Configure signature appearance
PdfSignatureAppearance appearance = signer.GetSignatureAppearance();
appearance.SetReason("Digital Signature");
appearance.SetLocation("Your Location");
appearance.SetContact("Your Contact");
// Create signature
IExternalSignature pks = new PrivateKeySignature(pk, "SHA-256");
signer.SignDetached(pks, chain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);
}
}
}
Console.WriteLine($"PDF digitally signed successfully: {dest}");
}
catch (Exception ex)
{
Console.WriteLine($"Error signing PDF: {ex.Message}");
}
}
}
Imports System
Imports System.IO
Imports iText.Kernel.Pdf
Imports iText.Signatures
Imports Org.BouncyCastle.Crypto
Imports Org.BouncyCastle.Pkcs
Imports Org.BouncyCastle.X509
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim src As String = "input.pdf"
Dim dest As String = "output_signed.pdf"
Dim pfxFile As String = "your_certificate.pfx"
Dim pfxPassword As String = "your_password"
Try
' Load your certificate
Dim ks As New Pkcs12Store(New FileStream(pfxFile, FileMode.Open), pfxPassword.ToCharArray())
Dim [alias] As String = Nothing
For Each al As String In ks.Aliases
If ks.IsKeyEntry(al) Then
[alias] = al
Exit For
End If
Next al
Dim pk As ICipherParameters = ks.GetKey([alias]).Key
Dim chain() As X509CertificateEntry = ks.GetCertificateChain([alias])
Dim cert As New X509Certificate2(chain(0).Certificate.GetEncoded())
' Create output PDF with signed content
Using reader As New PdfReader(src)
Using writer As New PdfWriter(dest)
Using pdfDoc As New PdfDocument(reader, writer)
' Create the signer
Dim signer As New PdfSigner(pdfDoc, writer, (New StampingProperties()).UseAppendMode())
' Configure signature appearance
Dim appearance As PdfSignatureAppearance = signer.GetSignatureAppearance()
appearance.SetReason("Digital Signature")
appearance.SetLocation("Your Location")
appearance.SetContact("Your Contact")
' Create signature
Dim pks As IExternalSignature = New PrivateKeySignature(pk, "SHA-256")
signer.SignDetached(pks, chain, Nothing, Nothing, Nothing, 0, PdfSigner.CryptoStandard.CMS)
End Using
End Using
End Using
Console.WriteLine($"PDF digitally signed successfully: {dest}")
Catch ex As Exception
Console.WriteLine($"Error signing PDF: {ex.Message}")
End Try
End Sub
End Class
PDF dosyalarına dijital imzalar uygularken, IronPDF X509 sertifikaları kullanarak basit ve etkili bir yaklaşım sunar. API'si, güvenlik kontrolünden ödün vermeden entegrasyonu basitleştirir. IronPDF ayrıca, belge bütünlüğünü korumak için revizyon geçmişi takibini ve görsel imzalar dahil olmak üzere birden fazla imza türünü destekler. Kütüphane, gelişmiş güvenlik için HSM cihazları ile entegre olur ve sertifika doğrulamasını destekler. Güvenli belge iş akışları için, PDF'leri imzalama ve güvenlik yeteneklerini keşfedin. iTextPdf'nin imzalama süreci daha fazla özelleştirme seçeneği sunar ancak karmaşık kurulum gerektirir. Geliştiriciler, sertifika yönetimi ve imza yapılandırmasıyla ilgili daha fazla kontrol sahibi olsalar da daha zor bir öğrenme eğrisi ile karşılaşırlar.
Her İki Kütüphane de PDF'lere Filigranı Nasıl Uygular?
PDF'lere filigran eklemek, markalama, gizlilik ve telif hakkı koruması için gereklidir. IronPDF ve iTextPdf, PDF belgelerine nasıl filigran uyguladığınıza dair bilgi aşağıdadır. IronPDF, filigran seçenekleri ile HTML/CSS desteği sunar. Kütüphane ayrıca karmaşık bindirmeler için arka plan ve ön plan katmanlarını da etkinleştirir.
IronPDF
using IronPdf;
// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_246___");
// Add text watermark
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
// Add image watermark
pdf.ApplyWatermark("<img src='logo.png' style='width:200px'>", 45, IronPdf.Editing.VerticalAlignment.Bottom, IronPdf.Editing.HorizontalAlignment.Right);
// Add complex HTML watermark with transparency
string watermarkHtml = @"
<div style='font-size:80px; color:rgba(255,0,0,0.3); font-family:Arial; transform:rotate(-45deg);'>
CONFIDENTIAL
</div>";
pdf.ApplyWatermark(watermarkHtml, 0, 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("___PROTECTED_URL_246___");
// Add text watermark
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
// Add image watermark
pdf.ApplyWatermark("<img src='logo.png' style='width:200px'>", 45, IronPdf.Editing.VerticalAlignment.Bottom, IronPdf.Editing.HorizontalAlignment.Right);
// Add complex HTML watermark with transparency
string watermarkHtml = @"
<div style='font-size:80px; color:rgba(255,0,0,0.3); font-family:Arial; transform:rotate(-45deg);'>
CONFIDENTIAL
</div>";
pdf.ApplyWatermark(watermarkHtml, 0, 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
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_246___")
' Add text watermark
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center)
' Add image watermark
pdf.ApplyWatermark("<img src='logo.png' style='width:200px'>", 45, IronPdf.Editing.VerticalAlignment.Bottom, IronPdf.Editing.HorizontalAlignment.Right)
' Add complex HTML watermark with transparency
Dim watermarkHtml As String = "
<div style='font-size:80px; color:rgba(255,0,0,0.3); font-family:Arial; transform:rotate(-45deg);'>
CONFIDENTIAL
</div>"
pdf.ApplyWatermark(watermarkHtml, 0, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center)
pdf.SaveAs("C:\Path\To\Watermarked.pdf")
iTextPdf
using iText.IO.Font;
using iText.IO.Font.Constants;
using iText.Kernel.Colors;
using iText.Kernel.Font;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas;
using iText.Kernel.Pdf.Extgstate;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;
public class TransparentWatermark
{
public static readonly string DEST = "results/sandbox/stamper/transparent_watermark.pdf";
public static readonly string SRC = "../../../resources/pdfs/hero.pdf";
public static void Main(string[] args)
{
FileInfo file = new FileInfo(DEST);
file.Directory.Create();
new TransparentWatermark().ManipulatePdf(DEST);
}
protected void ManipulatePdf(string dest)
{
PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest));
PdfCanvas under = new PdfCanvas(pdfDoc.GetFirstPage().NewContentStreamBefore(), new PdfResources(), pdfDoc);
PdfFont font = PdfFontFactory.CreateFont(FontProgramFactory.CreateFont(StandardFonts.HELVETICA));
Paragraph paragraph = new Paragraph("This watermark is added UNDER the existing content")
.SetFont(font)
.SetFontSize(15);
Canvas canvasWatermark1 = new Canvas(under, pdfDoc.GetDefaultPageSize())
.ShowTextAligned(paragraph, 297, 550, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
canvasWatermark1.Close();
PdfCanvas over = new PdfCanvas(pdfDoc.GetFirstPage());
over.SetFillColor(ColorConstants.BLACK);
paragraph = new Paragraph("This watermark is added ON TOP OF the existing content")
.SetFont(font)
.SetFontSize(15);
Canvas canvasWatermark2 = new Canvas(over, pdfDoc.GetDefaultPageSize())
.ShowTextAligned(paragraph, 297, 500, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
canvasWatermark2.Close();
paragraph = new Paragraph("This TRANSPARENT watermark is added ON TOP OF the existing content")
.SetFont(font)
.SetFontSize(15);
over.SaveState();
PdfExtGState gs1 = new PdfExtGState();
gs1.SetFillOpacity(0.5f);
over.SetExtGState(gs1);
Canvas canvasWatermark3 = new Canvas(over, pdfDoc.GetDefaultPageSize())
.ShowTextAligned(paragraph, 297, 450, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
canvasWatermark3.Close();
over.RestoreState();
pdfDoc.Close();
}
}
using iText.IO.Font;
using iText.IO.Font.Constants;
using iText.Kernel.Colors;
using iText.Kernel.Font;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas;
using iText.Kernel.Pdf.Extgstate;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;
public class TransparentWatermark
{
public static readonly string DEST = "results/sandbox/stamper/transparent_watermark.pdf";
public static readonly string SRC = "../../../resources/pdfs/hero.pdf";
public static void Main(string[] args)
{
FileInfo file = new FileInfo(DEST);
file.Directory.Create();
new TransparentWatermark().ManipulatePdf(DEST);
}
protected void ManipulatePdf(string dest)
{
PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest));
PdfCanvas under = new PdfCanvas(pdfDoc.GetFirstPage().NewContentStreamBefore(), new PdfResources(), pdfDoc);
PdfFont font = PdfFontFactory.CreateFont(FontProgramFactory.CreateFont(StandardFonts.HELVETICA));
Paragraph paragraph = new Paragraph("This watermark is added UNDER the existing content")
.SetFont(font)
.SetFontSize(15);
Canvas canvasWatermark1 = new Canvas(under, pdfDoc.GetDefaultPageSize())
.ShowTextAligned(paragraph, 297, 550, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
canvasWatermark1.Close();
PdfCanvas over = new PdfCanvas(pdfDoc.GetFirstPage());
over.SetFillColor(ColorConstants.BLACK);
paragraph = new Paragraph("This watermark is added ON TOP OF the existing content")
.SetFont(font)
.SetFontSize(15);
Canvas canvasWatermark2 = new Canvas(over, pdfDoc.GetDefaultPageSize())
.ShowTextAligned(paragraph, 297, 500, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
canvasWatermark2.Close();
paragraph = new Paragraph("This TRANSPARENT watermark is added ON TOP OF the existing content")
.SetFont(font)
.SetFontSize(15);
over.SaveState();
PdfExtGState gs1 = new PdfExtGState();
gs1.SetFillOpacity(0.5f);
over.SetExtGState(gs1);
Canvas canvasWatermark3 = new Canvas(over, pdfDoc.GetDefaultPageSize())
.ShowTextAligned(paragraph, 297, 450, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
canvasWatermark3.Close();
over.RestoreState();
pdfDoc.Close();
}
}
Imports iText.IO.Font
Imports iText.IO.Font.Constants
Imports iText.Kernel.Colors
Imports iText.Kernel.Font
Imports iText.Kernel.Pdf
Imports iText.Kernel.Pdf.Canvas
Imports iText.Kernel.Pdf.Extgstate
Imports iText.Layout
Imports iText.Layout.Element
Imports iText.Layout.Properties
Public Class TransparentWatermark
Public Shared ReadOnly DEST As String = "results/sandbox/stamper/transparent_watermark.pdf"
Public Shared ReadOnly SRC As String = "../../../resources/pdfs/hero.pdf"
Public Shared Sub Main(ByVal args() As String)
Dim file As New FileInfo(DEST)
file.Directory.Create()
Call (New TransparentWatermark()).ManipulatePdf(DEST)
End Sub
Protected Sub ManipulatePdf(ByVal dest As String)
Dim pdfDoc As New PdfDocument(New PdfReader(SRC), New PdfWriter(dest))
Dim under As New PdfCanvas(pdfDoc.GetFirstPage().NewContentStreamBefore(), New PdfResources(), pdfDoc)
Dim font As PdfFont = PdfFontFactory.CreateFont(FontProgramFactory.CreateFont(StandardFonts.HELVETICA))
Dim paragraph As Paragraph = (New Paragraph("This watermark is added UNDER the existing content")).SetFont(font).SetFontSize(15)
Dim canvasWatermark1 As Canvas = (New Canvas(under, pdfDoc.GetDefaultPageSize())).ShowTextAligned(paragraph, 297, 550, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0)
canvasWatermark1.Close()
Dim over As New PdfCanvas(pdfDoc.GetFirstPage())
over.SetFillColor(ColorConstants.BLACK)
paragraph = (New Paragraph("This watermark is added ON TOP OF the existing content")).SetFont(font).SetFontSize(15)
Dim canvasWatermark2 As Canvas = (New Canvas(over, pdfDoc.GetDefaultPageSize())).ShowTextAligned(paragraph, 297, 500, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0)
canvasWatermark2.Close()
paragraph = (New Paragraph("This TRANSPARENT watermark is added ON TOP OF the existing content")).SetFont(font).SetFontSize(15)
over.SaveState()
Dim gs1 As New PdfExtGState()
gs1.SetFillOpacity(0.5F)
over.SetExtGState(gs1)
Dim canvasWatermark3 As Canvas = (New Canvas(over, pdfDoc.GetDefaultPageSize())).ShowTextAligned(paragraph, 297, 450, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0)
canvasWatermark3.Close()
over.RestoreState()
pdfDoc.Close()
End Sub
End Class
IronPDF'in API'si, HTML ve CSS özelleştirme esnekliği ile hızlı filigran uygulama olanağı sağlar. Bu yaklaşım, kapsamlı ayar yapmadan görsel olarak ayırt edici filigranlar oluşturur. Daha fazla kontrol için, IronPDF karmaşık belge kaplamaları için arka plan ve ön plan katmanlarını, birden fazla filigranı ve özel konumlandırmayı destekler. Kütüphane ayrıca izleme amaçlı barkod entegrasyonu ve ölçeklenebilir filigranlar için SVG grafik desteği sunar. Gelişmiş ihtiyaçlar için, PDF sayfalarını dönüştürme ve çizgi ve dikdörtgen çizme yeteneklerini keşfedin. iTextPdf, daha ayrıntılı yapılandırma seçenekleri aracılığıyla son derece özelleştirilebilir filigran yerleştirmesi sağlar, ancak daha kapsamlı bir kodlama çabası gerektirir.### Hangi Kütüphane Daha İyi Görüntü ve Metin Damgalama Sunuyor?
PDF'lere içerik damgalamak, filigranlamaya benzer ancak etiketleme veya markalama amacıyla görüntüler veya metin gibi belirli öğelerin eklenmesine odaklanır. İşte IronPDF ve iTextPdf'in bu görevi nasıl yerine getirdiği. IronPDF, kapsamlı damgalama özellikleri ve esnek konumlandırma seçenekleri sunar. Kütüphane ayrıca metin ve bit eşlemleri çizmeyi doğrudan PDF sayfalarına destekler.
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,
HorizontalAlignment = HorizontalAlignment.Center,
Opacity = 50,
Rotation = -45
};
// Stamp the text stamper on all pages
pdf.ApplyStamp(textStamper);
// Create HTML stamper for complex layouts
HtmlStamper htmlStamper = new HtmlStamper()
{
Html = @"<div style='border:2px solid red; padding:10px;'>
<h3>APPROVED</h3>
<p>Date: " + DateTime.Now.ToShortDateString() + @"</p>
</div>",
VerticalAlignment = VerticalAlignment.Bottom,
HorizontalAlignment = HorizontalAlignment.Right,
Width = 200,
Height = 100
};
pdf.ApplyStamp(htmlStamper);
// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("___PROTECTED_URL_247___"))
{
VerticalAlignment = VerticalAlignment.Top,
HorizontalAlignment = HorizontalAlignment.Left,
MaxWidth = new Length(150),
MaxHeight = new Length(150)
};
// Stamp the image stamper on specific pages
pdf.ApplyStamp(imageStamper, new[] { 0, 2, 4 });
pdf.SaveAs("stamped.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,
HorizontalAlignment = HorizontalAlignment.Center,
Opacity = 50,
Rotation = -45
};
// Stamp the text stamper on all pages
pdf.ApplyStamp(textStamper);
// Create HTML stamper for complex layouts
HtmlStamper htmlStamper = new HtmlStamper()
{
Html = @"<div style='border:2px solid red; padding:10px;'>
<h3>APPROVED</h3>
<p>Date: " + DateTime.Now.ToShortDateString() + @"</p>
</div>",
VerticalAlignment = VerticalAlignment.Bottom,
HorizontalAlignment = HorizontalAlignment.Right,
Width = 200,
Height = 100
};
pdf.ApplyStamp(htmlStamper);
// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("___PROTECTED_URL_247___"))
{
VerticalAlignment = VerticalAlignment.Top,
HorizontalAlignment = HorizontalAlignment.Left,
MaxWidth = new Length(150),
MaxHeight = new Length(150)
};
// Stamp the image stamper on specific pages
pdf.ApplyStamp(imageStamper, new[] { 0, 2, 4 });
pdf.SaveAs("stamped.pdf");
Imports IronPdf
Imports IronPdf.Editing
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")
' Create text stamper
Dim textStamper As New TextStamper() With {
.Text = "Text Stamper!",
.FontFamily = "Bungee Spice",
.UseGoogleFont = True,
.FontSize = 30,
.IsBold = True,
.IsItalic = True,
.VerticalAlignment = VerticalAlignment.Top,
.HorizontalAlignment = HorizontalAlignment.Center,
.Opacity = 50,
.Rotation = -45
}
' Stamp the text stamper on all pages
pdf.ApplyStamp(textStamper)
' Create HTML stamper for complex layouts
Dim htmlStamper As New HtmlStamper() With {
.Html = "<div style='border:2px solid red; padding:10px;'>" &
"<h3>APPROVED</h3>" &
"<p>Date: " & DateTime.Now.ToShortDateString() & "</p>" &
"</div>",
.VerticalAlignment = VerticalAlignment.Bottom,
.HorizontalAlignment = HorizontalAlignment.Right,
.Width = 200,
.Height = 100
}
pdf.ApplyStamp(htmlStamper)
' Create image stamper
Dim imageStamper As New ImageStamper(New Uri("___PROTECTED_URL_247___")) With {
.VerticalAlignment = VerticalAlignment.Top,
.HorizontalAlignment = HorizontalAlignment.Left,
.MaxWidth = New Length(150),
.MaxHeight = New Length(150)
}
' Stamp the image stamper on specific pages
pdf.ApplyStamp(imageStamper, {0, 2, 4})
pdf.SaveAs("stamped.pdf")
iTextPdf
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
public void StampPDF(string inputPdfPath, string outputPdfPath, string stampText)
{
PdfDocument pdfDoc = new PdfDocument(new PdfReader(inputPdfPath), new PdfWriter(outputPdfPath));
Document doc = new Document(pdfDoc);
// Add stamp (text) to each page
int numPages = pdfDoc.GetNumberOfPages();
for (int i = 1; i <= numPages; i++)
{
doc.ShowTextAligned(new Paragraph(stampText),
36, 36, i, iText.Layout.Properties.TextAlignment.LEFT,
iText.Layout.Properties.VerticalAlignment.TOP, 0);
}
doc.Close();
}
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
public void StampPDF(string inputPdfPath, string outputPdfPath, string stampText)
{
PdfDocument pdfDoc = new PdfDocument(new PdfReader(inputPdfPath), new PdfWriter(outputPdfPath));
Document doc = new Document(pdfDoc);
// Add stamp (text) to each page
int numPages = pdfDoc.GetNumberOfPages();
for (int i = 1; i <= numPages; i++)
{
doc.ShowTextAligned(new Paragraph(stampText),
36, 36, i, iText.Layout.Properties.TextAlignment.LEFT,
iText.Layout.Properties.VerticalAlignment.TOP, 0);
}
doc.Close();
}
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element
Public Sub StampPDF(ByVal inputPdfPath As String, ByVal outputPdfPath As String, ByVal stampText As String)
Dim pdfDoc As New PdfDocument(New PdfReader(inputPdfPath), New PdfWriter(outputPdfPath))
Dim doc As New Document(pdfDoc)
' Add stamp (text) to each page
Dim numPages As Integer = pdfDoc.GetNumberOfPages()
For i As Integer = 1 To numPages
doc.ShowTextAligned(New Paragraph(stampText), 36, 36, i, iText.Layout.Properties.TextAlignment.LEFT, iText.Layout.Properties.VerticalAlignment.TOP, 0)
Next i
doc.Close()
End Sub
IronPDF'nin resim ve metin damgalama yöntemleri basit ve çok yönlüdür, PDF sayfalarına markalı içerik veya etiketler eklemeyi kolaylaştırır. API, kolay özelleştirme için tanıdık HTML/CSS stil öğelerini kullanır. IronPDF, karmaşık damgalama gereksinimleri için birden fazla damgalamayı verimli bir şekilde, Google Fonts entegrasyonunu ve web fontlarını destekler. Kütüphane ayrıca PDF'ler üzerine doğrudan metin ve bitmap çizimi yapmayı sağlar ve envanter takibi için barkod damgalama desteği sunar. Kesin kontrol için, PDF nesnelerini çevir ve PDF nesnelerini ölçeklendir özelliklerini keşfedin. iTextPdf ayrıca resim ve metin damgalama özellikleri sunar, ancak yapılandırma, PDF düzen yapısını daha manuel kurulum ve bilgi gerektirir. PDF sayfalarındaki içeriği doğrudan işleyebilme, güvenilir damgalama araçları sağlar, ancak iTextPdf'in kurulumu daha fazla çaba gerektirir.
Her İki Kütüphane de DOCX'i PDF'e Dönüştürebilir mi?
Bazı projelerde, DOCX dosyalarını PDF formatına dönüştürmek gereklidir. Aşağıda, IronPDF ve iTextPdf'in bu görevi nasıl ele aldığını karşılaştırarak farklarını öne çıkaran bir inceleme bulunmaktadır. IronPDF, yerel olarak DOCX'ten PDF'e dönüştürme sunar ve RTF belgeleri de dahil olmak üzere diğer formatlar için destek sağlar.
IronPDF
using IronPdf;
// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();
// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");
// Advanced rendering with options
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
// Handle mail merge
var mergeFields = new Dictionary<string, string>
{
["Name"] = "John Doe",
["Date"] = DateTime.Now.ToShortDateString()
};
PdfDocument mergedPdf = renderer.RenderDocxAsPdf("template.docx", mergeFields);
// 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");
// Advanced rendering with options
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
// Handle mail merge
var mergeFields = new Dictionary<string, string>
{
["Name"] = "John Doe",
["Date"] = DateTime.Now.ToShortDateString()
};
PdfDocument mergedPdf = renderer.RenderDocxAsPdf("template.docx", mergeFields);
// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
Imports IronPdf
' Instantiate Renderer
Dim renderer As New DocxToPdfRenderer()
' Render from DOCX file
Dim pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")
' Advanced rendering with options
renderer.RenderingOptions.MarginTop = 50
renderer.RenderingOptions.MarginBottom = 50
' Handle mail merge
Dim mergeFields As New Dictionary(Of String, String) From {
{"Name", "John Doe"},
{"Date", DateTime.Now.ToShortDateString()}
}
Dim mergedPdf As PdfDocument = renderer.RenderDocxAsPdf("template.docx", mergeFields)
' Save the PDF
pdf.SaveAs("pdfFromDocx.pdf")
iTextPdf
IronPDF'nin aksine, iTextPdf, DOCX'in PDF'ye dönüştürülmesi için yerleşik desteğe sahip değildir. Bu dönüşümü gerçekleştirmek için, geliştiricilerin öncelikle DOCX dosyasını PDF uyumlu bir formata dönüştürmek amacıyla DocX veya Aspose.Words gibi üçüncü taraf kütüphanelere güvenmesi, ardından iTextPdf kullanarak işlem yapması veya değiştirmesi gerekmektedir.
IronPDF, DOCX'den PDF'e dönüştürme için basit ve yerleşik bir çözüm sunarak ek kütüphanelere olan ihtiyacı ortadan kaldırır. Bu, hızlı ve entegre dönüşüme ihtiyaç duyan geliştiriciler için oldukça uygun hale getirir. IronPDF ayrıca eski belge formatları için RTF'den PDF'e dönüşümü, dokümantasyon iş akışları için Markdown'dan PDF'e, yapılandırılmış veri için XML'den PDF'e ve görüntüden PDF'e dönüşümü destekler; buna çok çerçeveli TIFF desteği de dahildir. Geliştirilmiş belge işleme için, posta birleştirme özelliklerini ve içindekiler tablosu oluşturmayı keşfedin. Buna karşılık, iTextPdf, DOCX dönüşümü için harici kütüphanelere güvenir, bu da ek kurulum ve bağımlılıklar gerektirir ve proje karmaşıklığını artırır.
IronPDF ve iTextPdf, Bootstrap ve Modern CSS'i Ne Kadar İyi Destekler?
Bootstrap stilli web uygulamalarından PDF oluştururken, tam çerçeve desteği, eşzamanlı CSS dosyalarına veya düzen değişikliklerine gerek kalmadan tasarım tutarlılığını sağlar. HTML'den PDF'ye sayfa kesmeleri ve duyarlı tasarım değerlendirmelerini anlamak, profesyonel çıktı için çok önemlidir. Daha iyi sonuçlar için, CSS medya türleri ve özel render gecikmelerini kullanın.
IronPDF Modern CSS Çerçevelerini Destekliyor mu?
IronPDF'in Chromium motoru, aşağıdakiler için eksiksiz destek sağlar:
- Bootstrap 5: Tam esnek düzenler, CSS Grid, yardımcı sınıflar, tüm bileşenler
- Bootstrap 4: Tüm kart sistemleri, gezinme, esnek yardımcılar, duyarlı tasarım
- Tailwind CSS: Tüm yardımcı sınıflar ile tarayıcıya uygun render
- Foundation: Tam bir grid sistemi ve bileşen kütüphanesi
- Modern CSS3: Flexbox, CSS Grid, özel özellikler, animasyonlar, geçişler
Gerçek dünya doğrulaması: IronPDF, Bootstrap ana sayfasını ve tüm resmi örnekleri piksel mükemmelliğinde doğrulukla, duyarlı CSS yeteneklerini kullanarak işliyor. Kütüphane ayrıca iyileştirilmiş düzen oluşturma için özel kağıt boyutlarını ve görünüm alanı kontrolünü destekler. Karmaşık düzenler için görüntüleme seçenekleri ve sayfa yönü ayarları kullanın. Kütüphane, uluslararası dilleri ve UTF-8 küresel uygulamalar için işler.
iTextPdf'in CSS Sınırlamaları Nelerdir?
iTextPDF, seçici CSS3 desteğine sahip pdfHTML kullanır:
- Sınırlı flexbox desteği: Sürüm 7.1.15'te eklendi ancak eksik CSS Grid Yok: Grid tabanlı Bootstrap düzenleri desteklenmiyor
- Bootstrap 3 sınırlamaları: Modern Bootstrap 4/5 bileşenleri, çözümler gerektirir
- Manuel yerleşim dönüştürme: Karmaşık yerleşimler genellikle PDF'e özgü kod gerektirir
iTextPdf belgeleri, gelişmiş CSS özelliklerinin beklenildiği gibi görüntülenemeyebileceğini açıkça belirtir, bu da geliştiricilerin her Bootstrap bileşenini test etmelerini ve genellikle basitleştirilmiş yerleşimler oluşturmalarını gerektirmektedir.
Geliştirme etkisi: Ekipler, PDF oluşturma için ayrı düzen kodlarını sürdürmeli veya Bootstrap bileşenlerini kapsamlı bir şekilde test edip değiştirmelidir, bu da geliştirme süresini artırır ve tasarım tutarlılığını azaltır.
Bootstrap çerçeve rehberliği ve CSS3 render etme yetenekleri için, Bootstrap & Flexbox CSS Rehberi'ne bakın. Ek kaynaklar, tutarlı tipografi için piksel mükemmeliyetinde biçimlendirme ipuçları, yazı tipi yönetimi ve yazı tipi kerning çözümleri içerir. Web uygulamaları için, ASPX'den PDF'e dönüştürme ve Angular.js PDF oluşturma yeteneklerini keşfedin.
Kod Örnekleri Bize IronPDF ve iTextPdf Hakkında Ne Söylüyor?

Daha ayrıntılı örnekler için IronPDF Örnekleri sayfasını ziyaret edin veya kod örnekleri kütüphanesini keşfedin. Demolar bölümü, IronPDF'nin yeteneklerinin interaktif örneklerini sunar. Ek kaynaklar arasında paralel PDF oluşturma, çok iş parçacıklı işlem ve yüksek performanslı uygulamalar için asenkron örnekler bulunmaktadır.
IronPDF ve iTextPdf, Fiyatlandırma ve Lisanslama Açısından Nasıl Karşılaştırılır?
IronPDF Fiyatlandırma Seçenekleri Nelerdir?
IronPDF, lisans satın alımı için farklı seviyeler ve ek özellikler sunuyor. Geliştiriciler ayrıca, tüm Iron Software ürünlerine iki ürün fiyatına erişim sağlayan Iron Suite'i satın alabilirler. Eğer bir lisans satın almaya hazır değilseniz, IronPDF tam özellikli bir ücretsiz deneme fırsatı sunar. Lisanslama sayfası, mevcut seçenekler hakkında tam detayları sağlar. Kurumsal dağıtımlar için, lisans anahtarı yönetimini ve lisans anahtarlarını programlı olarak ayarlamayı keşfedin.
- Süresiz lisanslar: Ekibinizin boyutuna, proje ihtiyaçlarınıza ve yer sayısına bağlı olarak bir dizi süresiz lisans sunar. Her lisans türü email desteği ile birlikte gelir.
- Lite Lisansı: Bu lisans $999 maliyetindedir ve bir geliştirici, bir konum ve bir projeyi destekler.
- Plus Lisansı: Üç geliştirici, üç konum ve üç projeyi destekleyen ve Lite lisansından bir sonraki adım olan ve maliyeti $1,499 olan bu lisans. Plus lisans, temel email desteğine ek olarak sohbet ve telefon desteği sunar.
- Professional Lisansı: Bu lisans, daha büyük ekipler için uygundur, on geliştirici, on konum ve on projeyi $2,999 için destekler. Önceki seviyelerdeki aynı kontak destek kanallarını sunar, ancak ayrıca ekran paylaşımı desteği de sunar.
- Telif ücretsiz yeniden dağıtım: IronPDF'in lisanslama aynı zamanda ekstra $2,999 için telif ücretsiz yeniden dağıtım kapsamı da sunar.
- Kesintisiz ürün desteği: IronPDF, yıllık 999 $ veya 5 yıllık kapsama için tek seferlik 1.999 $ karşılığında sürekli ürün güncellemeleri, güvenlik özelliği yükseltmeleri ve mühendislik ekibinden destek sunar.
- Iron Suite: $2,998 için IronPDF, IronOCR, IronWord, IronXL, IronBarcode, IronQR, IronZIP, IronPrint ve IronWebScraper dahil tüm Iron Software ürünlerine erişim elde edersiniz.

iTextPdf Lisanslama Nasıl Ele Alır?
AGPL Lisansı: iTextPDF Çekirdek kütüphanesi, koşullar altında ücretsiz olarak kullanılabilir AGPL lisansı kapsamında açık kaynaklıdır. Geliştiriciler, yapılan herhangi bir değişikliği aynı lisans altında yayınlamalıdır.
- Ticari Lisans: AGPL şartlarını karşılamayan geliştiriciler için, iTextPDF teklif bazlı bir model ile ticari lisans sunar.
Lisans yükseltmeleri ve geçişler için, IronPDF lisans yükseltmeleri sayfasını ziyaret edin. Lisans anahtarı uygulama kılavuzu, uygulamada yardımcı olur ve lisans anahtarı yapılandırması dağıtım seçenekleri sağlar. Lisanslama sorunlarını gidermek için, lisanslama sunucusuna bağlanılamıyor ve lisanslama uzantılarına bakın.
IronPDF ve iTextPdf Hangi Döküman ve Destek Hizmetlerini Sunar?
- Kapsamlı Dökümantasyon: Sunulan tüm özellikleri kapsayan geniş ve kullanıcı dostu dökümantasyon.
- 24/5 Destek: Aktif mühendis desteği mevcuttur.
- Video Eğitimler: Adım adım video rehberleri YouTube'da mevcut.
- Topluluk Forumu: Ek destek için etkileşimli bir topluluk.
-
Düzenli Güncellemeler: En son özellikler ve güvenlik yamalarını sağlamak için aylık ürün güncellemeleri.
- Eksiksiz Dökümantasyon: Tüm özellikleri kapsayan geniş, kullanıcı dostu dökümantasyon
- 24/5 Destek: Aktif mühendislik desteği mevcuttur
- Video Öğreticiler:
YouTubeüzerinde adım adım video rehberleri - Topluluk Forumu: Stack Overflow ve GitHub üzerinden ek destek sağlayan aktif topluluk
- Düzenli Güncellemeler: Aylık ürün güncellemeleri, en son özellikler ve güvenlik yamalarını sağlar
- Kod Örnekleri: Pratik uygulamalarla dolu geniş kod örneği kütüphanesi
- Sorun Giderme Rehberleri: Hızlı sorun giderme ve platforma özgü sorunlar için ayrıntılı rehberler
Ayrıntılı sorun giderme için, IronPDF, AWS dağıtımı, Azure yapılandırması, bellek yönetimi, Docker entegrasyonu, IIS kurulumu ve performans optimizasyonu gibi yaygın sorunlar için rehberler sağlar. Platforma özgü rehberler Windows dağıtımı, Linux yapılandırması ve macOS desteğini kapsar. Ek kaynaklar arasında mühendislik talebi rehberi, Azure log yönetimi, AWS log dosyaları, ve güvenlik CVE bilgileri bulunur.
- Dökümantasyon: iText PDF dökümantasyonu mevcut özellikleri kapsamlı bir şekilde ele alır.
- Örnekler ve Eğiticiler: Kod örnekleri ve eğiticiler, geliştiricilerin başlamasına yardımcı olur.
- GitHub Topluluğu: Geliştiriciler, sorunları bildirebilir, pull request gönderebilir ve iTextPDF takımı ile etkileşimde bulunabilir.
- Düzenli Güncellemeler: iTextPDF sık güncellemeler ve iyileştirmeler sağlar.
IronPDF belgeleri ve destek hakkında daha fazla ayrıntı için IronPDF Belgeleri ve Iron Software YouTube Kanalını ziyaret edin. Özelliklere yönelik nasıl yapılır rehberleri, ayrıntılı uygulama için API referansı ve tam öğrenme için eğiticiler keşfedin. VB.NET PDF eğitici ve F# PDF kütüphanesi rehberi dil bazında kaynak sağlar. Modern uygulama framework'leri için Blazor eğitici, MAUI PDF görüntüleme, ve XAML'den PDF'ye dönüşüm keşfedin.## Kıdemli .NET Geliştiricileri Hangi PDF Kütüphanesini Seçmeli?
.NET için PDF düzenleme araçları alanında, hem IronPDF hem de iTextPdf geliştiriciler için değerli çözümler sunar. IronPDF, .NET platformlarında kolay entegrasyonu ve dış bağımlılıklara gerek duymayan DOCX'ten PDF'e dönüşüm gibi kullanıcı dostu özellikleriyle öne çıkar. Gelişmiş render ihtiyaçları için, IronPDF JavaScript çalıştırma, WebGL desteği ve dinamik içerik için özel render gecikmeleri destekler. Kütüphane ayrıca etkileşimli PDF'ler için JavaScript mesaj dinleyiciler ve özel JavaScript çalıştırma içerir. Karmaşık render senaryolarını yönetmek için ağ bekleme, render gecikme ayarlarını ve başlangıç render optimizasyonu keşfedin. Buna karşılık, iTextPdf esnekliği ve zengin özellikleriyle bilinir ve özellikle diğer araçlarla kombinlendiğinde etkili kalır, ancak DOCX dönüşümü için ek bağımlılıklar gerektirir.
Performans geliştirmeleri için, IronPDF, yüksek hacimli PDF işlemlerini verimli bir şekilde yönetmek için asenkron işlem, paralel üretim ve çoklu iş parçacığı desteği sunar. Kütüphane ayrıca hızlı web görüntüleme için PDF sıkıştırma, lineerleştirme ve arşivleme gereklilikleri için PDF/A uyumluluğu gibi ileri düzey özellikler sağlar. Ek kurumsal özellikler e-fatura için ZUGFeRD desteğine sahip PDF/A-3, erişilebilirlik için PDF/UA uyumluluğu ve PDF sürüm kontrolü içerir. Bulut kurulumları için, IronPDF, uzaktan motor seçenekleri, Docker konteyner desteği ve yerel ve uzaktan motor karşılaştırması sunar.
Sonuçta, IronPDF ve iTextPdf arasında seçim yapmak, projenin özel ihtiyaçlarına, lisans tercihlerine ve gereken destek seviyesine bağlıdır. .NET uygulamalarında PDF iş akışlarını basitleştirmenin güvenilir yollarını her iki kütüphane de sağlar. Modern web standartlarına ve kullanım kolaylığına öncelik veren geliştiriciler için, IronPDF'nin Chrome tabanlı işleme ve tam API'si mükemmel bir seçimdir. Kütüphanenin PDF oluşturma, PDF dönüştürme ve PDF düzenleme eğitimleri kapsamlı rehberlik sağlar. Özel belge işlemleri için, PDF raporları oluşturma, PDF metin okuma ve PDF'den HTML'ye dönüştürme keşfedin. Ek kabiliyetler arasında kağıt baskı, ağ yazıcı desteği, görüntülere rasterizasyon ve Base64 dönüştürme bulunur. AGPL lisansı veya kapsamlı düşük düzeyde PDF manipülasyonu gerektirenler için iTextPdf daha uygun olabilir.
Diğer PDF kütüphaneleriyle daha fazla karşılaştırma için, Aspose vs IronPDF, Apryse vs IronPDF, QuestPDF vs IronPDF ve Syncfusion vs IronPDF'yı inceleyerek PDF geliştirme ihtiyaçlarınız için bilinçli bir karar verin. Dağıtım rehberliği için, IronPDF yükleyici seçeneklerini, yazılım yükleyici entegrasyonunu ve en iyi dağıtım uygulamalarını gözden geçirin. Kütüphanenin dönüm noktaları, Chrome render iyileştirmeleri, uyumluluk güncellemeleri, PDFium DOM güncellemeleri ve kararlılık geliştirmeleri dahil olmak üzere sürekli iyileştirmeleri vurgular.
Sıkça Sorulan Sorular
HTML'yi C# içerisinde PDF'ye nasıl dönüştürebilirim?
HTML dizgilerini PDF'lere dönüştürmek için IronPDF'ün RenderHtmlAsPdf yöntemini kullanabilirsiniz. Ayrıca, HTML dosyalarını RenderHtmlFileAsPdf kullanarak PDF'lere dönüştürebilirsiniz.
IronPDF, PDF oluşturma ve işleme için ne gibi özellikler sunar?
IronPDF, HTML'den PDF'e dönüştürme, PDF birleştirme, şifreleme, dijital imzalar, filigran ekleme ve DOCX'ten PDF'e dönüştürme gibi özellikler sunar.
IronPDF, PDF imzalamayı nasıl basitleştirir?
IronPDF, belgelerinizi güvence altına almak için doğrudan ve basit bir yöntem sağlayarak X509 sertifikalarını kullanarak PDF dosyalarına dijital imzalar uygulamanıza olanak tanır.
IronPDF farklı işletim sistemlerinde kullanılabilir mi?
Evet, IronPDF çapraz platform uyumluluğunu destekler. Windows, Linux ve Mac üzerinde sorunsuz çalışır ve .NET Core, .NET Standard ve .NET Framework ile uyumludur.
ITextPDF, belge şifreleme konusunda IronPDF'den nasıl farklıdır?
ITextPDF, şifreleme standartları için detaylı ayar sağlarken, IronPDF kolayca uygulanabilen yerleşik şifreleme yöntemleri ile süreci basitleştirir.
IronPDF kullanıcıları için hangi destek kaynakları mevcuttur?
IronPDF, kapsamlı belgeler, video eğitimleri, bir topluluk forumu ve 24/5 mühendis desteği ile kapsamlı destek sunar.
IronPDF, DOCX'ten PDF'e dönüştürmeyi nasıl ele alır?
IronPDF, ek kütüphanelere ihtiyaç duymadan sorunsuz bir entegrasyon sağlayarak yerel DOCX'ten PDF'e dönüştürme yetenekleri içerir.
IronPDF için hangi lisans seçenekleri mevcuttur?
IronPDF, Lite, Plus ve Professional gibi farklı katmanlara sahip süresiz lisanslar sunar ve telif ücretsiz yeniden dağıtım ve sürekli ürün desteği seçenekleri ile birlikte gelir.
IronPDF kullanarak PDF'lere nasıl filigran ekleyebilirim?
IronPDF, HTML ve CSS kullanarak hızla metin veya görüntü filigranları eklemenizi ve gerektiği gibi özelleştirmenizi sağlayarak filigranları kolayca uygulamanıza olanak tanır.
IronPDF'yi .NET uygulamaları ile çalışan geliştiriciler için uygun kılan nedir?
IronPDF, HTML'den PDF'e dönüştürme, şifreleme ve dijital imzalama gibi görevler için verimli hale getirerek kullanıcı dostu ve basitleştirilmiş bir API ile tasarlanmıştır, bu da .NET geliştiricileri için idealdir.



