SpirePDF C# HTML to PDF Eğitimi ve Kütüphane Karşılaştırması
HTML'yi PDF'ye dönüştürmek, fatura ve raporlar oluşturmadan belgeler ve e-Kitaplar oluşturmaya kadar birçok .NET uygulaması için kritik bir gereksinimdir. HTML'den PDF'ye dönüştürme ihtiyaçlarınız için IronPDF ve Spire.PDF arasında seçim yaparken, onların güçlü yönlerini, sınırlamalarını ve gerçek dünya performanslarını anlamak önemlidir. Bu kapsamlı karşılaştırma, her iki kütüphanenin yeteneklerini inceler ve PDF oluşturma gereksinimleriniz için bilinçli bir karar vermenize yardımcı olur.
IronPDF ve Spire.PDF Arasındaki HTML'den PDF'ye Dönüştürme İçin Anahtar Farklar Nelerdir?
IronPDF, PDF dosyalarını dönüştürmek, PDF düzenleme, PDF oluşturma, PDF dosyalarını okumak ve daha fazlasını içeren geniş bir yelpazede PDF ile ilgili görevleri ele almak için tasarlanmış çok yönlü bir .NET PDF kütüphanesidir. Mevcut .NET uygulamalarına entegrasyonun kolaylığı, yüksek performansı ve HTML5, CSS3 ve JavaScript gibi modern web standartları desteği ile tanınır. IronPDF'in Chrome tabanlı işleme motoru, HTML içeriğinden piksel mükemmelliğinde PDF oluşturulmasını sağlar.
Spire.PDF for .NET, PDF oluşturma ve düzenleme için kapsamlı bir özellik seti sunan güçlü bir .NET PDF kütüphanesidir. Metin ve görüntü çıkarma, PDF form doldurma ve dijital imzalar gibi çeşitli PDF işlevlerini destekler. Özellik açısından kapsamlı olmakla birlikte, HTML'den PDF'ye dönüşüm yetenekleri geliştiricilerin dikkate alması gereken belirli sınırlamalara sahiptir.
| Kategori | Özellik/Aspect | IronPDF | Spire.PDF | Ana Avantaj |
|---|---|---|---|---|
| Çekirdek Mimari | Tasarım Felsefesi | Basitlik-öncelikli, sezgisel API'ler | Çoklu sınıf yaklaşımı, manuel kurulum | IronPDF: Daha hızlı geliştirme |
| API Karmaşıklığı | RenderHtmlAsPdf() gibi basit yöntemler | Çoklu iş parçacığı yaklaşımı gerekli | IronPDF: %70 daha az kod | |
| Öğrenme Eğrisi | 1-2 gün tipik | 1-2 hafta tipik | IronPDF: Daha hızlı benimseme | |
| Platform Desteği | Çapraz Platform | Yerel destek, ekstra paket yok | Sınırlı Linux/macOS desteği | IronPDF: Gerçek çapraz platform |
| .NET Sürümleri | .NET 8, 7, 6, 5, Core 3.1+, Framework 4.6.2+ | .NET Core 2.0+, Framework 2.0+ | Her ikisi de: Genişletilmiş çerçeve desteği | |
| İşletim Sistemleri | Windows, Linux, macOS, Docker native | Özellikle Windows odaklı | IronPDF: Daha geniş OS desteği | |
| HTML'den PDF'ye | Render Motoru | Tam Chrome V8 motoru | Özel HTML ayrıştırıcı | IronPDF: %98+ tarayıcı sadakati |
| CSS3/HTML5 Desteği | Tam destek | Sınırlı (sadece temel CSS) | IronPDF: Modern web standartları | |
| JavaScript Çalıştırma | Tam JavaScript desteği | Planlandı ama uygulanmadı | IronPDF: Dinamik içerik hazır | |
| Web Fontları | Google Yazı Tipleri, sistem yazı tipleri | Sınırlı yazı tipi desteği | IronPDF: Tipografi esnekliği | |
| İşleme Hızı | 0,8–1,2s tipik | Basit HTML için 0,5–0,8s | Spire: Temel HTML için daha hızlı | |
| Security & Encryption | Şifreleme Seviyeleri | AES-256, özelleştirilmiş işlemler | AES-256 standardı | Her ikisi de: Endüstri standardı |
| API Basitliği | Tek SecuritySettings sınıfı |
Birden çok güvenlik yöntemi | IronPDF: Birleşik yaklaşım | |
| İçerik Manipülasyonu | Karartma Yöntemi | Gerçek içerik kaldırma, tek satırlık API | Manuel dikdörtgen üst üste bindirme | IronPDF: Uyumluluk hazır |
| Filigran ekleme | HTML/CSS tabanlı, tam stilizasyon | Text-based with rotation | IronPDF: Zengin filigranlar | |
| Dosya Dönüştürme | DOCX'den PDF'e | Yerleşik DocxToPdfRenderer |
Spire.Doc kütüphanesi gerektirir | IronPDF: Ekstra maliyet yok |
| Performans Olcumleri | Bellek Kullanımı | 150–200MB (Chrome motoru) | 80–120MB | Spire: Daha düşük bellek kullanımı |
| Eşzamanlılık Desteği | Yerel async/await optimize edilmiş | STA iş parçacığı gereklidir | IronPDF: Modern async desenler | |
| Geliştirici Deneyimi | Kod Örnekleri | 100+ çalışmaya hazır örnekler | Temel örnekler | IronPDF: Kapsamlı kaynaklar |
| Hata Mesajları | Açıklayıcı, uygulanabilir | Teknik mesajlar | IronPDF: Daha iyi hata ayıklama | |
| Licensing & Pricing | Giriş Seviyesi | Lite: $799 (1 dev, 1 project) | Developer: $1,199/year (1 dev) | IronPDF: Süresiz lisans |
| Ekip Lisansı | Plus: $1,199 (3 devs, 3 projects) | Site: $4,599 (10 geliştirici) | IronPDF: Daha iyi takım değeri | |
| Suite Seçeneği | Iron Suite: $1,498 (9 products) | Suite seçeneği yok | IronPDF: Olağanüstü değer | |
| Destek | Destek Dahil | Evet, 24/5 mühendislik desteği | Sadece forum (ücretli destek ekstra) | IronPDF: Destek dahil |
| Destek Kanalları | E-posta, sohbet, telefon, ekran paylaşımı | Forum, e-posta (ücretli katmanlar) | IronPDF: Daha fazla kanal | |
| En İyisi İçin | Kullanım Durumları | Modern web uygulamaları, karmaşık HTML/CSS | Basit belgeler, temel düzenler | Bağlam bağımlı |
IronPDF hakkında daha detaylı bilgi için IronPDF.com'u ziyaret edin.
Kütüphaneler Arasında Çapraz Platform Uyumluluğu Nasıl Karşılaştırılır?
IronPDF
IronPDF, geniş çapraz platform uyumluluğuyla dikkat çeker. .NET çerçevesindeki geniş bir ortamı destekler ve farklı platformlar arasında sorunsuz çalışmasını sağlar. Aşağıda IronPDF'in platform uyumluluğunun bir özeti verilmiştir:
-
.NET sürümleri:
- Tamamen yazılmış ve C#, VB.NET ve F#'i destekler
- .NET Core (8, 7, 6, 5 ve 3.1+)
- .NET Standard (2.0+)
- .NET Framework (4.6.2+)
- Uygulama ortamları: IronPDF, Windows, Linux, Mac, Docker, Azure ve AWS gibi çeşitli uygulama ortamlarında çalışır.
- IDEs: Microsoft Visual Studio ve JetBrains Rider & ReSharper gibi IDE'lerle çalışır
- İşletim Sistemleri ve İşlemciler: Windows, Mac, Linux, x64, x86, ARM dahil olmak üzere çeşitli işletim sistemleri ve işlemcileri destekler
IronPDF'in uyumluluğu hakkında daha fazla bilgi için IronPDF Özellikler Sayfası'nı ziyaret edin.
Spire.PDF
Spire.PDF, .NET ortamında tam destek sunar ama Windows işletim sisteminde çalışırken, IronPDF'nin sahip olduğu Linux ve macOS için yerel desteğe sahip değildir. macOS veya Linux üzerinde dağıtıldığında, Spire.PDF her platform için farklı eklentiler gerektirir, bu da dağıtım senaryolarını karmaşık hale getirebilir.
-
.NET Desteği:
- .NET Framework 2.0+
- .NET Core 2.0+
- C# dilinde yazılmış, VB.NET desteği
- Uygulama Ortamları: Spire.PDF, Windows ve ASP.NET uygulamaları gibi çeşitli uygulama ortamlarında çalışır. Aynı zamanda Windows Forms'u da destekleyebilir.
Hangi Kütüphane Daha İyi HTML'den PDF'ye Dönüşüm Özellikleri Sunar?
IronPDF Özellikleri
- PDF dönüşümü: IronPDF HTML'yi PDF'ye dönüştürebilir. Modern web standartları için sunduğu tam destekle, IronPDF'inizden gelen HTML içeriğinizin her zaman piksel mükemmelliğinde PDF'ler döneceğinden emin olabilirsiniz. IronPDF ayrıca DOCX, resimler, RTF ve diğer formatlardan PDF dosyalarını dönüştürebilir.
- PDF Oluşturma: IronPDF ile URL'ler, ASPX dosyaları veya HTML dizgilerinden PDF oluşturabilirsiniz.
- Güvenlik özellikleri: IronPDF ile herhangi bir hassas PDF dosyasının güvenli olduğundan emin olabilirsiniz, güvenlik özellikleri sayesinde. IronPDF'i kullanarak PDF dosyalarınızı şifreleyin, şifreler belirleyin ve PDF dosyalarınız için izinler ayarlayın.
- PDF düzenleme özellikleri: IronPDF ile mevcut PDF belgelerini işleyebilir, düzenleyebilir ve PDF dosyalarını kolaylıkla okuyabilirsiniz. IronPDF, üstbilgi ve altbilgi eklemek, PDF sayfalarına metin ve resim damgalamak, PDF'ye özel filigranlar eklemek, PDF formlarıyla çalışmak ve PDF dosyalarını bölmek veya birleştirmek gibi düzenleme özellikleri sunar.
- Entegrasyon: ASP.NET ve MVC uygulamalarıyla sorunsuz entegrasyon sağlar.
- PDF sürümü desteği: PDF sürüm 1.2-1.7'ye desteği bulunur
IronPDF'in kapsamlı özellikler listesi için IronPDF Özellikler'i ziyaret edin.
Spire.PDF Özellikleri
- PDF Oluşturma: Sıfırdan veya mevcut dosyalardan PDF oluşturun.
- Metin ve Görüntü Çıkarma: Spire.PDF kullanarak PDF sayfalarını ve içeriğini çıkarın.
- PDF Form İşleme: PDF formları doldurun ve yönetin.
- PDF Dönüşümü: PDF'leri HTML, RTF ve resimler gibi diğer formatlara dönüştürün.
- Sayfa Yönetimi: Bir PDF'de sayfalar ekleyin, silin ve yeniden sıralayın.
- Sınırlı HTML Desteği: HTML'den PDF'ye motoru, modern CSS ve JavaScript için sınırlı desteğe sahip. Varsayılan Qt tabanlı eklenti, CSS sayfa sonu özelliklerini veya harici CSS dosyası tanımasını desteklemiyor ve JavaScript uygulaması tam olarak gerçekleştirilmemiş bir özellik. Daha iyi bir işleme için isteğe bağlı ChromeHtmlConverter mevcuttur.
Bootstrap ve Modern CSS Çerçeve İşleme
Modern web geliştirme, hızlı UI geliştirme ve duyarlı tasarım için Bootstrap gibi CSS çerçevelerine büyük ölçüde dayanır. PDF üretim kütüphanelerinin bu çerçeveleri profesyonel belge kalitesini ve tasarım tutarlılığını koruyarak doğru bir şekilde dönüştürmesi gerekir.
IronPDF: Tam Bootstrap ve Tailwind Desteği
IronPDF'in Chromium motoru, tüm modern CSS çerçeveleri için tam destek sunar:
- Bootstrap 5: Tüm duyarlı bileşenler ile tam flexbox ve CSS Grid desteği
- Bootstrap 4: Tam kart düzenleri, navigasyon sistemleri ve yardımcı sınıflar
- Tailwind CSS: Tüm yardımcı ilk sınıflar ve duyarlı modifikatorler
- Foundation: Tam grid ve bileşen sistemleri
- Modern CSS3: Flexbox, Grid, özel özellikler, animasyonlar ve dönüşümler
Gerçek örneklerle kanıtlandı: Bootstrap ana sayfası ve Bootstrap şablonları pikselle mükemmel doğrulukta dönüştürülüyor.
Kod Örneği: Bootstrap ile Takım Üyesi Kartları
using IronPdf;
var renderer = new ChromePdfRenderer();
string bootstrapTeam = @"
<!DOCTYPE html>
<html>
<head>
<link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
<div class='container my-5'>
<h1 class='text-center mb-5'>Our Team</h1>
<div class='row row-cols-1 row-cols-md-3 g-4'>
<div class='col'>
<div class='card h-100 shadow-sm text-center'>
<div class='card-body d-flex flex-column'>
<img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
<h5 class='card-title'>Jennifer Martinez</h5>
<p class='text-muted mb-3'>Chief Technology Officer</p>
<p class='card-text flex-grow-1'>Leading our technical vision and innovation strategy with over 15 years of experience in software architecture.</p>
<div class='d-flex justify-content-center gap-2 mt-auto'>
<a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
<a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
</div>
</div>
</div>
</div>
<div class='col'>
<div class='card h-100 shadow-sm text-center'>
<div class='card-body d-flex flex-column'>
<img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
<h5 class='card-title'>David Chen</h5>
<p class='text-muted mb-3'>Head of Engineering</p>
<p class='card-text flex-grow-1'>Managing our engineering teams and ensuring product quality through rigorous testing and code review processes.</p>
<div class='d-flex justify-content-center gap-2 mt-auto'>
<a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
<a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
</div>
</div>
</div>
</div>
<div class='col'>
<div class='card h-100 shadow-sm text-center'>
<div class='card-body d-flex flex-column'>
<img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
<h5 class='card-title'>Sarah Johnson</h5>
<p class='text-muted mb-3'>Product Manager</p>
<p class='card-text flex-grow-1'>Driving product strategy and customer satisfaction through data-driven decisions and user research.</p>
<div class='d-flex justify-content-center gap-2 mt-auto'>
<a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
<a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
</div>
</div>
</div>
</div>
</div>
<div class='text-center mt-5'>
<h3>Join Our Team</h3>
<p class='text-muted mb-3'>We're always looking for talented individuals to join our growing team.</p>
<a href='#' class='btn btn-primary btn-lg'>View Open Positions</a>
</div>
</div>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(bootstrapTeam);
pdf.SaveAs("team-members.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
string bootstrapTeam = @"
<!DOCTYPE html>
<html>
<head>
<link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
<div class='container my-5'>
<h1 class='text-center mb-5'>Our Team</h1>
<div class='row row-cols-1 row-cols-md-3 g-4'>
<div class='col'>
<div class='card h-100 shadow-sm text-center'>
<div class='card-body d-flex flex-column'>
<img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
<h5 class='card-title'>Jennifer Martinez</h5>
<p class='text-muted mb-3'>Chief Technology Officer</p>
<p class='card-text flex-grow-1'>Leading our technical vision and innovation strategy with over 15 years of experience in software architecture.</p>
<div class='d-flex justify-content-center gap-2 mt-auto'>
<a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
<a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
</div>
</div>
</div>
</div>
<div class='col'>
<div class='card h-100 shadow-sm text-center'>
<div class='card-body d-flex flex-column'>
<img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
<h5 class='card-title'>David Chen</h5>
<p class='text-muted mb-3'>Head of Engineering</p>
<p class='card-text flex-grow-1'>Managing our engineering teams and ensuring product quality through rigorous testing and code review processes.</p>
<div class='d-flex justify-content-center gap-2 mt-auto'>
<a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
<a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
</div>
</div>
</div>
</div>
<div class='col'>
<div class='card h-100 shadow-sm text-center'>
<div class='card-body d-flex flex-column'>
<img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
<h5 class='card-title'>Sarah Johnson</h5>
<p class='text-muted mb-3'>Product Manager</p>
<p class='card-text flex-grow-1'>Driving product strategy and customer satisfaction through data-driven decisions and user research.</p>
<div class='d-flex justify-content-center gap-2 mt-auto'>
<a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
<a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
</div>
</div>
</div>
</div>
</div>
<div class='text-center mt-5'>
<h3>Join Our Team</h3>
<p class='text-muted mb-3'>We're always looking for talented individuals to join our growing team.</p>
<a href='#' class='btn btn-primary btn-lg'>View Open Positions</a>
</div>
</div>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(bootstrapTeam);
pdf.SaveAs("team-members.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
Dim bootstrapTeam As String = "
<!DOCTYPE html>
<html>
<head>
<link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
<div class='container my-5'>
<h1 class='text-center mb-5'>Our Team</h1>
<div class='row row-cols-1 row-cols-md-3 g-4'>
<div class='col'>
<div class='card h-100 shadow-sm text-center'>
<div class='card-body d-flex flex-column'>
<img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
<h5 class='card-title'>Jennifer Martinez</h5>
<p class='text-muted mb-3'>Chief Technology Officer</p>
<p class='card-text flex-grow-1'>Leading our technical vision and innovation strategy with over 15 years of experience in software architecture.</p>
<div class='d-flex justify-content-center gap-2 mt-auto'>
<a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
<a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
</div>
</div>
</div>
</div>
<div class='col'>
<div class='card h-100 shadow-sm text-center'>
<div class='card-body d-flex flex-column'>
<img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
<h5 class='card-title'>David Chen</h5>
<p class='text-muted mb-3'>Head of Engineering</p>
<p class='card-text flex-grow-1'>Managing our engineering teams and ensuring product quality through rigorous testing and code review processes.</p>
<div class='d-flex justify-content-center gap-2 mt-auto'>
<a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
<a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
</div>
</div>
</div>
</div>
<div class='col'>
<div class='card h-100 shadow-sm text-center'>
<div class='card-body d-flex flex-column'>
<img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
<h5 class='card-title'>Sarah Johnson</h5>
<p class='text-muted mb-3'>Product Manager</p>
<p class='card-text flex-grow-1'>Driving product strategy and customer satisfaction through data-driven decisions and user research.</p>
<div class='d-flex justify-content-center gap-2 mt-auto'>
<a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
<a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
</div>
</div>
</div>
</div>
</div>
<div class='text-center mt-5'>
<h3>Join Our Team</h3>
<p class='text-muted mb-3'>We're always looking for talented individuals to join our growing team.</p>
<a href='#' class='btn btn-primary btn-lg'>View Open Positions</a>
</div>
</div>
</body>
</html>"
Dim pdf = renderer.RenderHtmlAsPdf(bootstrapTeam)
pdf.SaveAs("team-members.pdf")
Çıktı: Bootstrap'in kart ızgarası, flexbox hizalaması, duyarlı görüntüler ve düğme bileşenleri ile profesyonel bir takım sayfası—all accurately rendered in the PDF.
Spire.PDF: Sınırlı HTML ve Modern Çerçeve Desteği
Spire.PDF'nin HTML'den-PDF'ye motoru, modern CSS çerçeveleri için önemli kısıtlamalara sahip, belgelerinde belirtildiği gibi:
- Sınırlı CSS Desteği: Sadece temel CSS, kapsamlı CSS3 özellikleri yok
- Flexbox Yok: Bootstrap 4/5, flexbox'a büyük ölçüde dayanır ve desteklenmez
- CSS Grid Yok: Modern düzen sistemleri CSS Grid kullanıyor ve doğru şekilde işlenmez
- JavaScript Sınırlamaları: Modern tarayıcılara kıyasla minimal JavaScript icrası
- Maksimum Bootstrap 3: Sadece daha eski tablo tabanlı Bootstrap sürümleri güvenilir çalışır
- Karmaşık Düzenler Başarısız: Modern duyarlı tasarımlar geniş çözüm yolları gerektirir
Spire.PDF'nin HTML dönüşümünde geliştirici tarafından bildirilen sorunlar:
- Bootstrap navigasyon çubukları düzen sorunlarıyla işleniyor
- Flexbox'a sahip kart bileşenleri doğru hizalanmıyor
- Duyarlı ızgara kesişimlerindeki PDF çıkışında yok sayılıyor
- Modern CSS özellikleri, manuel CSS yeniden yazmaları veya yedeklemeler gerektiriyor
Gelişim etkisi: Bootstrap 4+ veya modern CSS çerçeveleri kullanan uygulamalar, Spire.PDF ile önemli zorluklarla karşılaşıyor. Geliştirme takımları:
- Yalnızca PDF üretimi için ayrı basitleştirilmiş CSS'yi sürdürmelidir (çifte bakım)
- Bootstrap 3'e gerileme yapmalı veya çerçevelerden tamamen vazgeçmeli (modern özellikleri sınırlar)
- Her bileşeni kapsamlı test ederek ve manuel olarak düzeltmek zorundadır (zaman alıcı ve kırılgan)
Modern CSS çerçeve desteği gerektiren projeler için Spire.PDF'nin HTML işleme sınırlamaları, büyük ek gelişim çabası ve devam eden bakım yükü olmadan uygunsuz hale getirir.
Detaylı Bootstrap uyumluluk bilgisi için Bootstrap & Flexbox CSS Kılavuzu'na bakın.
Ortak PDF Görevleri için Kod Örnekleri Nasıl Karşılaştırılır?
IronPDF ve Spire.PDF'nin .NET için yeteneklerini illüstre etmek için, kod örnekleri aracılığıyla çeşitli temel PDF işlevselliklerinin implementasyonunu karşılaştıracağız, bu özelliklerin PDF projelerinizde nasıl yardımcı olabileceğine dair bir fikir elde etmenizi sağlamak için.
HTML'yi PDF'ye Dönüştür
IronPDF Örneği:
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")
IronPDF'deki ChromePdfRenderer sınıfı, HTML içeriğini işlemek için tam bir Chrome tarayıcı motoru kullanır. Bu, CSS3 animasyonları, JavaScript icrası ve modern web yazı tiplerinin Chrome'da olduğu gibi tam olarak işlendiği anlamına gelir. RenderHtmlAsPdf() metodu, HTML stringlerini ve harici varlıkları yüklemek için isteğe bağlı temel yolları kabul eder, böylece hem basit hem de karmaşık HTML belgelerini dönüştürmeyi kolaylaştırır. İşleyici, özel kağıt boyutları, kenar boşlukları ve JavaScript gecikme ayarları dahil gelişmiş işleme seçenekleri destekler.
Spire.PDF Örneği:
using Spire.Pdf;
using Spire.Pdf.HtmlConverter;
using System.IO;
using System.Threading;
using System.Drawing;
namespace ConvertHtmlStringToPdfWithoutPlugin
{
class Program
{
static void Main(string[] args)
{
// Create a PdfDocument object
PdfDocument doc = new PdfDocument();
// Create a PdfPageSettings object
PdfPageSettings setting = new PdfPageSettings();
// Set page size and margins through the object
setting.Size = new SizeF(1000, 1000);
setting.Margins = new Spire.Pdf.Graphics.PdfMargins(20);
// Create a PdfHtmlLayoutFormat object
PdfHtmlLayoutFormat htmlLayoutFormat = new PdfHtmlLayoutFormat();
// Set IsWaiting property to true
htmlLayoutFormat.IsWaiting = true;
// Read HTML string from a .html file
string htmlString = File.ReadAllText(@"C:\Users\Administrator\Desktop\Document\Html\Sample.html");
// Load HTML from HTML string using LoadFromHTML method
Thread thread = new Thread(() =>
{ doc.LoadFromHTML(htmlString, true, setting, htmlLayoutFormat); });
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
// Save to a PDF file
doc.SaveToFile("HtmlStringToPdf.pdf");
}
}
}
using Spire.Pdf;
using Spire.Pdf.HtmlConverter;
using System.IO;
using System.Threading;
using System.Drawing;
namespace ConvertHtmlStringToPdfWithoutPlugin
{
class Program
{
static void Main(string[] args)
{
// Create a PdfDocument object
PdfDocument doc = new PdfDocument();
// Create a PdfPageSettings object
PdfPageSettings setting = new PdfPageSettings();
// Set page size and margins through the object
setting.Size = new SizeF(1000, 1000);
setting.Margins = new Spire.Pdf.Graphics.PdfMargins(20);
// Create a PdfHtmlLayoutFormat object
PdfHtmlLayoutFormat htmlLayoutFormat = new PdfHtmlLayoutFormat();
// Set IsWaiting property to true
htmlLayoutFormat.IsWaiting = true;
// Read HTML string from a .html file
string htmlString = File.ReadAllText(@"C:\Users\Administrator\Desktop\Document\Html\Sample.html");
// Load HTML from HTML string using LoadFromHTML method
Thread thread = new Thread(() =>
{ doc.LoadFromHTML(htmlString, true, setting, htmlLayoutFormat); });
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
// Save to a PDF file
doc.SaveToFile("HtmlStringToPdf.pdf");
}
}
}
Imports Spire.Pdf
Imports Spire.Pdf.HtmlConverter
Imports System.IO
Imports System.Threading
Imports System.Drawing
Namespace ConvertHtmlStringToPdfWithoutPlugin
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Create a PdfDocument object
Dim doc As New PdfDocument()
' Create a PdfPageSettings object
Dim setting As New PdfPageSettings()
' Set page size and margins through the object
setting.Size = New SizeF(1000, 1000)
setting.Margins = New Spire.Pdf.Graphics.PdfMargins(20)
' Create a PdfHtmlLayoutFormat object
Dim htmlLayoutFormat As New PdfHtmlLayoutFormat()
' Set IsWaiting property to true
htmlLayoutFormat.IsWaiting = True
' Read HTML string from a .html file
Dim htmlString As String = File.ReadAllText("C:\Users\Administrator\Desktop\Document\Html\Sample.html")
' Load HTML from HTML string using LoadFromHTML method
Dim thread As New Thread(Sub()
doc.LoadFromHTML(htmlString, True, setting, htmlLayoutFormat)
End Sub)
thread.SetApartmentState(ApartmentState.STA)
thread.Start()
thread.Join()
' Save to a PDF file
doc.SaveToFile("HtmlStringToPdf.pdf")
End Sub
End Class
End Namespace
Spire.PDF'nin HTML'den PDF'ye dönüştürmesi, PdfDocument, PdfPageSettings ve PdfHtmlLayoutFormat gibi birden fazla nesne oluşturmayı gerektirir. Dönüştürme işlemi, uygulanmasına karmaşıklık katan Single Thread Apartment (STA) dizisinde gerçekleştirilmelidir. Kullanıcılar, "Spire bir görüntüden ibaret bir PDF dosyası oluşturuyor." şeklinde bildirimde bulundular. CSS'in bazıları, kalın yazı tiplerini yoksaymak gibi, doğru bile değil", bu da CSS render doğruluğundaki sınırlamaları gösteriyor.
IronPDF, Chrome'un render motorunu yüksek doğrulukta HTML'den PDF'ye dönüştürme için kullanır, modern web standartlarını desteklemekte olması sayesinde web içeriğinin doğru bir şekilde temsil edilmesini sağlar. Spire.PDF de sağlam bir HTML'den PDF'ye dönüştürme sağlar ancak IronPDF'nin render doğruluğunu yakalayamayabilir ve daha uzun, daha elle bir yaklaşım izler.
PDF Belgelerinizi Nasıl Şifreleyebilirsiniz?
IronPDF Örneği:
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
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = 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
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = 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
pdf.SecuritySettings.RemovePasswordsAndEncryption()
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserFormData = False
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights
' Change or set the document encryption password
pdf.Password = "my-password"
pdf.SaveAs("secured.pdf")
IronPDF'nin SecuritySettings sınıfı, PDF güvenliğini yönetmek için kapsamlı bir API sağlar. Bireysel izinleri boolean özellikleri ile kontrol edebilir, baskı hakları için farklı seviyeler ayarlayabilir ve şifreleri diğer güvenlik ayarlarından ayrı olarak yönetebilirsiniz. API tasarımı, PdfPrintSecurity gibi güçlü türdeki enum'larla .NET konvansiyonlarını takip eder. Belgelerde PDF izinleri ve şifreleri hakkında daha fazla bilgi edinin.
Spire.PDF Örneği:
using Spire.Pdf;
using Spire.Pdf.Security;
// Create a PdfDocument object
PdfDocument pdf = new PdfDocument();
// Load a sample PDF file
pdf.LoadFromFile(@"E:\Files\sample.pdf");
// Encrypt the PDF file with a password
pdf.Security.Encrypt("open", "permission", PdfPermissionsFlags.Print | PdfPermissionsFlags.CopyContent, PdfEncryptionKeySize.Key128Bit);
// Save the result file
pdf.SaveToFile("Encrypt.pdf", FileFormat.PDF);
using Spire.Pdf;
using Spire.Pdf.Security;
// Create a PdfDocument object
PdfDocument pdf = new PdfDocument();
// Load a sample PDF file
pdf.LoadFromFile(@"E:\Files\sample.pdf");
// Encrypt the PDF file with a password
pdf.Security.Encrypt("open", "permission", PdfPermissionsFlags.Print | PdfPermissionsFlags.CopyContent, PdfEncryptionKeySize.Key128Bit);
// Save the result file
pdf.SaveToFile("Encrypt.pdf", FileFormat.PDF);
Imports Spire.Pdf
Imports Spire.Pdf.Security
' Create a PdfDocument object
Private pdf As New PdfDocument()
' Load a sample PDF file
pdf.LoadFromFile("E:\Files\sample.pdf")
' Encrypt the PDF file with a password
pdf.Security.Encrypt("open", "permission", PdfPermissionsFlags.Print Or PdfPermissionsFlags.CopyContent, PdfEncryptionKeySize.Key128Bit)
' Save the result file
pdf.SaveToFile("Encrypt.pdf", FileFormat.PDF)
Spire.PDF'in şifreleme yaklaşımı, izinler için bit seviyesi bayraklarla Security.Encrypt() metodunu kullanır. Daha kompakt olsa da, bu yaklaşım bitwise işlemlerini anlamayı gerektirir ve IronPDF'nin bireysel izin özelliklerine kıyasla daha az ayrıntılı kontrol sunar.
Her iki kütüphane de şifreleme ve şifreli PDF belgelerinin okunabilirliğini ayarlama için kullanımı kolay yöntemler sunar. IronPDF, PDF'nizin güvenlik ayarları üzerinde tam kontrol sağlarken basit bir yaklaşım sunar. Spire.PDF, izin ayarları için ek seçenekler içerse de biraz daha kısa bir süreç izler.
PDF İçeriğini Saklama Seçenekleri Nelerdir?
IronPDF Örneği:
using IronPdf;
// Load the PDF document
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");
// Save the redacted document
pdf.SaveAs("redacted.pdf");
using IronPdf;
// Load the PDF document
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");
// Save the redacted document
pdf.SaveAs("redacted.pdf");
Imports IronPdf
' Load the PDF document
Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")
' Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are")
' Save the redacted document
pdf.SaveAs("redacted.pdf")
IronPDF, gerçek içerik kaldırma gerçekleştiren, sadece görsel maskeleme yapmayan özel bir saklama API'si sunar. RedactTextOnAllPages() metodu, belirtilen metni arar ve kalıcı olarak kaldırır, böylece veri koruma düzenlemelerine uyumu sağlar. Ek yöntemler, belirli sayfalarda veya bölgelerde saklama yapılmasını sağlar.
Spire.PDF Rektangel Kaplama ile Saklama Örneği:
Spire.PDF, bir ayırma aracı olmasa da, içerik manuel bir süreçle örtülerek saklanabilir, aşağıda gösterildiği gibi:
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
// Specify the input PDF file path
string inputPdfFilePath = "path/to/your/input.pdf";
// Specify the output redacted PDF file path
string outputPdfFilePath = "path/to/your/redacted_output.pdf";
// Create a new PdfDocument object
PdfDocument pdfDocument = new PdfDocument();
// Load the existing PDF document
pdfDocument.LoadFromFile(inputPdfFilePath);
// Redact content on each page
foreach (PdfPageBase page in pdfDocument.Pages)
{
// Define the area to redact (e.g., coordinates and size of the rectangle)
RectangleF redactArea = new RectangleF(100, 100, 200, 50); // Example coordinates and size
// Apply redaction
page.Canvas.DrawRectangle(new PdfSolidBrush(Color.Black), redactArea);
}
// Save the redacted PDF document
pdfDocument.SaveToFile(outputPdfFilePath);
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
// Specify the input PDF file path
string inputPdfFilePath = "path/to/your/input.pdf";
// Specify the output redacted PDF file path
string outputPdfFilePath = "path/to/your/redacted_output.pdf";
// Create a new PdfDocument object
PdfDocument pdfDocument = new PdfDocument();
// Load the existing PDF document
pdfDocument.LoadFromFile(inputPdfFilePath);
// Redact content on each page
foreach (PdfPageBase page in pdfDocument.Pages)
{
// Define the area to redact (e.g., coordinates and size of the rectangle)
RectangleF redactArea = new RectangleF(100, 100, 200, 50); // Example coordinates and size
// Apply redaction
page.Canvas.DrawRectangle(new PdfSolidBrush(Color.Black), redactArea);
}
// Save the redacted PDF document
pdfDocument.SaveToFile(outputPdfFilePath);
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.Drawing
' Specify the input PDF file path
Private inputPdfFilePath As String = "path/to/your/input.pdf"
' Specify the output redacted PDF file path
Private outputPdfFilePath As String = "path/to/your/redacted_output.pdf"
' Create a new PdfDocument object
Private pdfDocument As New PdfDocument()
' Load the existing PDF document
pdfDocument.LoadFromFile(inputPdfFilePath)
' Redact content on each page
For Each page As PdfPageBase In pdfDocument.Pages
' Define the area to redact (e.g., coordinates and size of the rectangle)
Dim redactArea As New RectangleF(100, 100, 200, 50) ' Example coordinates and size
' Apply redaction
page.Canvas.DrawRectangle(New PdfSolidBrush(Color.Black), redactArea)
Next page
' Save the redacted PDF document
pdfDocument.SaveToFile(outputPdfFilePath)
Bu manuel yaklaşım, her saklama alanı için kesin koordinatların hesaplanmasını gerektirir ve sadece görsel maskeleme sağlar, gerçek içerik kaldırma değil. Temel metin, PDF düzenleme araçlarıyla hala çıkarılabilir olabilir.
IronPDF, okunması kolay, ancak sağlam reddetme aracıyla saklamayı basitleştirir. Spire.PDF, yerleşik bir saklama aracının olmaması nedeniyle saklama için daha fazla manuel işleme ihtiyaç duyar ve potansiyel olarak daha az verimli iş akışı sonuçlanır.
PDF Belgelerini Nasıl İmzalıyorsunuz?
IronPDF Örneği:
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
// Instantiate the renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");
// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);
// Create PdfSignature with certificate
var sig = new PdfSignature(cert);
// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
// Instantiate the renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");
// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);
// Create PdfSignature with certificate
var sig = new PdfSignature(cert);
// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
' Instantiate the renderer
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>foo</h1>")
' Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)
' Create PdfSignature with certificate
Private sig = New PdfSignature(cert)
' Sign PDF document
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
IronPDF'nin dijital imza uygulaması .NET sertifika işleme desenlerini takip eder. PdfSignature sınıfı, standart X509Certificate2 nesnelerini kabul eder ve PDF imzalamanın karmaşıklığını dahili olarak işler. Ayrıca görsel imza görünümleri ekleyebilir ve imza alanlarını yapılandırabilirsiniz.
Spire.PDF Örneği:
using Spire.Pdf;
using Spire.Pdf.Security;
using System.Drawing;
// Create a PdfDocument object
PdfDocument doc = new PdfDocument();
// Load a sample PDF file
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");
// Load the certificate
PdfCertificate cert = new PdfCertificate("C:\\Users\\Administrator\\Desktop\\MyCertificate.pfx", "e-iceblue");
// Create a PdfSignature object and specify its position and size
PdfSignature signature = new PdfSignature(doc, doc.Pages[doc.Pages.Count - 1], cert, "MySignature");
RectangleF rectangleF = new RectangleF(doc.Pages[0].ActualSize.Width - 260 - 54 , 200, 260, 110);
signature.Bounds = rectangleF;
signature.Certificated = true;
// Set the graphics mode to ImageAndSignDetail
signature.GraphicsMode = GraphicMode.SignImageAndSignDetail;
// Set various details about the signature
signature.NameLabel = "Signer:";
signature.Name = "Gary";
signature.ContactInfoLabel = "Phone:";
signature.ContactInfo = "0123456";
signature.DateLabel = "Date:";
signature.Date = DateTime.Now;
signature.LocationInfoLabel = "Location:";
signature.LocationInfo = "USA";
signature.ReasonLabel = "Reason:";
signature.Reason = "I am the author";
signature.DistinguishedNameLabel = "DN:";
signature.DistinguishedName = signature.Certificate.IssuerName.Name;
// Set the signature image source
signature.SignImageSource = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\handwrittingSignature.png");
// Set the signature font
signature.SignDetailsFont = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular));
// Set the document permission to forbid changes but allow form fill
signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges | PdfCertificationFlags.AllowFormFill;
// Save to file
doc.SaveToFile("VisiableSignature.pdf");
using Spire.Pdf;
using Spire.Pdf.Security;
using System.Drawing;
// Create a PdfDocument object
PdfDocument doc = new PdfDocument();
// Load a sample PDF file
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");
// Load the certificate
PdfCertificate cert = new PdfCertificate("C:\\Users\\Administrator\\Desktop\\MyCertificate.pfx", "e-iceblue");
// Create a PdfSignature object and specify its position and size
PdfSignature signature = new PdfSignature(doc, doc.Pages[doc.Pages.Count - 1], cert, "MySignature");
RectangleF rectangleF = new RectangleF(doc.Pages[0].ActualSize.Width - 260 - 54 , 200, 260, 110);
signature.Bounds = rectangleF;
signature.Certificated = true;
// Set the graphics mode to ImageAndSignDetail
signature.GraphicsMode = GraphicMode.SignImageAndSignDetail;
// Set various details about the signature
signature.NameLabel = "Signer:";
signature.Name = "Gary";
signature.ContactInfoLabel = "Phone:";
signature.ContactInfo = "0123456";
signature.DateLabel = "Date:";
signature.Date = DateTime.Now;
signature.LocationInfoLabel = "Location:";
signature.LocationInfo = "USA";
signature.ReasonLabel = "Reason:";
signature.Reason = "I am the author";
signature.DistinguishedNameLabel = "DN:";
signature.DistinguishedName = signature.Certificate.IssuerName.Name;
// Set the signature image source
signature.SignImageSource = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\handwrittingSignature.png");
// Set the signature font
signature.SignDetailsFont = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular));
// Set the document permission to forbid changes but allow form fill
signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges | PdfCertificationFlags.AllowFormFill;
// Save to file
doc.SaveToFile("VisiableSignature.pdf");
Imports Spire.Pdf
Imports Spire.Pdf.Security
Imports System.Drawing
' Create a PdfDocument object
Private doc As New PdfDocument()
' Load a sample PDF file
doc.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf")
' Load the certificate
Dim cert As New PdfCertificate("C:\Users\Administrator\Desktop\MyCertificate.pfx", "e-iceblue")
' Create a PdfSignature object and specify its position and size
Dim signature As New PdfSignature(doc, doc.Pages(doc.Pages.Count - 1), cert, "MySignature")
Dim rectangleF As New RectangleF(doc.Pages(0).ActualSize.Width - 260 - 54, 200, 260, 110)
signature.Bounds = rectangleF
signature.Certificated = True
' Set the graphics mode to ImageAndSignDetail
signature.GraphicsMode = GraphicMode.SignImageAndSignDetail
' Set various details about the signature
signature.NameLabel = "Signer:"
signature.Name = "Gary"
signature.ContactInfoLabel = "Phone:"
signature.ContactInfo = "0123456"
signature.DateLabel = "Date:"
signature.Date = DateTime.Now
signature.LocationInfoLabel = "Location:"
signature.LocationInfo = "USA"
signature.ReasonLabel = "Reason:"
signature.Reason = "I am the author"
signature.DistinguishedNameLabel = "DN:"
signature.DistinguishedName = signature.Certificate.IssuerName.Name
' Set the signature image source
signature.SignImageSource = PdfImage.FromFile("C:\Users\Administrator\Desktop\handwrittingSignature.png")
' Set the signature font
signature.SignDetailsFont = New PdfTrueTypeFont(New Font("Arial Unicode MS", 12F, FontStyle.Regular))
' Set the document permission to forbid changes but allow form fill
signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges Or PdfCertificationFlags.AllowFormFill
' Save to file
doc.SaveToFile("VisiableSignature.pdf")
Spire.PDF imza görünümü üzerinde geniş kontrol sağlar ancak daha fazla kod gerektirir. Her etiketi manuel olarak ayarlamalı, imzayı tam olarak yerleştirmeli ve görsel öğeleri ayrı ayrı yapılandırmalısınız.
PDF'leri dijital olarak imzalamak, PDF belgelerini doğrulamak için kullanılmaktan, yeni bir projeye imza atmaya kadar çeşitli ortamlarda yardımcı olabilir. IronPDF, dijital imzalar eklemek için kolay bir yöntem sunar ve imza işleminin kolay otomasyonuna olanak tanır. Spire.PDF de PDF'ler için dijital imzaları destekler; ancak süreç daha manuel olabilir ve uygulanması daha fazla çaba gerektirebilir.
PDF'lere Filigran Ekleme Yöntemleri Nelerdir?
IronPDF Örneği:
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")
IronPDF'nin filigranlama özelliği, stil vermek için CSS kullanmanıza imkan tanıyan HTML içeriğini kabul eder. ApplyWatermark() metodu, döndürme açısı ve hizalama için parametreler sağlar, böylece filigranları doğru bir şekilde konumlandırmayı kolaylaştırır. Özel filigranlar ve gelişmiş stil seçenekleri hakkında daha fazla bilgi edinin.
Spire.PDF Örneği:
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
// Create a PdfDocument object
PdfDocument pdf = new PdfDocument();
// Load a sample PDF document
pdf.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");
// Create a PdfTrueTypeFont object
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 50f), true);
// Set the watermark text
string text = "CONFIDENTIAL";
// Measure the text size
SizeF textSize = font.MeasureString(text);
// Calculate the values of two offset variables,
// which will be used to calculate the translation amount of the coordinate system
float offset1 = (float)(textSize.Width * System.Math.Sqrt(2) / 4);
float offset2 = (float)(textSize.Height * System.Math.Sqrt(2) / 4);
// Traverse all the pages in the document
foreach (PdfPageBase page in pdf.Pages)
{
// Set the page transparency
page.Canvas.SetTransparency(0.8f);
// Translate the coordinate system by specified coordinates
page.Canvas.TranslateTransform(page.Canvas.Size.Width / 2 - offset1 - offset2, page.Canvas.Size.Height / 2 + offset1 - offset2);
// Rotate the coordinate system 45 degrees counterclockwise
page.Canvas.RotateTransform(-45);
// Draw watermark text on the page
page.Canvas.DrawString(text, font, PdfBrushes.DarkGray, 0, 0);
}
// Save the changes to another file
pdf.SaveToFile("TextWatermark.pdf");
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
// Create a PdfDocument object
PdfDocument pdf = new PdfDocument();
// Load a sample PDF document
pdf.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");
// Create a PdfTrueTypeFont object
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 50f), true);
// Set the watermark text
string text = "CONFIDENTIAL";
// Measure the text size
SizeF textSize = font.MeasureString(text);
// Calculate the values of two offset variables,
// which will be used to calculate the translation amount of the coordinate system
float offset1 = (float)(textSize.Width * System.Math.Sqrt(2) / 4);
float offset2 = (float)(textSize.Height * System.Math.Sqrt(2) / 4);
// Traverse all the pages in the document
foreach (PdfPageBase page in pdf.Pages)
{
// Set the page transparency
page.Canvas.SetTransparency(0.8f);
// Translate the coordinate system by specified coordinates
page.Canvas.TranslateTransform(page.Canvas.Size.Width / 2 - offset1 - offset2, page.Canvas.Size.Height / 2 + offset1 - offset2);
// Rotate the coordinate system 45 degrees counterclockwise
page.Canvas.RotateTransform(-45);
// Draw watermark text on the page
page.Canvas.DrawString(text, font, PdfBrushes.DarkGray, 0, 0);
}
// Save the changes to another file
pdf.SaveToFile("TextWatermark.pdf");
Imports System
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.Drawing
' Create a PdfDocument object
Private pdf As New PdfDocument()
' Load a sample PDF document
pdf.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf")
' Create a PdfTrueTypeFont object
Dim font As New PdfTrueTypeFont(New Font("Arial", 50F), True)
' Set the watermark text
Dim text As String = "CONFIDENTIAL"
' Measure the text size
Dim textSize As SizeF = font.MeasureString(text)
' Calculate the values of two offset variables,
' which will be used to calculate the translation amount of the coordinate system
Dim offset1 As Single = CSng(textSize.Width * Math.Sqrt(2) / 4)
Dim offset2 As Single = CSng(textSize.Height * Math.Sqrt(2) / 4)
' Traverse all the pages in the document
For Each page As PdfPageBase In pdf.Pages
' Set the page transparency
page.Canvas.SetTransparency(0.8F)
' Translate the coordinate system by specified coordinates
page.Canvas.TranslateTransform(page.Canvas.Size.Width \ 2 - offset1 - offset2, page.Canvas.Size.Height \ 2 + offset1 - offset2)
' Rotate the coordinate system 45 degrees counterclockwise
page.Canvas.RotateTransform(-45)
' Draw watermark text on the page
page.Canvas.DrawString(text, font, PdfBrushes.DarkGray, 0, 0)
Next page
' Save the changes to another file
pdf.SaveToFile("TextWatermark.pdf")
Spire.PDF'nin filigranlama yöntemi, koordinat sistemi dönüşümleri kullanılarak konumlandırma ve döndürme hesaplamalarını gerektirir. Bu, ince kontrol sağlar, ancak grafik programlama kavramlarını anlamayı gerektirir.
IronPDF, tam konum ve tasarım üzerinde kontrol sağlarken metin filigranları eklemek için kolay bir yöntem sunar. IronPDF'nin HTML ve CSS kullanımı, bu dillere aşina iseniz süreci kolaylaştırır. Spire.PDF'nin yöntemi daha uzun ve daha manuel bir süreç ile gerçekleşse de tasarım ve konum üzerinde tam kontrol sahibi bir filigran aracı sağlar.
PDF'lerde İmaj ve Metinleri Nasıl Damgalarız?
IronPDF Örneği:
using IronPdf;
using IronPdf.Editing;
// Instantiate Renderer
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;
// Instantiate Renderer
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
' Instantiate Renderer
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")
IronPDF'nin damgalama API'si, farklı damga türleri için özel sınıflar kullanır. TextStamper, UseGoogleFont özelliği aracılığıyla doğrudan Google Yazı Tiplerini desteklerken, ImageStamper resimleri URL'lardan veya yerel dosyalardan yükleyebilir. Her iki damgalama aracında da ortak hizalama özellikleri, tutarlı konumlandırmayı sağlar. Damgalama seçenekleri hakkında daha fazla bilgi edin, HTML damga araçları ve barkod entegrasyonu dahil.
Spire.PDF (Metin Damgalama Örneği):
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
// Assumes a PdfDocument is already loaded as `doc` object
PdfPageBase page = doc.Pages[0];
PdfGraphicsState state = page.Canvas.Save();
// Define font and brushes for different effects
PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 18f);
PdfSolidBrush brush1 = new PdfSolidBrush(Color.DeepSkyBlue);
PdfSolidBrush brush2 = new PdfSolidBrush(Color.CadetBlue);
// Apply transformations and draw strings with shadow and effect
page.Canvas.TranslateTransform(20, 200);
page.Canvas.ScaleTransform(1f, 0.6f);
page.Canvas.SkewTransform(-10, 0);
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush1, 0, 0);
page.Canvas.SkewTransform(10, 0);
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush2, 0, 0);
page.Canvas.ScaleTransform(1f, -1f);
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush2, 0, -2 * 18);
// Restore graphics to previous state
page.Canvas.Restore(state);
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
// Assumes a PdfDocument is already loaded as `doc` object
PdfPageBase page = doc.Pages[0];
PdfGraphicsState state = page.Canvas.Save();
// Define font and brushes for different effects
PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 18f);
PdfSolidBrush brush1 = new PdfSolidBrush(Color.DeepSkyBlue);
PdfSolidBrush brush2 = new PdfSolidBrush(Color.CadetBlue);
// Apply transformations and draw strings with shadow and effect
page.Canvas.TranslateTransform(20, 200);
page.Canvas.ScaleTransform(1f, 0.6f);
page.Canvas.SkewTransform(-10, 0);
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush1, 0, 0);
page.Canvas.SkewTransform(10, 0);
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush2, 0, 0);
page.Canvas.ScaleTransform(1f, -1f);
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush2, 0, -2 * 18);
// Restore graphics to previous state
page.Canvas.Restore(state);
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.Drawing
' Assumes a PdfDocument is already loaded as `doc` object
Private page As PdfPageBase = doc.Pages(0)
Private state As PdfGraphicsState = page.Canvas.Save()
' Define font and brushes for different effects
Private font As New PdfFont(PdfFontFamily.Helvetica, 18F)
Private brush1 As New PdfSolidBrush(Color.DeepSkyBlue)
Private brush2 As New PdfSolidBrush(Color.CadetBlue)
' Apply transformations and draw strings with shadow and effect
page.Canvas.TranslateTransform(20, 200)
page.Canvas.ScaleTransform(1F, 0.6F)
page.Canvas.SkewTransform(-10, 0)
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush1, 0, 0)
page.Canvas.SkewTransform(10, 0)
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush2, 0, 0)
page.Canvas.ScaleTransform(1F, -1F)
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush2, 0, -2 * 18)
' Restore graphics to previous state
page.Canvas.Restore(state)
Spire.PDF, doğrudan tuval manipülasyonunu ve her bir etki için manuel dönüşümler gerektirir. Karmaşık damgalar oluşturmak, grafik durum yönetimini ve koordinat dönüşümlerini anlamayı içerir.
IronPDF'nin metin ve imaj damgalama aracı, damgalanmış içerik uygularken HTML ve CSS'ye benzer bir yaklaşım izleyen güçlü, kullanımı kolay bir damgalama aracıdır. Spire.PDF de basit bir metin damgalama aracı sunar, ancak metin damgasını PDF dosyalarınıza uygulamak daha çok çaba gerektirir.
Hangi Kütüphane DOCX'ten PDF'ye Daha İyi Dönüştürüyor?
IronPDF Örneği:
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")
IronPDF, DOCX dönüşümünü yerel olarak işleyen özel bir DocxToPdfRenderer sınıfını içerir. API, IronPDF içindeki diğer render sınıflarıyla uyumludur ve basit dönüşüm için sadece iki satır kod gerektirir. Sayfa düzeni ve biçimlendirme için gelişmiş seçenekler, renderer'ın özellikleri aracılığıyla mevcuttur. DOCX'ten PDF'ye dönüştürme özellikleri hakkında daha fazla bilgi edinin.
Spire.PDF Kullanarak Spire.Doc ile DOCX'ten PDF'ye Dönüştürme:
Spire.PDF'nin kendisi DOCX'ten PDF'ye dönüştüremez; ancak, bu dönüşümü işlemek için Spire.Doc kütüphanesi kullanılabilir ve ardından ortaya çıkan PDF üzerinde çalışmak için Spire.PDF'yi kullanabilirsiniz.
using Spire.Doc;
// Create a Document object
Document doc = new Document();
// Load a Word document
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.docx");
// Save the document to PDF
doc.SaveToFile("ToPDF.pdf", FileFormat.PDF);
// Dispose of resources
doc.Dispose();
using Spire.Doc;
// Create a Document object
Document doc = new Document();
// Load a Word document
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.docx");
// Save the document to PDF
doc.SaveToFile("ToPDF.pdf", FileFormat.PDF);
// Dispose of resources
doc.Dispose();
Imports Spire.Doc
' Create a Document object
Private doc As New Document()
' Load a Word document
doc.LoadFromFile("C:\Users\Administrator\Desktop\Sample.docx")
' Save the document to PDF
doc.SaveToFile("ToPDF.pdf", FileFormat.PDF)
' Dispose of resources
doc.Dispose()
Bu yaklaşım, ek bir kütüphaneyi (Spire.Doc) satın almayı ve yönetmeyi gerektirir ve maliyeti ve karmaşıklığı artırır.
IronPDF, doğrudan DOCX'ten PDF'ye dönüşüm için yerleşik destek sunar ve bu görevi yürütmek için ek kütüphanelere ihtiyaç duymadan zaman kazandırır. Spire.PDF, diğer yandan, DOCX'ten PDF'ye dönüştürmeyi doğrudan ele alamaz ve DOCX dosyalarını PDF'ye dönüştürmek için Spire.Doc kütüphanesini gerektirir.
Performans Metrikleri Ne Gösteriyor?
Testlere ve kullanıcı geri bildirimlerine dayanarak, işte kütüphaneler gerçek dünya kullanımında nasıl karşılaştırılır:
Render Performansı
Spire.PDF, basit düzenler için statik tablolar veya temel stil yüklü metinler gibi basit içerikler için optimize edilmiştir, bu da bu kullanım alanlarında hızlı ve verimli olmasını sağlar. Ancak, modern CSS3 özellikleri, JavaScript veya duyarlı düzenler içeren karmaşık HTML ile uğraşırken, IronPDF'nin Chrome tabanlı motoru daha doğru sonuçlar sağlar, ancak bu da biraz daha yüksek render zamanları anlamına gelir.
Bellek Kullanımı
Spire.PDF, IronPDF'ye (150-200MB) karşı daha az bellek kullanır (80-120MB), daha basit render motoru nedeniyle. Ancak bu, render doğruluğu ve özellik desteği pahasına gelir. Belleğin kritik olduğu ve HTML karmaşıklığının minimal olduğu uygulamalar için, Spire.PDF avantajlı olabilir.
İş Parçacığı ve Async Desteği
IronPDF, modern .NET uygulamaları için uygun hale getirerek RenderHtmlAsPdfAsync() gibi metodlarla yerel async/await desteği sağlar. Spire.PDF, süt iş parçacığı yönetimi ile manuel iş parçacığı yönetimi gerektirir, bu da çok iş parçacığına sahip uygulamalarda karmaşıklık katar.
Fiyatlandırma ve Lisans Modelleri Nasıl Karşılaştırılır?
IronPDF Fiyatlandırma ve Lisanslama
IronPDF, lisans satın alma seçenekleri ve ek özellikler sunar. Geliştiriciler, iki fiyatına Iron Software'ın tüm ürünlerine erişim sağlayan Iron Suite'i de satın alabilir. Bir lisans satın almaya hazır değilseniz, IronPDF 30 gün boyunca süren bir ücretsiz deneme sunar.
Fiyatlandırma (2025 itibarıyla):
- Süresiz lisanslar: Ekibinizin büyüklüğüne, projenizin gereksinimlerine ve konum sayısına bağlı olarak çeşitli süresiz lisanslar sunar. Her lisans türü e-posta desteği ile birlikte gelir.
- Lite License: Bu lisansın maliyeti $799 ve bir geliştirici, bir konum ve bir projeyi destekler.
- Plus License: Üç geliştirici, üç konum ve üç projeyi destekleyen bu, lite lisansından bir sonraki adımdır ve maliyeti $1,199. Plus lisansı, temel e-posta desteğine ek olarak sohbet desteği ve telefon desteği sunar.
- Professional License: Daha büyük ekipler için uygun olan bu lisans, on geliştirici, on konum ve on projeyi $2,399 için destekler. Önceki katmanlarla aynı iletişim desteği kanallarını sunar ancak ayrıca ekran paylaşımı desteği de sunar.
- Telif ücretsiz yeniden dağıtim: IronPDF'nin lisansı aynı zamanda ekstra $2,399 için telif ücretsiz yeniden dağıtim kapsamı sunar.
- Bölünmeyen ürün destegi: IronPDF, devam eden ürün güncellemelerine, güvenlik özellik güncellemelerine ve mühendislik ekibinden destek erişimi sunar, ya $999/yıl ya da 5 yıllık kapsam için tek seferlik $1,999'lık satın alımla.
- Iron Suite: $1,498 için IronPDF, IronOCR, IronWord, IronXL, IronBarcode, IronQR, IronZIP, IronPrint ve IronWebScraper dahil tüm Iron Software urunlerine erişim sağlarsınız.
IronPDF, süreli lisans ve kapsamlı destek içeren esnek lisanslama seçenekleri sunar
Spire.PDF Fiyatlandırma ve Lisanslama
Spire.PDF, ihtiyaçlarınıza bağlı olarak çeşitli lisanslar sunar.
- Ücretsiz sürüm: Spire.PDF, 10 PDF sayfası ile sınırlı ücretsiz bir sürüm sunar; bunun ötesinde, ücretli bir lisans satın almanız gerekecektir.
- Geliştirici Aboneliği: Destek türüne bağlı olarak yıllık $999 veya $1,199 fiyatla fiyatlandırılan bu seçenek, PDF ile ilgili özellikler oluşturması gereken ancak OEM dağıtım haklarına ihtiyaç duymayan geliştiriciler içindir.
- Geliştirici OEM Aboneliği: Fiyatı yıllık $2,549 - $4,248 arasında değişmektedir ve ihtiyaç duyduğunuz destek miktarına bağlı olarak değişir, ücretsiz güncellemeler, premium destek ve uygulamayı son kullanıcılara dağıtma becerisini içerir.
- Site Küçük İşletme: Destek istediğinize bağlı olarak fiyatı $4,599 veya $7,598 olmak üzere bu lisanslama seviyesi 1 yıl güncellemeler ve çevrimiçi teknik kaynaklar ile birlikte 10 geliştiriciye kadar ve 10 konuma kadar destekler.
- Site OEM Aboneliği: İhtiyacınız olan desteğe bağlı olarak yıllık $13,088 - $16,687 masrafı vardır ve birden çok konumda dağıtım yapması gereken büyük işletmeler için tasarlanmıştır.
Hangi Kütüphane Daha İyi Belgeler ve Destek Sunuyor?
IronPDF
IronPDF, geniş kapsamlı dokümantasyon ve destek sağlamada mükemmeldir:
- Kapsamlı Belgeler: Tüm özellikleri kapsayan, kullanıcı dostu kapsamlı belgeler sunar.
- 24/5 Destek: Aktif mühendis desteği mevcuttur.
- Video Eğitimleri: YouTube'da adım adım video eğitimleri mevcuttur.
- 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.
- PDF API referansı: Araçlarımızdan en iyi şekilde yararlanabilmeniz için API referansları sunar.
Daha fazla bilgi için, IronPDF'nin kapsamlı belgelerine göz atın ve Iron Software YouTube Kanalı'nı ziyaret edin.
.NET için Spire.PDF Belgeleri ve Destek
- Forumlar: Spire.PDF, kullanıcıların birbirleriyle etkileşimde bulunabileceği, ipuçlarını, kullanımları ve karşılaşılan sorunları paylaşabileceği bir forum içerir.
- Kodu Örnekleri: Spire.PDF, urunun çeşitli kullanim senaryolarinda nasıl kullanilacagini göstermek icin web sitesinde kod örnekleri sunar.
- Haber Bultenleri: Spire.PDF, günceleme duyurulari ve diğer onemli bilgiler icin bir geliştirici haber bulteni sunar.
- Destek: Destek oncelikle forumlar araciligiyla sunulur ve lisans surumune bagli olarak ek ucret ile e-posta/telefon destegi saglanir.
Yaygin Geliştirici Deneyimleri ve Geri Bildirimleri Nelerdir?
Topluluk geri bildirimi ve gerçek dunyada kullanim temelinde:
IronPDF Geri Bildirimi
Geliştiriciler, IronPDF'nin 'orijinal HTML sayfasinin daha kapsamli ve kesin bir temsilini' sundugu icin surekli olarak ovunuyor. Kutuphanenin karmasik CSS3 yerlesimlerini, JavaScript agirlikli sayfalari ve modern web cercevelerini yonetebilmesi, yuksek kalitede PDF oluşturmayi gerektiren uygulamalar icin tercih edilen bir secim haline getiriyor.
Yaygin olumlu noktalar sunlardir:
- Geliştirme suresini azaltan sezgisel API tasarimi
- Tarayici ciktilari ile uyumlu mükemmel render kalitesi
- Pratik örneklerle birlikte kapsamli belgeleme
- Duyarlı teknik destek
Spire.PDF Geri Bildirimi
Topluluk geri bildirimi, 'Spire'in sadece bir resim olan bir PDF dosyasi oluşturdugunu' gösteriyor. Bazi css kodlari bile dogru degildir, ornegin kalin yazilari gozardi etmesi. Ek olarak, JavaScript destegi, resmi destek yanitlarina gore, 'o kadar zor ki kisa surede tamamlanmiyor' denilen planli bir özellik olarak kaldigini gösteriyor.
Yaygin sorunlar sunlardir:
- Sinirli CSS3 ve modern web standardi destegi
- JavaScript calistirma yetenegi eksikligi
- HTML donusumu icin karmasik is parcacigi gereksinimleri
- Bazi özellikler icin ek kutuphanelere ihtiyaç duyulmasi
Her Kutuphane Ne Zaman Secilmeli?
IronPDF'i Şu Durumlarda Seçin:
- HTML'niz modern CSS3, JavaScript veya duyarlı tasarım içeriyor
- Tarayıcı çıktısını eşleştiren piksel mükemmelliğinde render gereksinimi
- Çapraz platform dağıtımı gereklidir (Linux, macOS, Docker)
- Lisansinizla birlikte kapsamli destek istiyorsunuz
- Ek kutuphaneler olmadan DOCX donusumu gibi dahili özellikler gereksinimi
- Ekibiniz hızlı gelişime ve minimizede edilmiş koda değer veriyorsa
Spire.PDF'i Tercih Edin:
- PDF dosyalarını yalnızca temel HTML ile basit stillendirme içeren olarak oluştururken
- Bellek kullanımı kritikse
- Çalışma alanınız genellikle Windows ise
- HTML'niz JavaScript çalıştırma gerektirmiyorsa
- Yığınızdaki diğer Spire urunlerini zaten kullanıyorsanız
Sonuç
Sonuç olarak, IronPDF ve Spire.PDF for .NET, .NET uygulamalarında PDF belgelerini işlemek için her ikisi de yetenekli araçlardır. IronPDF, kullanım kolaylığı, çapraz platform uyumluluğu ve modern web standartları desteği ile öne çıkar ve PDF belgeleriyle çalışırken seviyenizi artırmayı düşünüyorsanız tercih sebebidir. Spire.PDF kapsamlı bir özellik seti sunmasına rağmen karmaşık işler için daha fazla çaba gerektirebilir ve modern web uygulamalarının talep ettiği render hassasiyetinden yoksundur.
Modern web teknolojileriyle çalışan, doğru HTML'den PDF'ye dönüşüm gereksinimi olan veya güvenilir çapraz platform desteği arayan geliştiriciler için IronPDF daha kapsamlı bir çözüm sunar. Chrome tabanlı render motoru, sezgisel API'si ve kapsamlı desteği, onu kurumsal uygulamalar ve karmaşık belge oluşturma senaryoları için özellikle uygun kılar.
30 günlük ücretsiz deneme ile mevcut özelliklerini deneyebilirsiniz.
Sıkça Sorulan Sorular
HTML'yi C#'de PDF'ye nasıl dönüştürebilirim?
HTML dizgilerini PDF'lere dönüştürmek için IronPDF'nin RenderHtmlAsPdf yöntemini kullanabilirsiniz. Ayrıca RenderHtmlFileAsPdf kullanarak HTML dosyalarının PDF'lere dönüştürülmesini de sağlayabilirsiniz.
IronPDF, HTML'den PDF'ye dönüştürme sırasında JavaScript yürütmeyi destekliyor mu?
Evet, IronPDF tam JavaScript yürütmesini destekler, bu da dinamik içerikleri veya JavaScript'e bağımlı yerleşimleri PDF'ye dönüştürmek için idealdir.
IronPDF tarafından PDF dönüştürme için desteklenen platformlar nelerdir?
IronPDF, Windows, Linux, macOS, Docker ve Azure, AWS gibi bulut hizmetlerini içeren birden fazla platformda yerel destek sunar.
IronPDF'nin bellek kullanımı Spire.PDF ile nasıl karşılaştırılır?
IronPDF, tipik olarak 150-200MB arasında daha fazla bellek kullanır, Spire.PDF'nin 80-120MB'sine göre fakat daha iyi render kalitesi ve modern async/await kalıplarını destekler.
IronPDF, DOCX dosyalarını doğrudan PDF'ye dönüştürebilir mi?
Evet, IronPDF, DocxToPdfRenderer sınıfı sayesinde ek kütüphaneler gerektirmeden DOCX'den PDF'ye dönüştürme yeteneklerine sahiptir.
IronPDF için lisanslama seçenekleri nelerdir?
IronPDF, tek geliştiriciler için 749 dolardan başlayan süresiz lisanslar sunar ve tüm özellikleri ile desteği içerir. Ayrıca 9 üründen oluşan Iron Suite paketi 1.498 dolara sunulur.
IronPDF ne tür destek sunar?
IronPDF, tüm lisanslarla birlikte e-posta, sohbet, telefon ve ekran paylaşımı ile 24/5 mühendislik desteği sağlar, kapsamlı bir destek sunar.
IronPDF ile PDF güvenliğini ve şifrelemeyi nasıl sağlama alabilirim?
IronPDF, SecuritySettings sınıfı aracılığıyla AES-256 şifreleme ve parola koruması sağlar, PDF izinleri üzerinde ayrıntılı kontrol sağlar.
IronPDF modern CSS ile karmaşık web sayfalarını render etmek için uygun mu?
Evet, IronPDF, CSS3, flexbox, grid yerleşimleri, web fontları ve JavaScript'i destekleyen tam bir Chrome render motoru kullanır; bu, karmaşık web sayfaları için uygundur.
IronPDF'nin ücretsiz sürümünün sınırlamaları nelerdir?
IronPDF, satın almadan önce tüm özelliklerini test etmek için sayfa sınırı olmayan 30 günlük tam işlevsel bir ücretsiz deneme sunar.
IronPDF, yüksek kaliteli HTML render'ını nasıl sağlar?
IronPDF, Chrome tarayıcısının çıktısını aynen eşleştiren piksel mükemmel render'lar sunarak orijinal HTML içeriğinin yüksek hassasiyetli ve doğru temsilini sağlar.



