Aspose C# İle PDF Dosyaları Oluşturma vs IronPDF'e Geliştirici Rehberi
Full Comparison
Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Aspose PDF on pricing, HTML support, and licensing.
IronPDF, HTML'den PDF'ye dönüşüm için Chrome render kullanır, bu da Aspose PDF'ye göre %70 daha az kod gerektirir. Bu, hızlı geliştirme ve hassas çıktı arayan .NET geliştiricileri için özellikle uygundur.
Hızlı Karşılaştırma Özeti Nedir?
.NET uygulamaları için PDF kütüphanelerini değerlendirmek, temel mimari farkları anlamak, bilinçli kararlar vermede yardımcı olur. Bu detaylı karşılaştırma, üretim sistemleri ile alâkalı esas kriterler üzerinden her iki kütüphaneyi inceler.
| Kriterler | IronPDF | Aspose PDF |
|---|---|---|
| Mimari | Chrome motoru ile HTML/CSS render | Belge Nesne Modeli (DOM) yaklaşımı |
| Öğrenme Eğrisi | Minimal - web teknolojilerini kullanır | Zorlu - PDF iç bilgileri bilgisi gerektirir |
| Kod Karmaşıklığı | Yaygın görevler için ~%70 daha az kod | Ayrıntılı, açık pozisyonlama gerektirir |
| Performans | Web içeriği için özelleştirilmiş | Basit metin belgeleri için daha iyi |
| Çapraz Platform | Windows, Linux, macOS, Docker, Bulut | Windows, sınırlı Linux desteği |
| Lisanslama Maliyeti | Destekle başlayan fiyat $749 | Destekle başlayan fiyat $1,199 |
| En İyi Olduğu Noktalar | Webden-PDF'ye, raporlar, faturalar | Düşük seviyeli PDF manipulasyonu |
Hangi Ön Koşullar Gereklidir?
PDF üretimini üretim sistemlerinde uygulamadan önce, çevrenin şu gereksinimleri karşıladığından emin olun:
Teknik Gereksinimler Neden Önemlidir?
Modern .NET uygulamaları, çeşitli dağıtım senaryolarında güvenilir PDF üretimi talep eder. Her iki kütüphane de şunları destekler:
- .NET Framework 4.6.2+ veya .NET Core 3.1+
- Visual Studio 2019 veya uyumluluklu IDE
- C# programlama hakkında temel bilgi
- HTML'den PDF'ye dönüştürme kavramlarını anlama (IronPDF için)
- Belge nesne modelleri bilgisine aşinalık (Aspose PDF için)
Desteklenen Dağıtım Ortamları Nelerdir?
Azure'a dağıtımı, AWS Lambda ve Docker konteynerlarına dağıtımı destekleyerek, onları bulut yerli mimariler için uygun hale getirir. IronPDF'nin yerel motoru, farklı platformlarda tutarlı renderı sağlar ve yüksek performanslı senaryolar için asenkron işlemleri destekler.
Hangi İşletim Sistemlerini Hedefleyebilirim?
IronPDF geniş platform desteği sunar:
- Windows ortamları tam .NET Framework desteği ile
- Linux dağıtımları dahil Ubuntu, Debian, CentOS
- macOS sistemleri hem Intel hem de Apple Silicon için
- Android uygulamaları .NET MAUI ile
- Kubernetes ile konteyner orkestrasyonu
Bu Kütüphaneleri Nasıl Yüklerim?

Package Manager Console ileAspose PDFNasıl Kurulur?
NuGet Package Manager üzerinden kurulum, PDF kütüphanelerini .NET çözümlerine entegre etmenin en doğrudan yaklaşımını sağlar. Visual Studio'da Package Manager Console'u açın ve şu komutu çalıştırın:
Install-Package Aspose.PDF

IronPDFKurulum Süreci Nedir?
IronPDF kurulumu aynı basit süreçle Paket Yöneticisi üzerinden gerçekleşir:
Install-Package IronPdf
Gelişmiş kurulum senaryoları için NuGet paketleri kılavuzuna veya Windows yükleyici seçeneklerine bakınız.IronPDFayrıca F# geliştirmeyi ve VB.NET uygulamalarını destekler.

Ekstra Bağımlılıklar Nelerdir?
IronPDF, HTML oluşturma için gömülü bir Chrome motoru içerir ve Windows, Linux, macOS, Docker konteynerleri ve bulut platformlarını destekler. Chrome oluşturma motoru, uluslararası diller için UTF-8 desteği ile hassas çıktı sağlar.

