PDFSharp HTML to PDF Örneği ve Eğitimleri Karşılaştırması
HTML'yi PDF'ye dönüştürmek, fatura ve raporların oluşturulmasından belge ve e-kitap üretimine kadar birçok .NET uygulaması için kritik bir gerekliliktir. HTML'den PDF'ye dönüşüm ihtiyaçlarınız için .NET ve Spire.PDF arasında seçim yaparken, yeteneklerini, sınırlamalarını ve gerçek dünyadaki performanslarını anlamak önemlidir. Bu kapsamlı karşılaştırma, her iki kütüphanenin yeteneklerini inceleyerek PDF oluşturma gereksinimleriniz için bilinçli bir karar vermenize yardımcı oluyor.
HTML'den PDF'ye Dönüşümde IronPDF ve Spire.PDF Arasındaki Temel Farklılıklar Nelerdir?
.NET, PDF dosyalarını dönüştürme, PDF düzenleme, PDF oluşturma, PDF dosyalarını okuma ve daha fazlası gibi geniş bir yelpazede PDF ile ilgili görevleri ele almak için tasarlanmış esnek bir .NET PDF kütüphanesidir. Mevcut .NET uygulamalarına entegrasyonunun kolaylığı, yüksek performansı ve HTML5, CSS3 ve JavaScript gibi modern web standartlarını desteklemesi ile bilinir. .NET'nin Chrome tabanlı render motoru, HTML içeriğinden piksel mükemmel PDF oluşturmayı sağlar.
Spire.PDF for .NET, PDF oluşturma ve manipülasyonu için kapsamlı bir dizi özellik sağlayan başka bir güçlü .NET PDF kütüphanesidir. Metin ve görüntü çıkarma, PDF form doldurma ve dijital imzalar gibi çeşitli PDF işlevselliklerini destekler. Kapsamlı özelliklere sahip olsa da, HTML'den PDF'ye dönüşüm yeteneklerinin geliştiriciler tarafından dikkate alınması gereken belirli sınırlamaları vardır.
| Kategori | Özellik/Aspect | IronPDF | Spire.PDF | Ana Avantaj |
|---|---|---|---|---|
| Çekirdek Mimari | Tasarım Felsefesi | Sadelik öncelikli, sezgisel API'lar | Çok sınıflı yaklaşım, manuel kurulum | IronPDF: Daha hızlı geliştirme |
| API Karmaşıklığı | RenderHtmlAsPdf() gibi basit yöntemler |
Çok iş parçacıklı yaklaşım gereklidir | IronPDF: Daha basit API | |
| Öğrenme Eğrisi | Düşük | Orta- Yüksek | IronPDF: Daha hızlı benimseme | |
| Platform Desteği | Çapraz Platform | Yerel destek, ek 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 İkisi: Geniş çerçeve desteği | |
| İşletim Sistemleri | Windows, Linux, macOS, Docker yerel | Öncelikle Windows odaklı | IronPDF: Daha geniş OS desteği | |
| HTML'den PDF'e | Renderleme Motoru | Tam Chrome V8 motoru | Özel HTML ayrıştırıcı | IronPDF: Yüksek tarayıcı sadakati |
| CSS3/HTML5 Desteği | Tam destek | Sınırlı (sadece temel CSS) | IronPDF: Modern web standartları | |
| JavaScript Yürütme | Tam JavaScript desteği | Sınırlı JavaScript desteği | IronPDF: Dinamik içerik hazır | |
| Web Yazı Tipleri | Google Yazı Tipleri, sistem yazı tipleri | Sınırlı font desteği | IronPDF: Tipografi esnekliği | |
| İşleme Hızı | Chrome işlemi nedeniyle basit HTML için biraz daha yavaş | Basit/statik HTML için daha hızlı | Spire: Temel HTML için daha düşük yük | |
| Security & Encryption | Şifreleme Seviyeleri | AES-256, özel işlemciler | AES-256 standart | Her ikisi de: Endüstri standardı |
| API Basitliği | Tek SecuritySettings sınıfı |
Birden fazla güvenlik yöntemi | IronPDF: Birleştirilmiş yaklaşım | |
| İçerik Manipülasyonu | Yeniden Değerlendirme Yöntemi | Gerçek içerik kaldırma, tek satırlık API | Manuel dikdörtgen bindirme | IronPDF: Uyumlu |
| Filigranlama | HTML/CSS tabanlı, tam stil | Dönebilen metin tabanlı | IronPDF: Zengin filigranlar | |
| Dosya Dönüştürmeleri | DOCX'ten PDF'ye | Dahili DocxToPdfRenderer |
Spire.Doc kütüphanesi gerektirir | IronPDF: Ekstra maliyet yok |
| Performans Ölçütleri | Bellek Kullanımı | Daha yüksek (Chrome motoru yükü) | Daha düşük (daha basit işleme motoru) | Spire: Daha düşük bellek ayak izi |
| İş parçacığı desteği | Yerel async/await optimizasyonu | STA iş parçacığı gerekli | IronPDF: Modern async desenleri | |
| Geliştirici Deneyimi | Kod Örnekleri | 100+ çalışmaya hazır örnek | Temel örnekler | IronPDF: Kapsamlı kaynaklar |
| Hata Mesajları | Açıklayıcı, eyleme geçirilebilir | Teknik mesajlar | IronPDF: Daha iyi hata ayıklama | |
| Licensing & Pricing | Giriş Seviyesi | Lite: $999 (1 geliştirici, 1 proje) | Geliştirici: $999/yıl (1 geliştirici) | IronPDF: Süresiz lisans |
| Team License | Plus: $1,499 (3 geliştirici, 3 proje) | Site Enterprise: $4,599/year | IronPDF: Daha iyi ekip değeri | |
| Süit Seçeneği | Iron Suite: $2,998 (10 products) | Süit 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 seviyeler) | IronPDF: Daha fazla kanal | |
| En İyi Kullanım Alanı | Kullanım Durumları | Modern web uygulamaları, karmaşık HTML/CSS | Basit belgeler, temel düzenler | Bağlama bağlı |
IronPDF hakkında daha ayrıntılı bilgi için ironpdf.com adresini ziyaret edin.
Kütüphaneler Arasında Çapraz Platform Uyumluluğu Nasıl Karşılaştırılır?
IronPDF
.NET, geniş çapraz platform uyumluluğu ile öne çıkıyor. .NET çerçevesi içinde geniş bir ortam yelpazesini destekleyerek, farklı platformlarda sorunsuz çalışma sağlar. Aşağıda .NET'nin platform uyumluluğunun bir özeti bulunmaktadır:
-
.NET sürümleri:
- Tamamen C#, VB.NET ve F#'da yazılmış ve 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.
- Geliştirme Ortamları: Microsoft Visual Studio ve JetBrains Rider & ReSharper gibi geliştirme ortamlarıyla çalışır
- İşletim Sistemleri ve İşlemciler: Windows, Mac, Linux, x64, x86, ARM gibi çeşitli işletim sistemlerini ve işlemcileri destekler
IronPDF'nin uyumluluğu hakkında daha fazla bilgi için IronPDF Özellikleri Sayfasına bakın.
Spire.PDF
Spire.PDF, .NET ortamında tam destek sunar, ancak Windows işletim sistemi içinde çalışırken, .NET'nin sahip olduğu Linux ve macOS için yerel desteğe sahip değildir. macOS veya Linux üzerinde dağıtım yaparken, 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# ile yazılmış, VB.NET desteğiyle
- Uygulama Ortamları: Spire.PDF, Windows ve ASP.NET uygulamaları gibi çeşitli uygulama ortamlarında çalışır. Ayrıca Windows Forms'u da destekleyebilir.
Hangi Kütüphane PDF Dönüşüm Özelliklerini Daha İyi Sunar?
IronPDF Özellikleri
- PDF dönüşümü: IronPDF HTML'yi PDF'ye dönüştürebilir. Modern web standartlarına tam desteği ile, IronPDF'nin HTML içeriğinizden her zaman piksel mükemmel PDF'ler döndüreceğinden emin olabilirsiniz. IronPDF ayrıca DOCX, resimler, RTF gibi diğer formatlardan PDF dosyalarını dönüştürebilir.
- PDF Oluşturma: IronPDF ile URL'ler, ASPX dosyaları veya HTML dizgilerinden PDF'ler oluşturabilirsiniz.
- Güvenlik özellikleri: IronPDF ile herhangi bir hassas PDF dosyasının güvenliğinden güvenlik özellikleri sayesinde her zaman emin olabilirsiniz. IronPDF'yi kullanarak PDF dosyalarınızı şifreleyin, parolalar ayarlayın 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ı kolayca okuyabilirsiniz. IronPDF, başlık ve altbilgiler ekleme, PDF sayfalarına metin ve görüntü damgalama, PDF'ye özel filigran ekleme, PDF formlarıyla çalışma ve PDF dosyalarını bölme veya birleştirme gibi düzenleme özellikleri sunar.
- Entegrasyon: ASP.NET ve MVC uygulamaları ile kesintisiz entegrasyon sağlar.
- PDF sürüm desteği: PDF sürüm 1.2-1.7'i destekleyebilir
IronPDF özelliklerinin kapsamlı bir listesi için IronPDF Özellikleri adresine bakın.
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ını doldurun ve yönetin.
- PDF Dönüşümü: PDF'leri HTML, RTF ve görüntüler gibi diğer formatlara dönüştürün.
- Sayfa Manipülasyonu: Bir PDF'de sayfa ekleyin, silin ve yeniden sıralayın.
- Sınırlı HTML Desteği: HTML'den PDF'ye motor, modern CSS ve JavaScript için sınırlı destek sunar. Varsayılan dönüşüm yolu, CSS sayfa kesme özellikleri ve harici CSS dosyası tanıması ile ilgili kısıtlamalara ve JavaScript yürütme desteği sınırlamalara sahiptir. Geliştirilmiş işleme için isteğe bağlı bir ChromeHtmlConverter eklentisi mevcuttur.
Bootstrap ve Modern CSS Çerçeve Renderı
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 güveniyor. PDF oluşturma kütüphaneleri, profesyonel belge kalitesini ve tasarım tutarlılığını korumak için bu çerçeveleri doğru bir şekilde dönüştürmelidir.
IronPDF: Tam Bootstrap ve Tailwind Desteği
IronPDF'nin Chromium motoru, tüm modern CSS çerçeveleri için tam destek sunar:
- Bootstrap 5: Tüm duyarlı bileşenlerle 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ı odaklı sınıflar ve duyarlı değiştiriciler
- Foundation: Tam grid ve bileşen sistemleri
- Modern CSS3: Esnek kutu, Grid, özel özellikler, animasyonlar ve dönüşümler
Gerçek örneklerle kanıtlanmıştır: Bootstrap ana sayfası ve Bootstrap şablonları piksel mükemmelliğinde doğrulukla dönüştürülür.
Kod Örneği: Bootstrap ile Ekip Ü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 grid, flexbox hizalaması, duyarlı görüntüler ve düğme bileşenlerinin hepsinin doğru bir şekilde PDF olarak rendere edildiği profesyonel bir ekip sayfası.
Spire.PDF: Sınırlı HTML ve Modern Çerçeve Desteği
Spire.PDF'nin HTML-to-PDF motoru, belgelerinden de anlaşıldığı gibi modern CSS çerçeveleri için önemli sınırlamalara sahiptir:
- Sınırlı CSS Desteği: Temel CSS yalnızca; kapsamlı CSS3 özellikleri için sınırlı destek
- Sınırlı Flexbox Desteği: Bootstrap 4/5 özellikle flexbox'a dayanmaktadır ve bu, düzen doğruluğunu etkileyen sınırlı destek sunar
- Sınırlı CSS Grid Desteği: CSS Grid kullanan modern düzen sistemleri doğru şekilde render edilemeyebilir
- JavaScript Sınırlamaları: Modern tarayıcılara kıyasla sınırlı JavaScript uygulaması
- Bootstrap 3 En Güvenilir: Daha eski tablo tabanlı Bootstrap sürümleri, Bootstrap 4/5'ten daha güvenilir çalışır
- Karmaşık Düzenler Geçici Çözümler Gerektirebilir: Modern duyarlı tasarımlar önemli ayarlamalar gerektirebilir
Spire.PDF HTML dönüştürme ile ilgili geliştirici rapor edilen sorunlar:
- Bootstrap navigasyon barları düzen sorunlarıyla rendere edilir
- Flexbox ile kart bileşenleri doğru hizalanmaz
- PDF çıktısında duyarlı grid kesme noktaları göz ardı edilir
- Modern CSS özellikleri, manuel CSS yeniden yazımlarını veya geçici çözümleri gerektirir
Geliştirme Etkisi: Bootstrap 4+ veya modern CSS çerçevelerini kullanan uygulamalar, Spire.PDF ile önemli zorluklarla karşılaşır. Geliştirme ekipleri şu adımları atmalıdır:
- Yalnızca PDF oluşturma için özel tamamlanmış CSS'yi koruyun (çift bakım gerektirir)
- Bootstrap 3'e düşürün veya çerçeveleri tamamen terk edin (modern özellikleri kısıtlar)
- Her bileşeni kapsamlı bir şekilde test edin ve manuel olarak düzeltin (zaman alıcı ve kırılgandır)
Modern CSS çerçeve desteği gerektiren projeler için, Spire.PDF'nin HTML işleme sınırlamaları, önemli ek geliştirme çabası ve sürekli bakım yükü olmadan uygun olmayan hale getirir.
Bootstrap uyumluluğuna ilişkin ayrıntılı bilgi için Bootstrap & Flexbox CSS Rehberine bakın.
Yaygın PDF Görevleri İçin Kod Örnekleri Nasıl Karşılaştırılır?
.NET ve Spire.PDF for .NET'un yeteneklerini göstermek için, birkaç önemli PDF işlevselliğinin nasıl uygulandığını kod örnekleriyle karşılaştıracağız ve bu özelliklerin PDF projelerinize nasıl yardımcı olabileceği konusunda size fikir verecek.
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 içindeki ChromePdfRenderer sınıfı, HTML içeriğini render etmek için tam bir Chrome tarayıcı motorunu kullanır. Bu, CSS3 animasyonlarının, JavaScript yürütmesinin ve modern web fontlarının Chrome'da olduğu gibi aynı şekilde rendere edildiği anlamına gelir. RenderHtmlAsPdf() yöntemi, harici varlıkları yüklemek için HTML dizeleri ve isteğe bağlı temel yollar kabul eder, bu da hem basit hem de karmaşık HTML belgelerini dönüştürmeyi kolaylaştırır. Rendercı ileri render seçeneklerini destekler, özel kağıt boyutları, kenar boşlukları ve JavaScript gecikme ayarları dahil.
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'in HTML'yi PDF'e dönüştürmesi, PdfDocument, PdfPageSettings ve PdfHtmlLayoutFormat dahil olmak üzere birden fazla nesne oluşturmayı gerektirir. Dönüşüm, tek bir iş parçacığı dairesel yönetim (STA) iş parçacığında yürütülmelidir, bu da uygulamaya karmaşıklık katar. Kullanıcılar, "Spire'ın yalnızca bir resim olan bir PDF dosyası oluşturduğunu" bildirmişlerdir. Bazı css bile doğru değildir; kalın fontları göz ardı etme gibi", bu da CSS render doğruluğundaki sınırlamaları belirtir.
IronPDF, Chrome'un render motorunu yüksek hassasiyetli HTML'den PDF'ye dönüşüm için kullanır ve modern web standartları desteği sayesinde web içeriğini doğru şekilde temsil eder. Spire.PDF de sağlam bir HTML'den PDF'ye dönüşüm sunar ancak IronPDF'nin render hassasiyetine eşleşmeyebilir ve daha uzun, daha manuel bir yaklaşım gerektirir.
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")
.NET'in SecuritySettings sınıfı, PDF güvenliğini yönetmek için kapsamlı bir API sunar. Bireysel izinleri boolean özellikleri ile kontrol edebilir, farklı baskı hakları seviyeleri belirleyebilir ve şifreleri diğer güvenlik ayarlarından ayrı olarak yönetebilirsiniz. API tasarımı, PdfPrintSecurity gibi kesin türdeki numaralandırmalarla .NET geleneklerine uyar. Dokümantasyonda 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 bitwise bayraklarla Security.Encrypt() yöntemini 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, şifreli PDF belgelerinin okunabilirliğini ayarlamak için kullanılabilir yöntemler sağlar. IronPDF, PDF'nin güvenlik ayarları üzerinde tam kontrol sağlarken, yine de basit bir yaklaşım sunar. Spire.PDF, izin ayarları için daha kısa bir süreç sunar ancak hala ek seçenekler içerir.
PDF İçeriğini Gizlemek İçin Hangi Seçenekler Var?
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 uygulayan özel bir gizleme API'si sağlar, sadece görsel maskeleme değil. RedactTextOnAllPages() yöntemi, belirli metni arar ve kalıcı olarak siler, veri koruma düzenlemelerine uyumu sağlar. Ek yöntemler belirli sayfalarda veya alanlarda gizleme yapmayı sağlar.
Spire.PDF için Dikdörtgen Bindirme ile Gizleme Örneği:
Henüz Spire.PDF'nin özel bir gizleme aracı yoktur, içerik hala aşağıda gösterildiği gibi manual bir süreç kullanılarak gizlenebilir:
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 manual yaklaşım, her gizleme alanı için tam koordinatların hesaplanmasını gerektirir ve gerçek içerik kaldırma yerine sadece görsel maskeleme sağlar. Altyapı metni hala PDF düzenleme araçlarıyla çıkarılabilir olabilir.
IronPDF, güçlü ama basit bir şekilde, gizleme aracını basitleştirir. Spire.PDF'nin yerleşik bir gizleme aracının bulunmaması nedeniyle, gizleme için daha fazla manuel işlem gerektirir ve bu da potansiyel olarak daha az verimli iş akışları oluşturur.
PDF Belgelerini Nasıl İmzalayabilirsiniz?
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")
.NET'nin dijital imza uygulaması, .NET sertifika yönetim kalıplarını takip eder. Sınıf PdfSignature, standart X509Certificate2 nesnelerini kabul eder ve PDF imzalamayı karmaşıklıklarını dahili olarak yönetir. 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 kapsamlı kontrol sağlar ancak önemli ölçüde daha fazla kod gerektirir. Etiketin her birini manuel olarak ayarlamanız, imzayı kesin olarak konumlandırmanız ve görsel bileşenleri ayrı ayrı yapılandırmanız gerekmektedir.
PDF'lerin dijital olarak imzalanması, çeşitli ayarların yanı sıra yeni bir projeye yalnızca imza atmak için kullanılarak PDF belgelerini doğrulamak için yararlı olabilir. IronPDF, imzalama sürecinin otomasyonunu kolaylaştırarak dijital imza eklemeyi basit bir hale getirir. Spire.PDF, PDF'ler için dijital imzaları da destekler; ancak, süreç daha manuel olabilir ve uygulanması için daha fazla çaba gerektirebilir.
PDF'lere filigran eklemek için hangi yöntemler mevcuttur?
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'in filigran ekleme özelliği, HTML içeriği kabul eder ve stil vermek için CSS kullanmanıza olanak tanır. ApplyWatermark() yöntemi, döndürme açısı ve hizalama için parametreler sağlar, bu da filigranların hassas bir şekilde konumlandırılmasını kolaylaştırır. özel filigranlar ve ileri düzey 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'in filigran eklemesi, konumlandırma ve döndürme için koordinat sistemi dönüşümleri kullanılarak manuel hesaplama gerektirir. Bu ince bir kontrol sağlar, ancak grafik programlama kavramlarının anlaşılmasını gerektirir.
IronPDF, filigran metinlerini eklemek için kolay bir yöntem sunar ve filigranın konumu ve tasarımı üzerinde tam kontrol sağlar. IronPDF'in HTML ve CSS kullanımı, bu dillere deneyiminiz varsa süreci daha da kolaylaştırır. Spire.PDF'in yaklaşımı, daha uzun ve daha el ile işlem gerektiren ama tasarım ve konum üzerinde tam kontrol sağlayan güçlü bir filigran ekleme aracı sunar.
PDF'lerde Görüntü ve Metin Mühürleme Nasıl Yapılır?
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'in damgalama API'si, farklı damga türleri için özel sınıflar kullanır. TextStamper, Google Yazı Tiplerini UseGoogleFont özelliği aracılığıyla doğrudan desteklerken, ImageStamper URL'lerden veya yerel dosyalardan görüntü yükleyebilir. Her iki mühürleyici de tutarlı bir konumlandırma için ortak hizalama özelliklerini paylaşır. mühürleme seçeneklerini keşfedin, HTML mühürleyiciler ve barkod entegrasyonu dahil.
Spire.PDF (Metin Mühürleme Ö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, her etki için manuel dönüşümlerle doğrudan tuval manipülasyonu gerektirir. Karmaşık mühürler oluşturmak, grafik durum yönetimi ve koordinat dönüşümünü anlamayı gerektirir.
IronPDF'in metin ve görüntü mühürleme aracı, damgalı içeriği uygularken HTML ve CSS'ye benzer bir yaklaşımı takip eden güçlü ve kullanımı kolay bir mühürleme aracıdır. Spire.PDF de temel bir metin mühürleme aracı sunar, ancak mühürlü metni PDF dosyalarınıza uygulamak için daha fazla çaba gerektirir.
Hangi Kütüphane DOCX'ten PDF'ye Dönüşümü Daha İyi Ele Alır?
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üştürmesini yerel olarak ele alan özel bir DocxToPdfRenderer sınıfı içerir. API, IronPDF'deki diğer işleme sınıflarıyla tutarlıdır ve temel dönüşüm için sadece iki satır kod gerektirir. Sayfa ayarları ve formatlama için gelişmiş seçenekler, işleyicinin özellikleri aracılığıyla mevcuttur. DOCX'ten PDF'ye dönüşüm özellikleri hakkında daha fazla bilgi edinin.
Spire.PDF Kullanarak DOCX'i PDF'ye Dönüştürmek için Spire.Doc Kullanımı:
Spire.PDF, DOCX'i PDF'ye dönüştüremez; ancak, bu dönüşümü ele almak için Spire.Doc kütüphanesi kullanılabilir ve ardından ortaya çıkan PDF üzerinde çalışmak için Spire.PDF kullanılabilir.
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üphane (Spire.Doc) satın almayı ve yönetmeyi gerektirir, bu da maliyeti ve karmaşıklığı artırır.
IronPDF, doğrudan DOCX'ten PDF'ye dönüşümü yerleşik olarak destekler, yani bu görevi ele almak için ek kütüphanelere ihtiyaç duymadan zaman kazandırır. Öte yandan, Spire.PDF, DOCX'ten PDF'ye dönüşümü doğrudan ele alamaz, DOCX dosyalarını PDF'ye dönüştürmek için Spire.Doc kütüphanesini gerektirir.
Performans Metrikleri Neleri Ortaya Koyuyor?
Testlere ve kullanıcı geri bildirimlerine dayanarak, kütüphanelerin gerçek dünyadaki kullanımları şöyle karşılaştırılıyor:
İşleme Performansı
Temel düzenler için, Spire.PDF, statik tablolar veya temel stilli metin gibi basit içerikler için optimize edilmiştir ve bu kullanım durumları için hızlı ve etkilidir. Ancak, modern CSS3 özelliklerini, JavaScript'i veya duyarlı düzenleri içeren karmaşık HTML ile uğraşırken, IronPDF'in Chrome tabanlı motoru, biraz daha uzun işleme süreleri pahasına, daha doğru sonuçlar sağlar.
Bellek Kullanımı
Spire.PDF, daha basit bir işleme motoruna sahip olduğundan IronPDF'ye kıyasla genellikle daha az bellek kullanır. Ancak, bu durum işleme doğruluğu ve özellik desteği maliyetine gelir. Belleğin kritik olduğu uygulamalarda ve HTML kompleksliğinin minimal olduğu durumlarda, Spire.PDF avantajlı olabilir.
İş Parçacığı ve Asenkron Destek
.NET, modern .NET uygulamaları için uygun hale getiren, RenderHtmlAsPdfAsync() gibi yöntemlerle yerel async/await desteği sağlar. Spire.PDF, STA iş parçacıkları ile manuel iş parçacığı yönetimi gerektirir, bu da çok iş parçacıklı uygulamalara ek karmaşıklık ekler.
Fiyatlandırma ve Lisanslama Modelleri Nasıl Karşılaştırıyor?
IronPDF Fiyatlandırma ve Lisanslama
IronPDF, satın alma lisansı için çeşitli seviyeler ve ek özellikler sunar. Geliştiriciler ayrıca, Iron Software'in tüm ürünlerine iki ürün fiyatına erişim sağlayan Iron Suite'i satın alabilirler. Lisans satın almaya hazır değilseniz, IronPDF, 30 gün süren ücretsiz deneme sunar.
Fiyatlandırma:
- 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 License: Bu lisans $999 maliyetindedir ve bir geliştirici, bir konum ve bir projeyi destekler.
- Plus License: Üç geliştirici, üç konum ve üç projeyi destekleyen; lite lisanstan sonraki adımdır ve maliyeti $1,499'dir. Plus lisans, temel email desteğine ek olarak sohbet ve telefon desteği sunar.
- Professional License: Daha büyük ekipler için uygun olan bu lisans, $2,999 için on geliştirici, on konum ve on projeyi 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 lisanslaması, 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 karşılığında, .NET, IronOCR, IronWord, IronXL, IronBarcode, IronQR, IronZIP, IronPrint ve IronWebScraper dahil olmak üzere tüm Iron Software ürünlerine erişim sağlarsınız.
IronPDF, süresiz lisanslarla birlikte esnek lisanslama seçenekleri ve kapsamlı destek sunar.
Spire.PDF Fiyatlandırma ve Lisanslama
Spire.PDF, ihtiyaçlarınıza bağlı olarak bir dizi lisans sunar.
- Ücretsiz sürüm: Spire.PDF 10 PDF sayfasıyla sınırlı bir ücretsiz sürüm sunar; bunun ötesinde, ücretli bir lisansı satın almanız gerekecektir.
- Geliştirici Aboneliği: Yıllık $999/ücretinde fiyatlandırılmış, PDF'le ilgili özellikler geliştirmesi gereken ancak OEM dağıtım haklarına ihtiyaç duymayan geliştiriciler için bir seçenek.
- Geliştirici OEM Aboneliği: Yıllık $2,999/ücretinde; ücretsiz güncellemeler, premium destek ve uygulamanın son kullanıcılara dağıtımını içerir.
- Site Enterprise Aboneliği: Yıllık $4,599/ücretinde fiyatlandırılmış; güncellemeler ve çevrimiçi teknik kaynaklarla birlikte birden fazla konumda birden fazla geliştiriciyi destekleyen bir lisanslama katmanı.
- Site OEM Aboneliği: Yıllık $13,088/ücretinde; uygulamaları birden fazla konuma dağıtması gereken daha büyük işletmeler için tasarlanmıştır.
Hangi Kütüphane Daha İyi Belgeler ve Destek Sağlıyor?
IronPDF
IronPDF, geniş kapsamlı dokümantasyon ve destek sağlama konusunda mükemmeldir:
- Kapsamlı Dokümantasyon: Tüm özellikleri kapsayan kapsamlı ve kullanıcı dostu dokü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.
- PDF API referansı: Araçlarımızın sunduğu her şeyden yararlanabilmeniz için API referansları sunar.
Daha fazla bilgi için IronPDF'in kapsamlı belgelerini inceleyin ve Iron Software YouTube Kanalını ziyaret edin.
Spire.PDF için .NET Dokümantasyon ve Destek
- Forumlar: Spire.PDF kullanıcıları, Spire.PDF ile ilgili ipuçlarını, kullanımları ve karşılaştıkları sorunları paylaşabilecekleri bir forum sunmaktadır.
- Kod Örnekleri: Spire.PDF, ürünü çeşitli kullanım durumlarında nasıl kullanacağınızı gösteren web sitesi üzerinde kod örnekleri sunar.
- Bültenler: Spire.PDF, güncelleme duyuruları ve diğer önemli bilgiler için bir geliştirici bülteni sunar.
- Destek: Destek öncelikle forumlar üzerinden sağlanmakta, hangi lisans sürümüne sahip olduğunuza bağlı olarak ek ücret karşılığında ücretli e-posta/telefon desteği sağlanmakta.
Geliştirici Deneyimleri ve Geri Bildirimler Nelerdir?
Topluluk geri bildirimi ve gerçek dünyadaki kullanıma dayalı:
IronPDF Geri Bildirim
Geliştiriciler sürekli olarak IronPDF'i "orijinal HTML sayfasının daha kapsamlı ve doğru bir temsilini" sağladığı için övüyorlar. Kütüphanenin karmaşık CSS3 düzenlerini, JavaScript ağırlıklı sayfaları ve modern web çerçevelerini işleyebilme yeteneği, yüksek doğrulukta PDF üretimi gerektiren uygulamalar için tercih edilen bir seçim haline getiriyor.
Ortak olumlu noktalar şunları içerir:
- Geliştirme süresini azaltan sezgisel API tasarımı
- Tarayıcı çıktısıyla eşleşen mükemmel işleme kalitesi
- Pratik örneklerle kapsamlı dokümantasyon
- Hızlı teknik destek
Spire.PDF Geri Bildirim
Topluluk geri bildirimi, "Spire'ın sadece bir resim olan bir PDF dosyası oluşturduğunu" gösteriyor. Bazı CSS'ler bile doğru değil, örneğin kalın yazı tiplerini görmezden geliyor. Ek olarak, Spire.PDF'nin varsayılan HTML dönüşüm yolunda JavaScript desteği sınırlıdır ve geliştiriciler dinamik içeriğin yetersiz yürütüldüğünü rapor etmektedir.
Ortak endişeler şunları içerir:
- CSS3 ve modern web standartlarına sınırlı destek
- JavaScript çalıştırma kabiliyetinin eksikliği
- HTML dönüştürme için karmaşık thread gereksinimleri
- Belirli özellikler için ek kütüphane gereksinimleri
Her Kütüphane Ne Zaman Tercih Edilmeli?
IronPDF'i Tercih Edin Ne Zaman:
- HTML'iniz modern CSS3, JavaScript veya duyarlı tasarımlar içeriyor
- Tarayıcı çıktılarına uyan piksel-mükemmel işleme ihtiyaç duyuyorsunuz
- Çapraz platform dağıtımı gerekiyor (Linux, macOS, Docker)
- Lisansınızla birlikte kapsamlı destek istiyorsunuz
- Ek kütüphanelere ihtiyaç duymadan yerleşik DOCX dönüşümü gibi özelliklere ihtiyacınız var
- Ekibiniz hızlı geliştirme ve minimum kodlamaya değer veriyor
Spire.PDF'i Seçin Ne Zaman:
- PDF'leriniz yalnızca basit stil ile temel HTML içeriyor
- Bellek kullanımı kritik bir kısıtlama
- Öncelikle Windows ortamlarında çalışıyorsunuz
- HTML'iniz JavaScript çalıştırma gerektirmiyor
- Zaten yığınınızda diğer Spire ürünlerini kullanıyorsunuz
Sonuç
Sonuç olarak, .NET ve Spire.PDF for .NET, .NET uygulamalarında PDF belgeleriyle uğraşmak için iki yetenekli araç. .NET, kullanım kolaylığı, çapraz platform uyumluluğu ve modern web standartlarına desteği ile dikkat çeker, PDF belgelesiyle çalışmalarınızda seviyeyi yükseltmek istiyorsanız tercih edilen bir seçimdir. Spire.PDF, kapsamlı bir özellik seti sunar ancak karmaşık görevler için daha fazla çaba gerektirebilir ve modern web uygulamalarının talep ettiği işleme hassasiyetine sahip değildir.
Çağdaş web teknolojileri ile çalışan geliştiriciler için, doğru HTML'den PDF'ye dönüşüm gerektiren veya güvenilir çapraz platform desteğine ihtiyaç duyan IronPDF, daha eksiksiz bir çözüm sunar. Chrome tabanlı işleme motoru, sezgisel API'si ve kapsamlı desteği, özellikle kurumsal uygulamalar ve karmaşık belge oluşturma senaryoları için uygun hale getirir.
Mevcut özellikleri deneyimlemek için 30 günlük ücretsiz denemeyi deneyebilirsiniz.
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, HTML'den PDF'ye dönüştürme sırasında JavaScript yürütümünü destekliyor mu?
Evet, IronPDF, dinamik içerik veya JavaScript'e bağlı düzenleri PDF'ye dönüştürmek için ideal olan tam JavaScript yürütümünü destekler.
IronPDF hangi platformlar tarafından destekleniyor PDF dönüştürme için?
IronPDF, Windows, Linux, macOS, Docker dahil olmak üzere birçok platformda ve Azure ve AWS gibi bulut hizmetlerinde yerel destek sunar.
IronPDF'nin bellek kullanımı Spire.PDF ile nasıl karşılaştırılır?
IronPDF, Spire.PDF'nin 80-120MB arasında olan belleğine kıyasla, genellikle 150-200MB arasında hafifçe daha fazla bellek kullanır, ancak daha iyi render kalitesi sunar ve modern async/await kalıplarını destekler.
IronPDF, DOCX dosyalarını doğrudan PDF'ye dönüştürebilir mi?
Evet, IronPDF, ek kütüphaneler gerektirmeden DocxToPdfRenderer sınıfı aracılığıyla yerleşik DOCX'ten PDF'ye dönüştürme yeteneklerini içerir.
IronPDF için lisanslama seçenekleri nelerdir?
IronPDF, tek kullanıcı geliştiriciler için tüm özellikler ve destek dahil $749'dan başlayan süresiz lisanslar sunar. Ayrıca, 10 ürün içeren bir Iron Suite paketi $1,498 karşılığında sunulmaktadır.
IronPDF nasıl bir destek sunar?
IronPDF, e-posta, sohbet, telefon ve ekran paylaşımı aracılığıyla tüm lisanslarla birlikte 24/5 mühendislik desteği sunarak kapsamlı yardım sağlar.
IronPDF ile PDF güvenliği ve şifrelemesini nasıl sağlayabilirim?
IronPDF, PDF izinleri üzerinde ayrıntılı kontrol sağlayarak AES-256 şifreleme ve parola korumasını SecuritySettings sınıfı aracılığıyla destekler.
IronPDF, modern CSS ile karmaşık web sayfalarını render etmek için uygun mu?
Evet, IronPDF, karmaşık web sayfaları için uygun olan CSS3, flexbox, grid düzenleri, web yazı tipleri ve JavaScript'i destekleyen tam bir Chrome render motoru kullanır.
IronPDF'nin ücretsiz sürümünün sınırlamaları nelerdir?
IronPDF, satın almadan önce tüm özelliklerini denemek için bol fırsat sunan 30 günlük tamamen işlevsel ücretsiz deneme sunar, hiçbir sayfa sınırı yoktur.
IronPDF, yüksek kaliteli HTML render'ını nasıl sağlar?
IronPDF, orijinal HTML içeriğinin yüksek doğrulukta ve gerçek temsilini sağlayarak Chrome tarayıcı çıktısıyla eşleşen piksel mükemmelliğinde render sunar.