Chrome render motoru otomatik olarak ele alır:
- CSS3 ve modern web standartları: Flexbox, grid ve duyarlı tasarımlar için tam destek
- JavaScript yürütme: Dinamik içerik PDF oluşturulmadan önce işlenir
- Web yazı tipleri ve simgeler: Google Fonts,
FontAwesomeve özel yazı tipleri - SVG ve vektör grafikleri: Ölçeklenebilir görüntüler herhangi bir çözünürlükte kaliteyi korur
İlk PDF Belgem Nasıl Oluşturulur?
Her kütüphanenin temel yaklaşımlarını anlamak, mimarların bilinçli teknoloji kararları almasına yardımcı olur. Bu örnekler temel API kalıplarını ve mimari felsefeleri gösterir.
Aspose PDFBelgeleri Nasıl Yaratır?
using Aspose.Pdf;
using Aspose.Pdf.Text;
// Create new instance of Document class
var document = new Aspose.Pdf.Document();
// Add pages to the document object
var page = document.Pages.Add();
// Create new TextFragment with Hello World text
var textFragment = new TextFragment("Hello World!");
textFragment.TextState.FontSize = 24;
textFragment.TextState.Font = FontRepository.FindFont("Arial");
// Add text to paragraphs collection
page.Paragraphs.Add(textFragment);
// Save the generated PDF document
document.Save("output.pdf");
using Aspose.Pdf;
using Aspose.Pdf.Text;
// Create new instance of Document class
var document = new Aspose.Pdf.Document();
// Add pages to the document object
var page = document.Pages.Add();
// Create new TextFragment with Hello World text
var textFragment = new TextFragment("Hello World!");
textFragment.TextState.FontSize = 24;
textFragment.TextState.Font = FontRepository.FindFont("Arial");
// Add text to paragraphs collection
page.Paragraphs.Add(textFragment);
// Save the generated PDF document
document.Save("output.pdf");
Imports Aspose.Pdf
Imports Aspose.Pdf.Text
' Create new instance of Document class
Dim document As New Aspose.Pdf.Document()
' Add pages to the document object
Dim page = document.Pages.Add()
' Create new TextFragment with Hello World text
Dim textFragment As New TextFragment("Hello World!")
textFragment.TextState.FontSize = 24
textFragment.TextState.Font = FontRepository.FindFont("Arial")
' Add text to paragraphs collection
page.Paragraphs.Add(textFragment)
' Save the generated PDF document
document.Save("output.pdf")
Bu kod, belge nesne modeli oluşturarak PDF belgeleri oluşturur. Geliştiriciler yeni bir belge oluşturur, koleksiyona sayfalar ekler ve ardından bu sayfalara içerik ekler. Aspose.Pdf.Document sınıfı temeli sağlar, paragraflar ise içeriği tutar. Bu Merhaba Dünya örneği, temel süreci gösterir. API, açık yazı tipi yönetimi ve konumlandırma hesaplamaları gerektirir.
Bu Hangi Çıktıyı Üretir?
Aspose PDF, lisanslanana kadar değerlendirme filigranları ile belgeler oluşturur
IronPDF'nin Yaklaşımı Nasıl Farklı?
IronPDF ile PDF oluşturma, hızlı geliştirme için tanıdık web teknolojilerini kullanır:
-
NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronPdf yükleyin
PM > Install-Package IronPdf -
Bu kod parçasını kopyalayıp çalıştırın.
using IronPdf; // Create new instance of ChromePdfRenderer var renderer = new ChromePdfRenderer(); // Configure rendering options for production renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print; renderer.RenderingOptions.PrintHtmlBackgrounds = true; // Convert HTML string to PDF file var html = @" <h1 style='color: #333; font-family: Arial;'>Hello World!</h1> <p>This PDF was generated using IronPDF's Chrome rendering engine.</p>"; var pdf = renderer.RenderHtmlAsPdf(html); // Save PDF files using SaveAs method pdf.SaveAs("output.pdf"); -
Canlı ortamınızda test etmek için dağıtın
Bugün projenizde IronPDF kullanmaya başlayın ücretsiz deneme ile
IronPDF, PDF oluşturmak için farklı bir yaklaşım benimser - Chrome kullanarak HTML'yi doğrudan PDF'ye dönüştürür. Bu API, geliştiricilerin web içeriğini dönüştürmesini ve karmaşık düzenleri kolayca uygulamasını sağlar. Kütüphane, CSS medya türleri, JavaScript yürütmesi ve web yazı tipleri dahil tüm render zorluklarını ele alır ve profesyonel sonuçlar elde etmeyi daha basit hale getirir.
IronPDFÇıkışı Nasıl Görünür?
IronPDF, hassas doğruluk için HTML'yi Chrome ile işliyor
Neden HTML Tabanlı PDF Oluşturma Seçilmeli?
HTML yaklaşımı birkaç mimari avantaj sağlar:
- Sorumluluk ayrılığı: Tasarımcılar HTML/CSS üzerinde çalışırken geliştiriciler PDF oluşturmayı ele alır
- Yeniden kullanılabilir şablonlar: Web görünümleri ve PDF çıkışı arasında düzenleri paylaşın
- Duyarlı tasarım: Farklı sayfa boyutlarına otomatik olarak uyum sağlar
- Modern CSS desteği: Flexbox, Grid ve CSS3 özellikleri sorunsuz çalışır
Gerçek Dünya Faturası PDF'si Nasıl Oluşturulur?
Üretim uygulamaları, tablolar, stillendirme ve dinamik içerik ile karmaşık düzenler gerektirir. Bu örnekler, her kütüphanenin karmaşık belge gereksinimlerini nasıl ele aldığını gösterecektir.
Aspose PDFile Fatura Nasıl Oluşturulur?
using Aspose.Pdf;
using Aspose.Pdf.Text;
// Create new Document instance
var document = new Document();
var page = document.Pages.Add();
// Set page margins
page.PageInfo.Margin = new MarginInfo(72, 72, 72, 72);
// Add title text
var title = new TextFragment("INVOICE");
title.TextState.FontSize = 28;
title.TextState.Font = FontRepository.FindFont("Arial Bold");
title.HorizontalAlignment = HorizontalAlignment.Center;
// Add to paragraphs
page.Paragraphs.Add(title);
// Add space
page.Paragraphs.Add(new TextFragment("\n"));
// Create table object for invoice items
var table = new Table();
table.ColumnWidths = "200 100 100";
table.Border = new BorderInfo(BorderSide.All, 0.5f, Color.Black);
table.DefaultCellBorder = new BorderInfo(BorderSide.All, 0.5f, Color.Black);
table.DefaultCellPadding = new MarginInfo(5, 5, 5, 5);
// Add header row to table
var headerRow = table.Rows.Add();
headerRow.Cells.Add("Description");
headerRow.Cells.Add("Quantity");
headerRow.Cells.Add("Price");
// Style header cells
foreach (Cell headerCell in headerRow.Cells)
{
headerCell.BackgroundColor = Color.Gray;
var headerText = (TextFragment)headerCell.Paragraphs[0];
headerText.TextState.ForegroundColor = Color.White;
headerText.TextState.Font = FontRepository.FindFont("Arial Bold");
}
// Add data rows
var dataRow = table.Rows.Add();
dataRow.Cells.Add("Product A");
dataRow.Cells.Add("2");
dataRow.Cells.Add("$50.00");
// Add table to page paragraphs
page.Paragraphs.Add(table);
// Save the PDF document
document.Save("invoice.pdf");
using Aspose.Pdf;
using Aspose.Pdf.Text;
// Create new Document instance
var document = new Document();
var page = document.Pages.Add();
// Set page margins
page.PageInfo.Margin = new MarginInfo(72, 72, 72, 72);
// Add title text
var title = new TextFragment("INVOICE");
title.TextState.FontSize = 28;
title.TextState.Font = FontRepository.FindFont("Arial Bold");
title.HorizontalAlignment = HorizontalAlignment.Center;
// Add to paragraphs
page.Paragraphs.Add(title);
// Add space
page.Paragraphs.Add(new TextFragment("\n"));
// Create table object for invoice items
var table = new Table();
table.ColumnWidths = "200 100 100";
table.Border = new BorderInfo(BorderSide.All, 0.5f, Color.Black);
table.DefaultCellBorder = new BorderInfo(BorderSide.All, 0.5f, Color.Black);
table.DefaultCellPadding = new MarginInfo(5, 5, 5, 5);
// Add header row to table
var headerRow = table.Rows.Add();
headerRow.Cells.Add("Description");
headerRow.Cells.Add("Quantity");
headerRow.Cells.Add("Price");
// Style header cells
foreach (Cell headerCell in headerRow.Cells)
{
headerCell.BackgroundColor = Color.Gray;
var headerText = (TextFragment)headerCell.Paragraphs[0];
headerText.TextState.ForegroundColor = Color.White;
headerText.TextState.Font = FontRepository.FindFont("Arial Bold");
}
// Add data rows
var dataRow = table.Rows.Add();
dataRow.Cells.Add("Product A");
dataRow.Cells.Add("2");
dataRow.Cells.Add("$50.00");
// Add table to page paragraphs
page.Paragraphs.Add(table);
// Save the PDF document
document.Save("invoice.pdf");
Imports Aspose.Pdf
Imports Aspose.Pdf.Text
' Create new Document instance
Dim document As New Document()
Dim page As Page = document.Pages.Add()
' Set page margins
page.PageInfo.Margin = New MarginInfo(72, 72, 72, 72)
' Add title text
Dim title As New TextFragment("INVOICE")
title.TextState.FontSize = 28
title.TextState.Font = FontRepository.FindFont("Arial Bold")
title.HorizontalAlignment = HorizontalAlignment.Center
' Add to paragraphs
page.Paragraphs.Add(title)
' Add space
page.Paragraphs.Add(New TextFragment(vbCrLf))
' Create table object for invoice items
Dim table As New Table()
table.ColumnWidths = "200 100 100"
table.Border = New BorderInfo(BorderSide.All, 0.5F, Color.Black)
table.DefaultCellBorder = New BorderInfo(BorderSide.All, 0.5F, Color.Black)
table.DefaultCellPadding = New MarginInfo(5, 5, 5, 5)
' Add header row to table
Dim headerRow As Row = table.Rows.Add()
headerRow.Cells.Add("Description")
headerRow.Cells.Add("Quantity")
headerRow.Cells.Add("Price")
' Style header cells
For Each headerCell As Cell In headerRow.Cells
headerCell.BackgroundColor = Color.Gray
Dim headerText As TextFragment = CType(headerCell.Paragraphs(0), TextFragment)
headerText.TextState.ForegroundColor = Color.White
headerText.TextState.Font = FontRepository.FindFont("Arial Bold")
Next
' Add data rows
Dim dataRow As Row = table.Rows.Add()
dataRow.Cells.Add("Product A")
dataRow.Cells.Add("2")
dataRow.Cells.Add("$50.00")
' Add table to page paragraphs
page.Paragraphs.Add(table)
' Save the PDF document
document.Save("invoice.pdf")
Aspose PDF .NET API'si her bileşeni programatik olarak oluşturmayı gerektirir. Geliştiriciler belge nesnesi oluşturur, sayfalar ekler ve ardından paragraflar koleksiyonuna içerik ekler. Bu, doğru kontrol sağlar ancak karmaşık düzenleri uygulamak için daha fazla kod gerektirir. Tablo formatlama, kenarlıklar ve stillendirme yönetimi için açıkça konfigürasyon gerektirir. Daha karmaşık senaryolar için geliştiriciler sayfa sonlarını manuel olarak ele almak zorunda kalabilir.
IronPDFFatura Oluşturmayı Nasıl Basitleştirir?
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure PDF output settings
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 25;
renderer.RenderingOptions.MarginRight = 25;
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait;
// Enable JavaScript for dynamic calculations
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Wait for JS execution
// HTML string with invoice content
var html = @"
<html>
<head>
<style>
body { font-family: Arial, sans-serif; }
h1 { color: #333; text-align: center; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 12px; text-align: left; border-bottom: 1px solid #ddd; }
th { background-color: #4CAF50; color: white; }
tr:hover { background-color: #f5f5f5; }
.total { font-weight: bold; font-size: 18px; }
</style>
</head>
<body>
<h1>INVOICE</h1>
<p>Invoice Date: <span id='date'></span></p>
<table>
<tr>
<th>Description</th>
<th>Quantity</th>
<th>Unit Price</th>
<th>Total</th>
</tr>
<tr>
<td>Product A</td>
<td>2</td>
<td>$25.00</td>
<td>$50.00</td>
</tr>
<tr>
<td>Product B</td>
<td>3</td>
<td>$15.00</td>
<td>$45.00</td>
</tr>
<tr>
<td colspan='3' class='total'>Total:</td>
<td class='total'>$95.00</td>
</tr>
</table>
<script>
document.getElementById('date').innerText = new Date().toLocaleDateString();
</script>
</body>
</html>";
// Generate PDF from HTML
var pdf = renderer.RenderHtmlAsPdf(html);
// Add metadata
pdf.MetaData.Author = "Your Company";
pdf.MetaData.Title = "Invoice";
pdf.SaveAs("invoice.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure PDF output settings
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 25;
renderer.RenderingOptions.MarginRight = 25;
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait;
// Enable JavaScript for dynamic calculations
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Wait for JS execution
// HTML string with invoice content
var html = @"
<html>
<head>
<style>
body { font-family: Arial, sans-serif; }
h1 { color: #333; text-align: center; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 12px; text-align: left; border-bottom: 1px solid #ddd; }
th { background-color: #4CAF50; color: white; }
tr:hover { background-color: #f5f5f5; }
.total { font-weight: bold; font-size: 18px; }
</style>
</head>
<body>
<h1>INVOICE</h1>
<p>Invoice Date: <span id='date'></span></p>
<table>
<tr>
<th>Description</th>
<th>Quantity</th>
<th>Unit Price</th>
<th>Total</th>
</tr>
<tr>
<td>Product A</td>
<td>2</td>
<td>$25.00</td>
<td>$50.00</td>
</tr>
<tr>
<td>Product B</td>
<td>3</td>
<td>$15.00</td>
<td>$45.00</td>
</tr>
<tr>
<td colspan='3' class='total'>Total:</td>
<td class='total'>$95.00</td>
</tr>
</table>
<script>
document.getElementById('date').innerText = new Date().toLocaleDateString();
</script>
</body>
</html>";
// Generate PDF from HTML
var pdf = renderer.RenderHtmlAsPdf(html);
// Add metadata
pdf.MetaData.Author = "Your Company";
pdf.MetaData.Title = "Invoice";
pdf.SaveAs("invoice.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Configure PDF output settings
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25
renderer.RenderingOptions.MarginLeft = 25
renderer.RenderingOptions.MarginRight = 25
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait
' Enable JavaScript for dynamic calculations
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.RenderDelay = 500 ' Wait for JS execution
' HTML string with invoice content
Dim html As String = "
<html>
<head>
<style>
body { font-family: Arial, sans-serif; }
h1 { color: #333; text-align: center; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 12px; text-align: left; border-bottom: 1px solid #ddd; }
th { background-color: #4CAF50; color: white; }
tr:hover { background-color: #f5f5f5; }
.total { font-weight: bold; font-size: 18px; }
</style>
</head>
<body>
<h1>INVOICE</h1>
<p>Invoice Date: <span id='date'></span></p>
<table>
<tr>
<th>Description</th>
<th>Quantity</th>
<th>Unit Price</th>
<th>Total</th>
</tr>
<tr>
<td>Product A</td>
<td>2</td>
<td>$25.00</td>
<td>$50.00</td>
</tr>
<tr>
<td>Product B</td>
<td>3</td>
<td>$15.00</td>
<td>$45.00</td>
</tr>
<tr>
<td colspan='3' class='total'>Total:</td>
<td class='total'>$95.00</td>
</tr>
</table>
<script>
document.getElementById('date').innerText = new Date().toLocaleDateString();
</script>
</body>
</html>"
' Generate PDF from HTML
Dim pdf = renderer.RenderHtmlAsPdf(html)
' Add metadata
pdf.MetaData.Author = "Your Company"
pdf.MetaData.Title = "Invoice"
pdf.SaveAs("invoice.pdf")
IronPDF ile geliştiriciler standart HTML yazar ve sistem işlemi gerçekleştirir. Bu yöntem, profesyonel düzenlere sahip PDF dosyaları oluşturmayı kolaylaştırır. Geliştiriciler harici stil sayfalarını referans alabilir, görüntüler ekleyebilir ve dinamik içerik için JavaScript içerebilir. Oluşturma seçenekleri, özel kenar boşlukları ve kağıt boyutları dahil çıktının kalitesi üzerinde ince kontrol sağlar.
Son Fatura Çıkışı Nedir?
HTML'den otomatik tablo formatlamaları ile rendere edilmiş profesyonel fatura
Kod Karmaşıklığı Farkları Nelerdir?
İki yaklaşımın karşılaştırılması, geliştirme çabasında önemli farklılıkları ortaya çıkarmaktadır:
Aspose PDF Gereksinimleri:
- Manuel tablo konstrüksiyonu için açık hücre oluşturma
- Her eleman için programatik stillendirme
- Yazı tipi yönetimi ve konumlandırma hesaplamaları
- Temel fatura için ~50+ satır
IronPDF Avantajları:
- Düzen için standart HTML/CSS
- Otomatik tablo renderleme
- CSS hover efektleri ve modern stillendirme
- İyileştirilmiş fatura için ~30 satır
Her iki kütüphane de temel PDF oluşturmanın ötesinde geniş kapsamlı yetenekler sunar. Bu özelliklerin anlaşılması, mimarların tamamlayıcı belge çözümleri tasarlamasına yardımcı olur.
Web Sayfaları Nasıl PDF'ye Dönüştürülür?
//IronPDF- Convert any URL to PDF
var renderer = new ChromePdfRenderer();
// Configure for improved web page capture
renderer.RenderingOptions.ViewPortWidth = 1920;
renderer.RenderingOptions.ViewPortHeight = 1080;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.WaitFor.RenderDelay(2000); // Wait for dynamic content
// Load and convert URL to PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_124___");
// Apply post-processing
pdf.CompressImages(90); // Optimize file size
pdf.SaveAs("website.pdf");
//IronPDF- Convert any URL to PDF
var renderer = new ChromePdfRenderer();
// Configure for improved web page capture
renderer.RenderingOptions.ViewPortWidth = 1920;
renderer.RenderingOptions.ViewPortHeight = 1080;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.WaitFor.RenderDelay(2000); // Wait for dynamic content
// Load and convert URL to PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_124___");
// Apply post-processing
pdf.CompressImages(90); // Optimize file size
pdf.SaveAs("website.pdf");
Imports IronPdf
' IronPDF - Convert any URL to PDF
Dim renderer As New ChromePdfRenderer()
' Configure for improved web page capture
renderer.RenderingOptions.ViewPortWidth = 1920
renderer.RenderingOptions.ViewPortHeight = 1080
renderer.RenderingOptions.PrintHtmlBackgrounds = True
renderer.RenderingOptions.WaitFor.RenderDelay(2000) ' Wait for dynamic content
' Load and convert URL to PDF
Dim pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_124___")
' Apply post-processing
pdf.CompressImages(90) ' Optimize file size
pdf.SaveAs("website.pdf")
IronPDF, Chrome motoru ile URL'yi PDF'ye dönüştürmede mükemmeldir, JavaScript grafikleri, Angular uygulamaları ve duyarlı CSS'i destekler. WaitFor seçenekleri, dinamik içeriğin tamamen yüklenmesini sağlar. Geliştiriciler ayrıca WebGL içeriği render edebilir ve TLS kimlik doğrulamasını ele alabilir.
Hangi Güvenlik Seçenekleri Uygulanabilir?
// Create PDF document
var pdf = renderer.RenderHtmlAsPdf(html);
// Implement complete security settings
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
// Configure permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserEditing = IronPdf.Security.PdfEditSecurity.NoEdit;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = true;
// Add digital signature
pdf.SignWithFile("/path/to/certificate.pfx", "password");
// Save secured file
pdf.SaveAs("secured.pdf");
// Create PDF document
var pdf = renderer.RenderHtmlAsPdf(html);
// Implement complete security settings
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
// Configure permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserEditing = IronPdf.Security.PdfEditSecurity.NoEdit;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = true;
// Add digital signature
pdf.SignWithFile("/path/to/certificate.pfx", "password");
// Save secured file
pdf.SaveAs("secured.pdf");
' Create PDF document
Dim pdf = renderer.RenderHtmlAsPdf(html)
' Implement complete security settings
pdf.SecuritySettings.UserPassword = "user123"
pdf.SecuritySettings.OwnerPassword = "owner456"
' Configure permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights
pdf.SecuritySettings.AllowUserEditing = IronPdf.Security.PdfEditSecurity.NoEdit
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserFormData = True
' Add digital signature
pdf.SignWithFile("/path/to/certificate.pfx", "password")
' Save secured file
pdf.SaveAs("secured.pdf")
IronPDF, PDF belgelerine güvenlik eklemek, dijital imzalar, başlıklar ve alt bilgiler gibi özellikler eklemek için sezgisel yöntemler sunar. Geliştiriciler ayrıca PDF'leri birleştirebilir, içeriği ayıklayabilir veya filigran ekleyebilir. Kurumsal senaryolar için IronPDF, HSM ile imzalama ve güvenliğin sağlanması için PDF'leri temizleme destekler.
Güvenlikli Bir PDF Nasıl Görünür?
Şifre koruması ve dijital imzalarla kurumsal düzeyde güvenlik
Karmaşık İşlemler İçin API'ler Nasıl Karşılaştırılır?
Her iki kütüphaneyi kullanarak formlar içeren PDF'ler oluşturmayı karşılaştıran bir örnek:
//Aspose PDF- Creating forms requires manual positioning
var document = new Document();
var page = document.Pages.Add();
// Create text field
var textField = new TextBoxField(page, new Rectangle(100, 700, 200, 720));
textField.PartialName = "name";
textField.Value = "Enter your name";
document.Form.Add(textField);
//IronPDF- Use HTML forms naturally
var html = @"
<form>
<label>Name: <input type='text' name='name' required></label>
<label>Email: <input type='email' name='email' required></label>
<input type='submit' value='Submit'>
</form>";
var pdf = renderer.RenderHtmlAsPdf(html);
// Forms are automatically interactive in the PDF
//Aspose PDF- Creating forms requires manual positioning
var document = new Document();
var page = document.Pages.Add();
// Create text field
var textField = new TextBoxField(page, new Rectangle(100, 700, 200, 720));
textField.PartialName = "name";
textField.Value = "Enter your name";
document.Form.Add(textField);
//IronPDF- Use HTML forms naturally
var html = @"
<form>
<label>Name: <input type='text' name='name' required></label>
<label>Email: <input type='email' name='email' required></label>
<input type='submit' value='Submit'>
</form>";
var pdf = renderer.RenderHtmlAsPdf(html);
// Forms are automatically interactive in the PDF
Imports Aspose.Pdf
Imports Aspose.Pdf.Forms
Imports Aspose.Pdf.Drawing
' Aspose PDF- Creating forms requires manual positioning
Dim document As New Document()
Dim page As Page = document.Pages.Add()
' Create text field
Dim textField As New TextBoxField(page, New Rectangle(100, 700, 200, 720))
textField.PartialName = "name"
textField.Value = "Enter your name"
document.Form.Add(textField)
' IronPDF- Use HTML forms naturally
Dim html As String = "
<form>
<label>Name: <input type='text' name='name' required></label>
<label>Email: <input type='email' name='email' required></label>
<input type='submit' value='Submit'>
</form>"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
' Forms are automatically interactive in the PDF
PDF formları oluşturma konusunda IronPDF'nin yaklaşımı HTML form elemanlarını kullanırken, Aspose programatik yapıyı gerektirir. Bu kalıp, açıklamalar, yer imleri, ve arka planlar gibi diğer özelliklere de uzanır. IronPDF, formları programatik olarak doldurma ve PDF/A uyumluluğu ile çalışma desteği de sunar.
Her İki Kütüphane PDF Manipülasyonunu Nasıl Ele Alır?
IronPDF, sezgisel API'si aracılığıyla tam PDF manipülasyon özellikleri sağlar.
// Load existing PDF
var pdf = PdfDocument.FromFile("existing.pdf");
// Add pages from another PDF
var anotherPdf = PdfDocument.FromFile("append.pdf");
pdf.AppendPdf(anotherPdf);
IronPDF offers straightforward [licensing](licensing) starting at $799, including support and updates. The free trial includes all features without watermarks.
// Add watermark
pdf.ApplyWatermark(@"
<div style='opacity: 0.5; font-size: 48px; color: red; transform: rotate(-45deg);'>
CONFIDENTIAL
</div>", 30, VerticalAlignment.Middle, HorizontalAlignment.Center);
// Compress for web
pdf.CompressImages(70);
pdf.SaveAs("optimized.pdf");
// Load existing PDF
var pdf = PdfDocument.FromFile("existing.pdf");
// Add pages from another PDF
var anotherPdf = PdfDocument.FromFile("append.pdf");
pdf.AppendPdf(anotherPdf);
IronPDF offers straightforward [licensing](licensing) starting at $799, including support and updates. The free trial includes all features without watermarks.
// Add watermark
pdf.ApplyWatermark(@"
<div style='opacity: 0.5; font-size: 48px; color: red; transform: rotate(-45deg);'>
CONFIDENTIAL
</div>", 30, VerticalAlignment.Middle, HorizontalAlignment.Center);
// Compress for web
pdf.CompressImages(70);
pdf.SaveAs("optimized.pdf");
' Load existing PDF
Dim pdf = PdfDocument.FromFile("existing.pdf")
' Add pages from another PDF
Dim anotherPdf = PdfDocument.FromFile("append.pdf")
pdf.AppendPdf(anotherPdf)
' Add watermark
pdf.ApplyWatermark("
<div style='opacity: 0.5; font-size: 48px; color: red; transform: rotate(-45deg);'>
CONFIDENTIAL
</div>", 30, VerticalAlignment.Middle, HorizontalAlignment.Center)
' Compress for web
pdf.CompressImages(70)
pdf.SaveAs("optimized.pdf")
Bu işlemler, IronPDF'nin PDF sıkıştırmada, sayfa manipülasyonunda ve görüntü optimizasyonunda güçlü yönlerini sergiler. Kütüphane ayrıca metin ve resim çıkarmayı, içerik gizlemeyi ve sayfaları dönüştürmeyi de destekler.
Hangi Endüstriye Özel Uygulamalar Her Bir Kütüphane İçin Mükemmeldir?
IronPDFÜretimde Nerede Üstün?
IronPDF, bu senaryolarda üstün performans sergiler:
Finansal Hizmetler:
- Fatura oluşturma: Dinamik veri bağlamalı HTML şablonlarını destekler
- Beyanname işleme: Karmaşık tablolar ve CSS stillendirme
- Düzenleyici raporlar: Arşivleme için PDF/A uyumluluğu
Sağlık Sistemleri:
- Hasta raporları: Ekran okuyucu desteği ile erişilebilir PDF'ler
- Laboratuvar sonuçları: Grafik ve çizelgeler JavaScript renderlama ile
- HIPAA uyumluluğu: Metadatanın kaldırıldığı temizlenmiş PDF'ler
E-ticaret Platformları:
- Sipariş onayları: Razor görünüm dönüşümü
- Kargo etiketleri: Özel kağıt boyutları
- Ürün katalogları: Sıkıştırmalı görsel ağırlıklı PDF'ler
Geliştiriciler Aspose PDF'yi Ne Zaman Seçmeli?
Aspose PDF, belirli teknik gereksinimlere uygundur:
Doküman İşleme:
- Düşük seviye PDF manipülasyonu
- Karmaşık form alanı konumlandırma
- Özel PDF format uyumluluğu
Eskiden Kalma Sistem Entegrasyonu:
- Programatik PDF yapımı
- Hassas koordinat bazlı yerleşim
- Doğrudan PDF yapı erişimi
Hangi Kütüphaneyi Seçmeliyim?
IronPDF'yi Ne Zaman Kullanmalıyım?
IronPDF, geliştiriciler şunları yaptığında başarılıdır:
Geliştirme Hızı Gereksinimleri:
- HTML'yi PDF formatına dönüştürme ihtiyaçı
- Daha basit kod ve daha hızlı geliştirme isteme
- JavaScript yürütme ve SVG desteği gereksinimi
Platform ve Dağıtım İhtiyaçları:
- Çapraz platform desteği gereksinimi Android dahil olmak üzere
- Docker veya bulut ortamlarına dağıtım
- Razor görünümlerinden raporlar veya Blazor oluşturma
Uyumluluk ve Erişilebilirlik:
- PDF/A uyumlu belgeler oluşturma
- PDF/UA erişilebilir dosyalar oluşturma
- Async PDF oluşturma veya paralel işlem ihtiyaçı
IronPDF, sezgisel bir API aracılığıyla tam PDF özellikleri sağlar
Aspose PDFNe Zaman Tercih Edilir?
.NET uygulamaları için Aspose PDF, geliştiricilerin aşağıdakileri yaptığı durumlarda iyi çalışır:
Teknik Gereksinimler:
- Sıfırdan PDF oluşturma
- Doküman nesne modeli üzerinde ayrıntılı kontrol ihtiyaçı
- Karmaşık PDF manipülasyonları ile çalışma
Mimari Kısıtlamalar:
- Mevcut PDF dosyalarını işleme için içe aktarma
- Belirli PDF format uyumluluğu ihtiyaçı
- Doküman otomasyon iş akışları oluşturma
Performans ve API Karmaşıklığı Hakkında Ne Söylenebilir?
Performans ölçütleri önemli mimari dikkate alımları ortaya koymaktadır:
| Metrik | IronPDF | Aspose PDF |
|---|---|---|
| HTML'den PDF'ye (1000 sayfa) | 12,3 saniye | Desteklenmiyor |
| Basit metin PDF (1000 sayfa) | 8,7 saniye | 6,2 saniye |
| Bellek kullanımı | Ortalama 185MB | Ortalama 142MB |
| Eşzamanlı işlemler | Async ile mükemmel | Sınırlı iş parçacığı |
| Geliştirme süresi | 2-3 saat tipik | 8-10 saat tipik |
IronPDF'nin HTML tabanlı yaklaşımı tipik olarak şunlarla sonuçlanır:
- Ortak görevler için %70 daha az kod
- Web tarzı düzenler için 5 kat daha hızlı geliştirme
- HTML/CSS ayrımı yoluyla Daha iyi sürdürülebilirlik
- Chrome DevTools entegrasyonu ile Daha kolay hata ayıklama
- Özel günlükleme desteği
Aspose'un doküman modeli şunları sağlar:
- PDF iç yapıları üzerinde hassas kontrol
- Basit metin belgeleri için daha iyi performans
- Düşük seviyeli PDF manipülasyonu için daha fazla seçenek
- Karmaşık düzenler için daha dik öğrenme eğrisi
Lisanslar Nasıl Karşılaştırılır?
Lisanslama modellerini anlamak, uzun vadeli proje maliyetleri ve ölçeklenebilirlik gereksinimleri için bütçe yapmaya yardımcı olur.
IronPDFLisanslaması Neleri İçerir?
IronPDF, destek ve güncellemeler de dahil olmak üzere $799 ile başlayan basit lisanslama sunar. Ücretsiz deneme, filigransız tüm özellikleri içerir.
Gizli maliyet veya yıllık ücret olmadan şeffaf fiyatlandırma
Lisanslama Modelleri Nasıl Karşılaştırılır?
| Lisans Özelliği | IronPDF | Aspose PDF |
|---|---|---|
| Başlangıç Fiyatı | $749 | $1,199 |
| Destek Dahildir | 24/5 profesyonel destek | Destek extra maliyetlidir |
| Güncellemeler | 1 yıl dahil | Yıllık yenileme gerektirir |
| Dağıtım | Sınırsız katman | Geliştirici başına yerler |
| Telif Ücretsiz | Yüksek katmanlarda var | Ek lisanslama |
| Deneme Süresi | 30 gün tüm özellikler | Sınırlı değerlendirme |
Temel lisans farkları:
- IronPDF: Şeffaf fiyatlandırma, 24/5 destek dahil, süresiz lisanslar
- Aspose: Daha yüksek giriş maliyeti, destek aboneliği gerektirir, karmaşık yenileme yapısı
- IronPDF: Profesyonel+ katmanlarda telif ücretsiz yeniden dağıtım
- Her iki: OEM lisanslama SaaS uygulamaları için sunulmaktadır
Birden fazla ürün ihtiyaçı olan ekipler için IronPDF'nin lisanslama uzantıları ve yükseltme seçenekleri esneklik sağlar. Tam API belgeleri, sorunsuz uygulamalara olanak tanır.
Toplam Maliyet Etkileri Neler?
Toplam sahip olma maliyetini değerlendirirken bu faktörleri göz önünde bulundurun:
IronPDF Maliyet Avantajları:
- Daha hızlı geliştirme, işçilik maliyetlerini azaltır
- Dahil edilen destek, ek ücretleri ortadan kaldırır
- Daha basit API, daha az eğitim gerektirir
- Ek lisanslar olmadan platformlar arası dağıtım
Aspose Gizli Maliyetler:
- Destek abonelikleri, yıllık %20-30 ekler
- Daha uzun geliştirme döngüleri maliyetleri artırır
- Karmaşık API, uzmanlaşmış bilgi gerektirir
- Platforma özgü lisanslama gereksinimleri
Gerçek Dünya Geri Bildirimleri Nelerdir?
Kıdemli Geliştiriciler Bu Kütüphaneleri Nasıl Değerlendiriyor?
Farklı endüstrilerdeki üretim dağıtımlara dayanan geliştiriciler, bu deneyimleri bildiriyor:
IronPDF Başarı Hikayeleri:
"IronPDF'nin HTML yaklaşımını kullanarak fatura oluşturma kodunu 500+ satırdan 100'ün altına indirdik. Chrome işlem motoru, web ön izlemesi ile birebir sonuçlar üretiyor." - Kıdemli Mimar, Fortune 500 Perakendeci
"IronPDF'ye geçmek PDF ile ilgili hata raporlarını %80 azalttı. Sezgisel API, genç geliştiricilerin kapsamlı eğitim olmadan kodu sürdürmesini sağlar." - Teknik Lider, Sağlık SaaS
IronPDF Avantajları:
- HTML şablonları ile hızlı prototipleme
- Platformlar arasında tutarlı işleme
- Mükemmel dokümantasyon ve örnekler
- Duyarlı teknik destek
Aspose PDF Kullanım Durumları:
"Eski doküman işleme sistemi için, Aspose'un PDF yapısı üzerinde ayrıntılı kontrolü gerekliydi. Öğrenme eğrisi zorlu ama gereklilikler için gerekli." - Baş Mühendis, Finansal Hizmetler
Projeniz İçin En İyi Seçim Hangisi?
Her iki kütüphane de C#'da etkili bir şekilde PDF belgeleri oluşturur. Aspose PDF, doküman nesne modeli ve TextFragment sınıfı aracılığıyla ayrıntılı kontrol sağlarken IronPDF, web teknolojileri kullanarak HTML'den PDF'ye dönüştürme konusunda başarılıdır.
Modern Uygulamalar İçin NedenIronPDFSeçilmeli?
Modern .NET uygulamalarının çoğu için IronPDF, üstün değer sunar:
Geliştirme Verimliliği:
- Sezgisel API, kod karmaşıklığını %70 azaltır
- HTML/CSS becerileri doğrudan PDF üretimine taşınır
- Tanıdık teknolojilerle pazara daha hızlı erişim
Teknik Özellikler:
- Chrome işlem motoru ile piksel mükemmelliği
- Tam JavaScript ve modern CSS desteği
- Tam asıenkron ve paralel işleme
İş Değeri:
- Dahil edilen profesyonel destek maliyetleri azaltır
- Gizli ücretler olmaksızın şeffaf lisanslama
- Platformlar arası dağıtım esnekliği
Geliştiriciler web sayfalarını yüklemesi, görüntü eklemesi, veya karmaşık düzenler uygulaması gerektiğinde, IronPDF'nin Chrome tabanlı işleme motoru süreci kolaylaştırır.
IronPDFNerede Maksimum Değer Sağlar
IronPDF özellikle bu senaryolarda başarılıdır:
Modern Web Uygulamaları:
- Razor görünümlerini PDF'ye dönüştürme
- Veritabanlarından raporlar oluşturma
- Erişilebilir PDF'ler oluşturma
Kurumsal Dağıtımlar:
İleri Gereklilikler:
- Çizim özellikleri
- Hızlı web görüntüleme için lineerleştirilmiş PDF'ler
- PDF'leri düzleştirme
- Revizyon geçmişi takibi
Kararımı Nasıl Vermeliyim?
PDF kütüphanelerini değerlendirirken, bu karar faktörlerini dikkate alın:
IronPDF'yi Seçin Ne Zaman:
- Geliştirme hızı kritikse
- Ekip web geliştirme becerilerine sahipse
- Platformlar arası dağıtım gerekliyse
- Bütçede destek maliyetleri yer alıyorsa
- Modern HTML/CSS düzenleri gerekiyorsa
Aspose PDF'yi Düşünün Ne Zaman:
- Düşük düzeyli PDF kontrolü esas ise
- Karmaşık belge iş akışları varsa
- Eski sistem entegrasyonu gerekiyorsa
- Ekip PDF uzmanlığına sahipse
- Programatik yapım tercih ediliyorsa
Uygulama hakkında sorularınız için IronPDF'nin mühendislik ekibiyle iletişime geçin veya tam dokümantasyonlarını, eğitimleri ve kod örneklerini inceleyerek herhangi bir zorluğu çözmek için inceleyin.
Seçimimle Nasıl Başlarım?
IronPDF'nin ücretsiz deneme sürümü ile başlayarak, PDF üretim ihtiyaçlarını nasıl karşılayabileceğini değerlendirin. Deneme sürümü, tüm özellikleri sınırlamalar olmadan içerir ve belirli ortamlarda kapsamlı test yapmanızı sağlar. Tam kaynaklara hızlı başlangıç kılavuzları, dağıtım dokümantasyonu ve performans optimizasyonu ipuçları dahil erişim sağlayarak başarılı bir uygulama sağlamak için tüm kaynaklara erişin.
Mimari Yönlendirmeli PDF Kütüphane Seçimine Genel Bakış Nedir?
IronPDF ileAspose PDFarasındaki seçim nihayetinde mimari gereksinimlere ve ekip yeteneklerine bağlıdır. IronPDF'nin HTML tabanlı yaklaşımı, Chrome işleme motoru ile modern uygulamalar için daha hızlı geliştirme, daha iyi sürdürülebilirlik ve üstün platformlar arası destek sağlar. Aspose PDF'nin doküman nesne modeli, özel gereklilikler için kesin kontrol sunar fakat önemli ölçüde daha fazla geliştirme çabası gerektirir.
Performans, güvenilirlik ve mimari kalıplara odaklanan kıdemli .NET geliştiricileri için IronPDF, güç, sadelik ve iş değeri arasında gelişmiş bir denge sunar. Tam özellik seti, şeffaf lisanslama ve dahil edilen profesyonel destek, çağdaş .NET mimarilerinde üretim PDF oluşturma için önerilen seçimi yapar.
*[Aspose, ilgili sahibinin tescilli markasıdır. Bu site, Aspose ile ilişkili, onaylanmış veya sponsor edilmiş değildir. Tüm ürün adları, logolar ve markalar kendi sahiplerinin mülkiyetindedir. Karşılaştırmalar sadece bilgilendirme amaçlıdır ve yazı anındaki halka açık bilgileri yansıtır.]
Sıkça Sorulan Sorular
PDF oluşturmak için IronPDF'un baslica özellikleri nelerdir?
IronPDF, HTML'den PDF'ye dönüşüm, PDF'lerin birlestirilmesi ve basliklar ile altliklar ekleme gibi özellikler sunar. .NET uygulamalarinda kullanıminin kolay olmasi için tasarlanmistir.
Aspose C#, IronPDF'e kullanım kolayligi bakimindan nasıl karsilastirilir?
IronPDF, sezgisel API'si ve .NET uygulamalariyla kolay entegresi nedeniyle genellikle oğuılıyor ve sadelik arayan geliştiricilerin tercihi oluyor.
IronPDF, genis capli PDF oluşturma işlemlerini verimli bir şekilde yönetebilir mi?
Evet, IronPDF performans için optimize edilmistir ve genis capli PDF oluşturma işlemlerini verimli bir şekilde yönetebilir, bu da onu kurumsal seviyede uygulamalar için uygun hale getirir.
IronPDF, PDF nasıl işleme özelliklerini destekliyor mu, ornegin birlestirme veya bolme?
IronPDF, birlestirme, bolme ve mevcut PDF'ler uzerinde değişiklik yapma dahil çeşitli PDF işleme özelliklerini destekler ve geliştiricilere çok yonlu bir çözüm sunar.
Aspose C# ve IronPDF arasinda lisanslama modelleri bakimindan bir fark var mi?
Evet, IronPDF esnek lisanslama seçenekleri sunar, sürekli ve abone olma modelleri dahil, bu da Aspose'un sunduklerinden farkli olabilir.
Hangi uygulama türleri IronPDF kullanmaktan fayda saglayabilir?
IronPDF, dinamik PDF oluşturulmasi gereken uygulamalar için idealdir; raporlama sistemleri, faturalama ve doküman yönetimi çözümleri gibi.
IronPDF PDF'lerde güvenlik özelliklerini nasıl ele aliyor?
IronPDF, parola korumasi ve şifreleme gibi güvenlik özellikleri icermekte ve uretile PDF'lerin güvenli olmasini ve veri koruma standartlarina uygun kalmasini saglamakta.
IronPDF kullanmak için herhangi özel sistem gereksinimleri var mi?
IronPDF, .NET Framework ve .NET Core ile uyumludur, ancak özel sistem gereksinimleri kullanilan sürüme ve uygulama ortamina baglidir.
IronPDF web sayfalarini PDF formatina cevirir mi?
Evet, IronPDF, HTML web sayfalarini komplex layout ve stili de icermek uzere PDF formatina cevirir.



