Altbilgi içeriğine atla
ÜRüN KARşıLAşTıRMALARı

IronPDF ile Ürün Karşılaştırmaları

IronPDF, Chrome V8 motoru hassasiyeti ve sezgisel API'lerle HTML-PDF dönüşümünde mükemmel performans gösterirken, ExpertPDF daha karmaşık .NET üretim sistemleri için daha fazla yapılandırma gereksinimi olan temel PDF yetenekleri sunar.

C# geliştiricileri, PDF'leri okumak, yazmak, oluşturmak veya formatlar arasında dönüştürmek ile ilgili zorluklarla karşılaşabilir. Bu ihtiyaçları karşılamak için birçok kütüphane ortaya çıkmıştır ve C# uygulamaları için sorunsuz entegrasyon sunar. C# PDF raporları geliştirirken doğru kütüphane seçimi, geliştirme süresini ve çıktının kalitesini önemli ölçüde etkiler. C# içinde tam PDF üretimi için, kütüphane yeteneklerini anlamak zorunludur.

Bu makale, .NET geliştiricileri için iki PDF kütüphanesini karşılaştırıyor:

Her iki kütüphane de .NET ortamında PDF oluşturma, dönüştürme ve düzenleme yöntemleri sağlar. Anahtar değerlendirme, hangi kütüphanenin belirli proje gereksinimlerini en iyi şekilde karşılayacağını belirlemeye odaklanır. Bu analiz, karar vermeye yönlendirmek için gerekli özellikleri vurgular. HTML'den PDF'e dönüşüm, PDF düzenleme yetenekleri veya belge düzenleme özellikleri uygularken, uygun kütüphaneyi seçmek hayati önem taşır.

IronPDF Kütüphanesi Nedir?

IronPDF, özellikle C# geliştiricileri için faydalı olan tam bir .NET PDF çözümü sunar. Kütüphane, tüm gerekli PDF işlevselliğinin C# uygulamalara entegrasyonunu sağlar. Azure dağıtımı ve AWS Lambda'yı destekleyerek bulut yerlisi mimarilere uygundur. Geliştiricilere mükemmel Windows desteği, Linux dağıtımı ve macOS uyumluluğu sağlar. Kurulum genel bakışı tam kurulum kılavuzu sağlar.

IronPDF, .NET Chromium motorunu içerir ve HTML içeriğini PDF'ye işler, karmaşık API'ler olmadan belge tasarımını basitleştirir. HTML'den PDF'e dönüştürücü, HTML5, CSS, JavaScript ve görüntüler kullanarak belgeler oluşturur. Ek olarak, geliştiriciler PDF'leri düzenleyebilir, üstbilgi ve altbilgi ekleyebilir ve görüntüleri çıkarabilir. Kütüphane, güvenilir metin çıkarma yetenekleri ile metin okumayı basitleştirir. Üretim ortamları için, Chrome render motoru güvenilir işleme sağlar.

IronPDF'in Ana Özellikleri Nedir?

HTML'den PDF Dosyalarını Nasıl Oluştururum?

Adobe Acrobat Reader Olmadan PDF'leri Nasıl Düzenlerim?

PDF Belgelerini Nasıl Manipüle Ederim?

Hangi Dosya Formatlarını PDF'ye Dönüştürebilirim?

PDF'ler Nasıl Kaydedilir ve Yazdırılır?

ExpertPDF Nedir?

ExpertPDF'nin Resmi Sitesini Ziyaret Edin ve onların .NET kütüphanesi ile HTML'den PDF'ye dönüştürme olanaklarını keşfedin. Kütüphane, karmaşık raporlama yazılımlarına ihtiyaç duymadan PDF raporları oluşturmayı sağlar. Daha fazla kaynak kullanılabilirliği için ExpertPDF yerine IronPDF kullanmayı düşünen geliştiriciler, eksiksiz dokümantasyon ve API referansı bulabilirler.

ExpertPDF, basit PDF düzenleme yetenekleri sunar. HTML'den PDF'ye dönüştürücü, .NET uygulamalarına hızla entegre edilir. .NET Framework, .NET Core, .NET 5, .NET 6, .NET 7 ve .NET 8 ile uyumlu olmasına rağmen, Linux dağıtımı ve macOS desteği eksik. Konteynerleştirilmiş dağıtımlar için, ExpertPDF desteklemezken IronPDF Docker desteği sunar. IronPDF ayrıca uzaktan konteyner dağıtımı ve yerel ve uzaktan motor seçeneklerini de destekler.

Bu kütüphane, .NET uygulamalarında web sayfası URL'lerini veya ham HTML işaretlemesini içeren PDF'ler oluşturur. WebGL sitelerinin render edilmesi veya JavaScript ağırlıklı uygulamalar gibi gelişmiş senaryolar için, IronPDF üstün render yetenekleri sağlar. Hızlı başlatma kılavuzu geliştiricilerin hızlı bir başlangıç yapmasına yardımcı olur.

ExpertPDF'nin Ana Özellikleri Nelerdir?

Dikkate değer özellikler şunlardır:

  • URL web sayfalarını PDF'ye dönüştürün
  • HTML dizilerini PDF'ye dönüştürün
  • Çok sayıda çıktı dosyası seçeneği
  • Sayfa kenarları ve boyutunu ayarlayın
  • Başlıklar ve altbilgiler ayarlayın
  • Otomatik ve özel sayfa sonları ekleyin
  • Belirli web sayfası parçalarını PDF'ye dönüştürün
  • Dönüştürme sırasında öğeleri gizleyin
  • Birden çok web sayfasını tek PDF'lerde birleştirin
  • Kimlik doğrulamalı web sayfalarını PDF'ye dönüştürün
  • CSS medya türünü render için seçin
  • Yer imleri desteği
  • Dijital imzalama desteği
  • HTML bileşen pozisyonlarını PDF'de alın
  • HTML5/CSS3 desteği
  • Web font desteği Dosya Türü Dönüşümleri:
    • PDF'den Metin'e Dönüştürücü
    • HTML'den PDF'ye Dönüştürücü
    • HTML'den Görüntüye Dönüştürücü
    • PDF'den Görüntüye Dönüştürücü
    • RTF'den PDF'ye Dönüştürücü

Aşağıdaki bölümler kapsar:

  1. Bir Konsol Projesi Oluşturma
  2. IronPDF Kurulumu
  3. ExpertPDF Kurulumu
  4. URL'den PDF Oluşturma
  5. HTML Girdi Dizesinden PDF Oluşturma
  6. Birden Çok PDF'yi Tek Bir PDF'de Birleştirme
  7. Görüntüleri PDF'ye Dönüştürme
  8. Lisanslama ve Fiyatlandırma
  9. Sonuç

Bir Konsol Projesini Nasıl Oluşturabilirim?

Visual Studio 2022 kullanarak bir konsol uygulaması oluşturmak için şu adımları izleyin:

  • Visual Studio 2022'yi açın ve yeni bir proje oluştur'a tıklayın

    Koyu tema arayüzünde dört ana geliştirme seçeneğini gösteren Visual Studio 2022 karşılama ekranı: İşbirlikçi projeler için bir mevcut deposunu klonla, var olan işler için bir proje veya çözüm aç, dosya keşfi için yerel bir klasör aç ve yeni bir geliştirme başlatmak için yeni bir proje oluştur

  • C# Konsol Uygulaması'nı seçin ve ileri'ye tıklayın

    Çeşitli .NET proje şablonlarını gösteren Visual Studio'nun Yeni bir proje oluşturma diyaloğu, Windows, Linux ve macOS için çapraz platform destek göstergeleri sunar ve Konsol Uygulaması, Sınıf Kütüphanesi ve MSTest Test Projesi seçenekleri ile dil ve proje türü filtrelerini içerir

  • Proje adını girin ve ileri'ye tıklayın

    'DemoApp' adı verilen yeni bir çapraz platform C# Konsol Uygulaması için kurulum seçeneklerini gösteren Visual Studio proje yapılandırma penceresi, Linux, macOS, Windows ve konsol ortamları için platform hedefleme seçimleri ile

  • .NET Framework sürümünü seçin (en son 6.0 kullanılarak)

    Ek Bilgiler adımı seçili olan Konsol Uygulaması şablonu ile Visual Studio proje oluşturma sihirbazı ve .NET 6.0 framework seçili, C#, Linux, macOS, Windows ve Konsol uygulamaları için çapraz platform destek etiketleri görüntülenir

Konsol projesi oluşturulmuş ve kütüphane testi için hazırdır. Her iki kütüphanenin de kullanımdan önce kurulumları gereklidir. Daha fazla ayrıntı için hızlı başlatma kılavuzuna başvurun. Genel bakış dokümantasyonu tam bilgiyi sağlar.

IronPDF Nasıl Kurulur?

Çok sayıda kurulum yöntemi mevcuttur:

  1. Visual Studio kullanarak
  2. NuGet Paketini doğrudan indirin
  3. IronPDF .DLL Kütüphanesi'ni indir

Daha fazla ayrıntı için kurulum genel bakışına başvurun. Kütüphane, sistem genelinde dağıtım için Windows yükleyiciyi destekler. Gelişmiş seçenekler NuGet kurulumu ve lisans anahtarları kullanımı içerir.

Visual Studio Kullanarak Nasıl Kurulum Yapabilirim?

Visual Studio, paketlerin kurulumu için NuGet Paket Yöneticisini sağlar:

  • Proje Menüsü Araçları üzerinden erişim veya
  • Çözüm Gezgini'nde projeye sağ tıklayın

    Paket yönetim işlevselliğine hızlı erişim için 'NuGet Paketlerini Yönet' seçeneği belirgin bir şekilde vurgulanan, çeşitli proje yönetim seçeneklerini gösteren Visual Studio Çözüm Gezgini bağlam menüsü

    Visual Studio IDE Araçlar menüsü genişletilmiş halde ve 'Çözüm için NuGet Paketlerini Yönet' seçeneği, çözümdeki tüm projeler için merkezi bağımlılık yönetimi sağlayan NuGet Paket Yöneticisi alt menüsünde yer alıyor

IronPDF NuGet paketini arayın ve kurun. Daha fazla ayrıntı için NuGet kurulum kılavuzuna başvurun. Platforma özgü kılavuzlar, Android entegrasyonu, F# geliştirme ve VB.NET kullanımı içerir. Dağıtım sorunlarını gidermek için NuGet paketi dağıtımı başarısız oldu kılavuzuna bakın.

NuGet Paketini Doğrudan Nasıl İndirebilirim?

NuGet web sitesinden IronPDF indirin:

  • NuGet IronPDF Paketini ziyaret edin
  • "Paket Yükle"yi seçin
  • İndirilen paketi çift tıklayın
  • Paket otomatik olarak kurulur
  • Visual Studio'yu yenileyin

IronPDF DLL Nasıl İndirilir ve Kurulur?

IronPDF .DLL'i doğrudan IronPDF web sitesinden indirin. IronPDF DLL İndir'a tıklayın.

Projede IronPDF'ye referans verin:

  • Çözüm Gezgini'nde Çözüm'e sağ tıklayın
  • "Referans Ekle"yi seçin
  • IronPDF.dll kütüphanesini arayın
  • Tamam'a tıklayın

IronPDF kurulumu tamamlandı. Docker dağıtımı ve uzaktan motor kurulumu dahil ek seçenekler için, kurulum genel bakışına başvurun. Sorun giderme için, hızlı sorun giderme kılavuzunu veya ilk render performansı ve GPU işlem optimizasyonunu keşfedin. Runtimes klasör kılavuzu, bağımlılık yönetimine yardımcı olur.

ExpertPDF Nasıl Kurulur?

İki kurulum yöntemi vardır:

  • Visual Studio NuGet Paket Yöneticisini kullanarak
  • Derlemeleri indirme (daha eski .NET sürümleri)

Modern .NET çerçeveleri için NuGet Paket Yöneticisi'ni kullanarak ExpertPDF kurun. Daha büyük esneklik için, gelişmiş kurulum yöntemleri ve paket boyutu optimizasyonu ile ExpertPDF yerine IronPDF kullanmayı düşünün.

Visual Studio NuGet Paket Yöneticisini Kullanarak Nasıl Kurulum Yapabilirim?

NuGet Paket Yöneticisine erişin:

  • Proje Menüsü Araçları
  • Çözüm Gezgini'nde projeye sağ tıklayın

    Çoklu kütüphane sürümleri, indirme sayıları (ana paket için 3.88M) ve çeşitli platformlar ve render motorları için kurulum seçenekleri ile IronPDF paket arama sonuçlarını gösteren Visual Studio NuGet Paket Yöneticisi arayüzü

    Hızlı erişim için Bağımlılık Yönetimi ve Paket Kurma Özellikleri ile 'NuGet Paketlerini Yönet' seçeneği vurgulanan, Ek menüsünde yer alan Visual Studio Çözüm Gezgini bağlam menüsü

ExpertPDF NuGet paketini arayın ve kurun. Geliştirilmiş kurulum için, IronPDF'nin kullanım bildirimi kılavuzunu düşünün.

Not: IronPDF, Windows, Linux ve macOS destekler ve ExpertPDF'nin Linux veya macOS desteğini belgelememesine rağmen daha geniş bir platform kapsama alanı sunar. Bulut dağıtımları için, IronPDF Azure entegrasyonu ve AWS Lambda desteği sunar. IronPDF, tam performans optimizasyonu ve bellek yönetimi rehberliği sağlar. Belirli platformlar için Red Hat Enterprise Linux desteği ve AWS Lambda üzerindeki Amazon Linux 2ye bakın.

Bir URL'den PDF Nasıl Oluşturabilirim?

Her iki kütüphane de HTML'yi PDF'ye dönüştürür. Daha fazla ayrıntı için URL'den PDF'ye kılavuzuna başvurun. Karmaşık web siteleri, özel render gecikmeleri veya JavaScript yürütme işleme gerektirebilir. Kimlik doğrulamalı siteler için TLS web sitesi ve sistem girişleri kılavuzuna bakın. IronPDF, piksel mükemmel HTML'den PDF'ye dönüştürme için Chrome renderını kullanarak üstün performans gösterir.

IronPDF URL'den PDF'ye Nasıl Dönüştürür?

IronPDF, URL'lerden gelen HTML'yi etkili bir şekilde PDF'ye dönüştürür. Kütüphane, CSS, JavaScript, görseller ve Formlar için üst düzey destek sağlar. Chrome render motoru, piksel mükemmel HTML'den PDF'ye dönüştürmeyi garanti eder. Render sorunları için piksel mükemmel HTML biçimlendirme kılavuzuna bakın. Gelişmiş render seçenekleri, özel kağıt boyutları ve görünüm yapılandırması içerir. JavaScript mesaj dinleyicisi, dinamik içerik yönetimine olanak tanır.

Bu kod örneği, IronPDF'nin geliştiricilere web sitesi URL'lerinden PDF oluşturma yeteneği sağladığını gösterir:

// Import the IronPdf library
using IronPdf;

// Initialize a new renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the specified URL as a PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_190___");
// Save the rendered PDF to a file
pdf.SaveAs("url.pdf");
// Import the IronPdf library
using IronPdf;

// Initialize a new renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the specified URL as a PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_190___");
// Save the rendered PDF to a file
pdf.SaveAs("url.pdf");
' Import the IronPdf library
Imports IronPdf

' Initialize a new renderer
Dim renderer As New ChromePdfRenderer()
' Render the specified URL as a PDF
Dim pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_190___")
' Save the rendered PDF to a file
pdf.SaveAs("url.pdf")
$vbLabelText   $csharpLabel

Kimlik doğrulamalı URL'ler için TLS web sitesi ve sistem girişleri kılavuzuna bakın. Kimlik doğrulamalı istekler için çerezler ve özel HTTP başlıkları yapılandırın. Güvenli siteler Kerberos kimlik doğrulaması gerektirebilir. Hata ayıklama için Chrome hata ayıklama kılavuzunu kullanın. Ek örnekler, URL'leri PDF'ye dönüştürmeyi gösterir.

ExpertPDF URL'den PDF'ye Nasıl Dönüştürür?

ExpertPDF, sayfa biçimlendirmesini koruyarak URL'leri savePdfFromUrlToFile yöntemi kullanarak dönüştürür:

// Import the ExpertPdf.HtmlToPdf namespace
using ExpertPdf.HtmlToPdf;

// Initialize a new PdfConverter
PdfConverter pdfConverter = new PdfConverter();
// Use PdfConverter to save a webpage URL directly to a PDF file
pdfConverter.SavePdfFromUrlToFile("___PROTECTED_URL_191___", "output.pdf");
// Import the ExpertPdf.HtmlToPdf namespace
using ExpertPdf.HtmlToPdf;

// Initialize a new PdfConverter
PdfConverter pdfConverter = new PdfConverter();
// Use PdfConverter to save a webpage URL directly to a PDF file
pdfConverter.SavePdfFromUrlToFile("___PROTECTED_URL_191___", "output.pdf");
' Import the ExpertPdf.HtmlToPdf namespace
Imports ExpertPdf.HtmlToPdf

' Initialize a new PdfConverter
Dim pdfConverter As New PdfConverter()
' Use PdfConverter to save a webpage URL directly to a PDF file
pdfConverter.SavePdfFromUrlToFile("___PROTECTED_URL_191___", "output.pdf")
$vbLabelText   $csharpLabel

Arka planda, IronPDF daha iyi HTML5 ve CSS3 desteği sağlamak için Chrome render motorunu kullanır.

HTML Giriş Dizisinden PDF Nasıl Oluşturabilirim?

Her iki kütüphane de HTML dizilerinden PDF oluşturur. Daha fazla ayrıntı için HTML dizisinden PDF'ye kılavuzuna başvurun. Ekran ve yazdırma için CSS kullanın ve web fontları ve ikon fontları kullanın. IronPDF, mükemmel Bootstrap ve Flexbox CSS desteği sağlar. HTML kullanarak PDF oluşturma örneği, pratik uygulamayı gösterir.

IronPDF HTML Dizisini PDF'ye Nasıl Dönüştürür?

Bu kod örneği, IronPDF'nin geliştiricilere HTML dizilerinden PDF belgeleri oluşturma yeteneği sağladığını gösterir:

// Import the IronPdf library
using IronPdf;

// Initialize a new renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render a PDF from HTML string and save it
var pdfDoc1 = renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
pdfDoc1.SaveAs("pixel-perfect.pdf");

// Render HTML with external assets and save it
var pdfDoc2 = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
pdfDoc2.SaveAs("html-with-assets.pdf");
// Import the IronPdf library
using IronPdf;

// Initialize a new renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render a PDF from HTML string and save it
var pdfDoc1 = renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
pdfDoc1.SaveAs("pixel-perfect.pdf");

// Render HTML with external assets and save it
var pdfDoc2 = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
pdfDoc2.SaveAs("html-with-assets.pdf");
' Import the IronPdf library
Imports IronPdf

' Initialize a new renderer
Private renderer As New ChromePdfRenderer()
' Render a PDF from HTML string and save it
Private pdfDoc1 = renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>")
pdfDoc1.SaveAs("pixel-perfect.pdf")

' Render HTML with external assets and save it
Dim pdfDoc2 = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
pdfDoc2.SaveAs("html-with-assets.pdf")
$vbLabelText   $csharpLabel

IronPDF, göreli yollar için temel URL'leri ve görselleri gömmek için DataURI'leri destekler. Karmaşık HTML için HTML dosyasından PDF'ye kılavuzuna bakın. Belirli görünümler için görünüm ve zoom ayarları kılavuzuna başvurun. Kütüphane, uluslararası dilleri ve UTF-8i sorunsuzca yönetir. Gelişmiş özellikler, HTML render ayarları ve duyarlı HTML'den PDF'ye dönüşüm içerir.

ExpertPDF HTML Dizisini PDF'ye Nasıl Dönüştürür?

ExpertPDF HTML'den PDF'ye dönüştürücü, HTML dizi dönüşümünü destekler:

// Import the ExpertPdf.HtmlToPdf namespace
using ExpertPdf.HtmlToPdf;

// Initialize a new PdfConverter
PdfConverter pdfConverter = new PdfConverter();
// Use PdfConverter to save an HTML string to a PDF file
pdfConverter.SavePdfFromHtmlStringToFile("<h1>PDF using Expert PDF</h1>", "html-to-pdf.pdf");
// Import the ExpertPdf.HtmlToPdf namespace
using ExpertPdf.HtmlToPdf;

// Initialize a new PdfConverter
PdfConverter pdfConverter = new PdfConverter();
// Use PdfConverter to save an HTML string to a PDF file
pdfConverter.SavePdfFromHtmlStringToFile("<h1>PDF using Expert PDF</h1>", "html-to-pdf.pdf");
' Import the ExpertPdf.HtmlToPdf namespace
Imports ExpertPdf.HtmlToPdf

' Initialize a new PdfConverter
Private pdfConverter As New PdfConverter()
' Use PdfConverter to save an HTML string to a PDF file
pdfConverter.SavePdfFromHtmlStringToFile("<h1>PDF using Expert PDF</h1>", "html-to-pdf.pdf")
$vbLabelText   $csharpLabel

İlk argüman HTML dizisini, ikincisi ise çıkış dosya adını belirtir. IronPDF'nin Unicode ve UTF-8 desteğini, daha büyük uluslararası dil desteği için basit HTML render yerine kullanmayı düşünün.

Nasıl Teknik Dokümantasyon PDF'leri Üretebilirim?

Teknik dokümantasyon, kod örnekleri ile yapılandırılmış yerleşimlerden faydalanır. Bu Bootstrap 5 gösterimi, IronPDF'nin söz dizimi belirginleştirme ve uyarılarla dokümantasyon üretebilme yeteneğini gösterir. Daha fazla ayrıntı için Bootstrap ve Flexbox CSS desteği kılavuzuna başvurun. IronPDF, profesyonel tipografi için yazı tipi yönetimi ve yazı tipi kerning destekler. Daha iyi sonuçlar için, yazı tipleri sorun giderme kılavuzu ve uluslararası diller desteği kontrol edin.

using IronPdf;

var renderer = new ChromePdfRenderer();

string technicalDocs = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='___PROTECTED_URL_192___ rel='stylesheet'>
    <style>
        .code-block { background: #f8f9fa; border-left: 3px solid #0d6efd; padding: 15px; border-radius: 4px; }
        .api-method { font-family: 'Courier New', monospace; color: #0d6efd; }
        @media print { .card, .alert { page-break-inside: avoid; } }
    </style>
</head>
<body class='bg-light'>
    <div class='container py-4'>
        <div class='card shadow-sm mb-4'>
            <div class='card-header bg-dark text-white'>
                <h2 class='mb-0'>API Reference - HTML to PDF Conversion</h2>
            </div>
            <div class='card-body'>
                <h4>RenderHtmlAsPdf() Method</h4>
                <p class='lead'>Converts HTML content to PDF with full CSS3 and JavaScript support.</p>

                <div class='code-block mb-3'>
                    <code class='api-method'>PdfDocument RenderHtmlAsPdf(string htmlContent)</code>
                </div>

                <div class='row mt-4'>
                    <div class='col-md-6'>
                        <h5 class='text-primary'>Parameters</h5>
                        <table class='table table-sm table-bordered'>
                            <tr>
                                <td><code>htmlContent</code></td>
                                <td>String containing HTML to convert</td>
                            </tr>
                        </table>
                    </div>
                    <div class='col-md-6'>
                        <h5 class='text-success'>Returns</h5>
                        <table class='table table-sm table-bordered'>
                            <tr>
                                <td><code>PdfDocument</code></td>
                                <td>Generated PDF document object</td>
                            </tr>
                        </table>
                    </div>
                </div>
            </div>
        </div>

        <div class='row g-3 mb-4'>
            <div class='col-md-4'>
                <div class='alert alert-success mb-0'>
                    <h6 class='alert-heading'>✓ Supported Features</h6>
                    <ul class='mb-0 small'>
                        <li>HTML5 semantic tags</li>
                        <li>CSS3 with Flexbox/Grid</li>
                        <li>JavaScript execution</li>
                        <li>External stylesheets</li>
                    </ul>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='alert alert-info mb-0'>
                    <h6 class='alert-heading'>ⓘ Rendering Engine</h6>
                    <ul class='mb-0 small'>
                        <li>Chrome V8 Engine</li>
                        <li>High-fidelity rendering</li>
                        <li>Fast HTML-to-PDF conversion</li>
                        <li>Async/await support</li>
                    </ul>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='alert alert-warning mb-0'>
                    <h6 class='alert-heading'>ⓘ IronPDF Advantages</h6>
                    <ul class='mb-0 small'>
                        <li>Intuitive API design</li>
                        <li>Full CSS3 and JS support</li>
                        <li>Cross-platform deployment</li>
                        <li>Minimal configuration needed</li>
                    </ul>
                </div>
            </div>
        </div>

        <div class='card shadow-sm'>
            <div class='card-header bg-primary text-white'>
                <h5 class='mb-0'>Code Example Comparison</h5>
            </div>
            <div class='card-body'>
                <div class='row'>
                    <div class='col-md-6'>
                        <h6 class='text-primary'>IronPDF (Simple)</h6>
                        <div class='code-block'>
                            <pre class='mb-0'><code>var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");</code></pre>
                        </div>
                        <div class='badge bg-success mt-2'>3 Lines</div>
                    </div>
                    <div class='col-md-6'>
                        <h6 class='text-warning'>ExpertPDF (Complex)</h6>
                        <div class='code-block'>
                            <pre class='mb-0'><code>var converter = new HtmlToPdfConverter();
converter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
converter.NavigationTimeout = 60;
byte[] result = converter.GetPdfBytesFromHtmlString(html);
File.WriteAllBytes("output.pdf", result);</code></pre>
                        </div>
                        <div class='badge bg-warning text-dark mt-2'>5+ Lines</div>
                    </div>
                </div>
            </div>
            <div class='card-footer text-muted'>
                <small><strong>Comparison:</strong> IronPDF provides a more intuitive API with less configuration overhead for common use cases.</small>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(technicalDocs);
pdf.SaveAs("technical-documentation.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

string technicalDocs = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='___PROTECTED_URL_192___ rel='stylesheet'>
    <style>
        .code-block { background: #f8f9fa; border-left: 3px solid #0d6efd; padding: 15px; border-radius: 4px; }
        .api-method { font-family: 'Courier New', monospace; color: #0d6efd; }
        @media print { .card, .alert { page-break-inside: avoid; } }
    </style>
</head>
<body class='bg-light'>
    <div class='container py-4'>
        <div class='card shadow-sm mb-4'>
            <div class='card-header bg-dark text-white'>
                <h2 class='mb-0'>API Reference - HTML to PDF Conversion</h2>
            </div>
            <div class='card-body'>
                <h4>RenderHtmlAsPdf() Method</h4>
                <p class='lead'>Converts HTML content to PDF with full CSS3 and JavaScript support.</p>

                <div class='code-block mb-3'>
                    <code class='api-method'>PdfDocument RenderHtmlAsPdf(string htmlContent)</code>
                </div>

                <div class='row mt-4'>
                    <div class='col-md-6'>
                        <h5 class='text-primary'>Parameters</h5>
                        <table class='table table-sm table-bordered'>
                            <tr>
                                <td><code>htmlContent</code></td>
                                <td>String containing HTML to convert</td>
                            </tr>
                        </table>
                    </div>
                    <div class='col-md-6'>
                        <h5 class='text-success'>Returns</h5>
                        <table class='table table-sm table-bordered'>
                            <tr>
                                <td><code>PdfDocument</code></td>
                                <td>Generated PDF document object</td>
                            </tr>
                        </table>
                    </div>
                </div>
            </div>
        </div>

        <div class='row g-3 mb-4'>
            <div class='col-md-4'>
                <div class='alert alert-success mb-0'>
                    <h6 class='alert-heading'>✓ Supported Features</h6>
                    <ul class='mb-0 small'>
                        <li>HTML5 semantic tags</li>
                        <li>CSS3 with Flexbox/Grid</li>
                        <li>JavaScript execution</li>
                        <li>External stylesheets</li>
                    </ul>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='alert alert-info mb-0'>
                    <h6 class='alert-heading'>ⓘ Rendering Engine</h6>
                    <ul class='mb-0 small'>
                        <li>Chrome V8 Engine</li>
                        <li>High-fidelity rendering</li>
                        <li>Fast HTML-to-PDF conversion</li>
                        <li>Async/await support</li>
                    </ul>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='alert alert-warning mb-0'>
                    <h6 class='alert-heading'>ⓘ IronPDF Advantages</h6>
                    <ul class='mb-0 small'>
                        <li>Intuitive API design</li>
                        <li>Full CSS3 and JS support</li>
                        <li>Cross-platform deployment</li>
                        <li>Minimal configuration needed</li>
                    </ul>
                </div>
            </div>
        </div>

        <div class='card shadow-sm'>
            <div class='card-header bg-primary text-white'>
                <h5 class='mb-0'>Code Example Comparison</h5>
            </div>
            <div class='card-body'>
                <div class='row'>
                    <div class='col-md-6'>
                        <h6 class='text-primary'>IronPDF (Simple)</h6>
                        <div class='code-block'>
                            <pre class='mb-0'><code>var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");</code></pre>
                        </div>
                        <div class='badge bg-success mt-2'>3 Lines</div>
                    </div>
                    <div class='col-md-6'>
                        <h6 class='text-warning'>ExpertPDF (Complex)</h6>
                        <div class='code-block'>
                            <pre class='mb-0'><code>var converter = new HtmlToPdfConverter();
converter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
converter.NavigationTimeout = 60;
byte[] result = converter.GetPdfBytesFromHtmlString(html);
File.WriteAllBytes("output.pdf", result);</code></pre>
                        </div>
                        <div class='badge bg-warning text-dark mt-2'>5+ Lines</div>
                    </div>
                </div>
            </div>
            <div class='card-footer text-muted'>
                <small><strong>Comparison:</strong> IronPDF provides a more intuitive API with less configuration overhead for common use cases.</small>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(technicalDocs);
pdf.SaveAs("technical-documentation.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

Dim technicalDocs As String = "
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='___PROTECTED_URL_192___ rel='stylesheet'>
    <style>
        .code-block { background: #f8f9fa; border-left: 3px solid #0d6efd; padding: 15px; border-radius: 4px; }
        .api-method { font-family: 'Courier New', monospace; color: #0d6efd; }
        @media print { .card, .alert { page-break-inside: avoid; } }
    </style>
</head>
<body class='bg-light'>
    <div class='container py-4'>
        <div class='card shadow-sm mb-4'>
            <div class='card-header bg-dark text-white'>
                <h2 class='mb-0'>API Reference - HTML to PDF Conversion</h2>
            </div>
            <div class='card-body'>
                <h4>RenderHtmlAsPdf() Method</h4>
                <p class='lead'>Converts HTML content to PDF with full CSS3 and JavaScript support.</p>

                <div class='code-block mb-3'>
                    <code class='api-method'>PdfDocument RenderHtmlAsPdf(string htmlContent)</code>
                </div>

                <div class='row mt-4'>
                    <div class='col-md-6'>
                        <h5 class='text-primary'>Parameters</h5>
                        <table class='table table-sm table-bordered'>
                            <tr>
                                <td><code>htmlContent</code></td>
                                <td>String containing HTML to convert</td>
                            </tr>
                        </table>
                    </div>
                    <div class='col-md-6'>
                        <h5 class='text-success'>Returns</h5>
                        <table class='table table-sm table-bordered'>
                            <tr>
                                <td><code>PdfDocument</code></td>
                                <td>Generated PDF document object</td>
                            </tr>
                        </table>
                    </div>
                </div>
            </div>
        </div>

        <div class='row g-3 mb-4'>
            <div class='col-md-4'>
                <div class='alert alert-success mb-0'>
                    <h6 class='alert-heading'>✓ Supported Features</h6>
                    <ul class='mb-0 small'>
                        <li>HTML5 semantic tags</li>
                        <li>CSS3 with Flexbox/Grid</li>
                        <li>JavaScript execution</li>
                        <li>External stylesheets</li>
                    </ul>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='alert alert-info mb-0'>
                    <h6 class='alert-heading'>ⓘ Rendering Engine</h6>
                    <ul class='mb-0 small'>
                        <li>Chrome V8 Engine</li>
                        <li>High-fidelity rendering</li>
                        <li>Fast HTML-to-PDF conversion</li>
                        <li>Async/await support</li>
                    </ul>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='alert alert-warning mb-0'>
                    <h6 class='alert-heading'>ⓘ IronPDF Advantages</h6>
                    <ul class='mb-0 small'>
                        <li>Intuitive API design</li>
                        <li>Full CSS3 and JS support</li>
                        <li>Cross-platform deployment</li>
                        <li>Minimal configuration needed</li>
                    </ul>
                </div>
            </div>
        </div>

        <div class='card shadow-sm'>
            <div class='card-header bg-primary text-white'>
                <h5 class='mb-0'>Code Example Comparison</h5>
            </div>
            <div class='card-body'>
                <div class='row'>
                    <div class='col-md-6'>
                        <h6 class='text-primary'>IronPDF (Simple)</h6>
                        <div class='code-block'>
                            <pre class='mb-0'><code>var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs(""output.pdf"");</code></pre>
                        </div>
                        <div class='badge bg-success mt-2'>3 Lines</div>
                    </div>
                    <div class='col-md-6'>
                        <h6 class='text-warning'>ExpertPDF (Complex)</h6>
                        <div class='code-block'>
                            <pre class='mb-0'><code>var converter = new HtmlToPdfConverter();
converter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
converter.NavigationTimeout = 60;
byte[] result = converter.GetPdfBytesFromHtmlString(html);
File.WriteAllBytes(""output.pdf"", result);</code></pre>
                        </div>
                        <div class='badge bg-warning text-dark mt-2'>5+ Lines</div>
                    </div>
                </div>
            </div>
            <div class='card-footer text-muted'>
                <small><strong>Comparison:</strong> IronPDF provides a more intuitive API with less configuration overhead for common use cases.</small>
            </div>
        </div>
    </div>
</body>
</html>"

Dim pdf = renderer.RenderHtmlAsPdf(technicalDocs)
pdf.SaveAs("technical-documentation.pdf")
$vbLabelText   $csharpLabel

Çıktı: Bootstrap 5 kartlar, uyarılar, tablolar ve kod blokları içeren profesyonel bir teknik dokümantasyon PDF'si. IronPDF, tüm tipografi, boşluk araçları ve ızgara yerleşimlerini doğru şekilde render ederek üstün dokümantasyon üretme yeteneklerini gösterir.

Nasıl Karmaşık Düzenlerle Mali Raporlar Oluşturabilirim?

Mali raporlama, hassas tablo biçimlendirmesi ve hesaplamalar gerektirir. Bu örnek, IronPDF'nin CSS Grid ve dinamik JavaScript ile karmaşık finansal yerleşim render yeteneklerini gösterir. Daha fazla ayrıntı için PDF'lerde JavaScript kılavuzuna ve özel JavaScript yürütmeye bakın. Mali belgeler, dosya optimizasyonu için PDF sıkıştırma ve uyumluluk için meta veri yönetimi gerektirebilir. PDF'lerde grafik render kılavuzu, veri görselleştirmeye yardımcı olur.

using IronPdf;

var renderer = new ChromePdfRenderer();
// Enable JavaScript for dynamic calculations
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Allow JS to execute

string financialReport = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <style>
        @page { size: A4; margin: 20mm; }
        body { font-family: Arial, sans-serif; line-height: 1.6; }
        .header { text-align: center; margin-bottom: 30px; }
        .financial-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 10px; margin-bottom: 20px; }
        .grid-header { background: #2c3e50; color: white; padding: 10px; font-weight: bold; }
        .grid-row { padding: 10px; border-bottom: 1px solid #ddd; }
        .grid-row:hover { background: #f9f9f9; }
        .amount { text-align: right; font-family: 'Courier New', monospace; }
        .positive { color: #27ae60; }
        .negative { color: #e74c3c; }
        .total-row { background: #ecf0f1; font-weight: bold; margin-top: 10px; }
        .footer-note { font-size: 0.8em; color: #666; margin-top: 30px; text-align: center; }
        @media print { 
            .grid-row:hover { background: transparent; }
            .financial-grid { page-break-inside: avoid; }
        }
    </style>
</head>
<body>
    <div class='header'>
        <h1>Quarterly Financial Report</h1>
        <p>Q4 2023 - Consolidated Statement</p>
    </div>

    <div class='financial-grid'>
        <div class='grid-header'>Revenue Stream</div>
        <div class='grid-header amount'>Q3 2023</div>
        <div class='grid-header amount'>Q4 2023</div>

        <div class='grid-row'>Software Licenses</div>
        <div class='grid-row amount'>$2,150,000</div>
        <div class='grid-row amount positive'>$2,875,000</div>

        <div class='grid-row'>Support Services</div>
        <div class='grid-row amount'>$850,000</div>
        <div class='grid-row amount positive'>$975,000</div>

        <div class='grid-row'>Consulting</div>
        <div class='grid-row amount'>$425,000</div>
        <div class='grid-row amount negative'>$380,000</div>

        <div class='grid-row total-row'>Total Revenue</div>
        <div class='grid-row total-row amount'>$3,425,000</div>
        <div class='grid-row total-row amount positive' id='total'>$4,230,000</div>
    </div>

    <div class='financial-grid'>
        <div class='grid-header'>Operating Expenses</div>
        <div class='grid-header amount'>Q3 2023</div>
        <div class='grid-header amount'>Q4 2023</div>

        <div class='grid-row'>R&D</div>
        <div class='grid-row amount'>$1,200,000</div>
        <div class='grid-row amount'>$1,350,000</div>

        <div class='grid-row'>Sales & Marketing</div>
        <div class='grid-row amount'>$800,000</div>
        <div class='grid-row amount'>$950,000</div>

        <div class='grid-row'>General & Admin</div>
        <div class='grid-row amount'>$400,000</div>
        <div class='grid-row amount'>$425,000</div>

        <div class='grid-row total-row'>Total Expenses</div>
        <div class='grid-row total-row amount'>$2,400,000</div>
        <div class='grid-row total-row amount'>$2,725,000</div>
    </div>

    <script>
        // Calculate growth percentage
        const q3Total = 3425000;
        const q4Total = 4230000;
        const growth = ((q4Total - q3Total) / q3Total * 100).toFixed(1);

        // Add growth indicator
        const totalEl = document.getElementById('total');
        totalEl.innerHTML += ` <small>(+${growth}%)</small>`;
    </script>

    <div class='footer-note'>
        <p>This report was generated using IronPDF's advanced rendering engine.<br>
        All financial figures are in USD. Report generated on: <span id='date'></span></p>
    </div>

    <script>
        document.getElementById('date').textContent = new Date().toLocaleDateString();
    </script>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(financialReport);
pdf.SaveAs("financial-report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();
// Enable JavaScript for dynamic calculations
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Allow JS to execute

string financialReport = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <style>
        @page { size: A4; margin: 20mm; }
        body { font-family: Arial, sans-serif; line-height: 1.6; }
        .header { text-align: center; margin-bottom: 30px; }
        .financial-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 10px; margin-bottom: 20px; }
        .grid-header { background: #2c3e50; color: white; padding: 10px; font-weight: bold; }
        .grid-row { padding: 10px; border-bottom: 1px solid #ddd; }
        .grid-row:hover { background: #f9f9f9; }
        .amount { text-align: right; font-family: 'Courier New', monospace; }
        .positive { color: #27ae60; }
        .negative { color: #e74c3c; }
        .total-row { background: #ecf0f1; font-weight: bold; margin-top: 10px; }
        .footer-note { font-size: 0.8em; color: #666; margin-top: 30px; text-align: center; }
        @media print { 
            .grid-row:hover { background: transparent; }
            .financial-grid { page-break-inside: avoid; }
        }
    </style>
</head>
<body>
    <div class='header'>
        <h1>Quarterly Financial Report</h1>
        <p>Q4 2023 - Consolidated Statement</p>
    </div>

    <div class='financial-grid'>
        <div class='grid-header'>Revenue Stream</div>
        <div class='grid-header amount'>Q3 2023</div>
        <div class='grid-header amount'>Q4 2023</div>

        <div class='grid-row'>Software Licenses</div>
        <div class='grid-row amount'>$2,150,000</div>
        <div class='grid-row amount positive'>$2,875,000</div>

        <div class='grid-row'>Support Services</div>
        <div class='grid-row amount'>$850,000</div>
        <div class='grid-row amount positive'>$975,000</div>

        <div class='grid-row'>Consulting</div>
        <div class='grid-row amount'>$425,000</div>
        <div class='grid-row amount negative'>$380,000</div>

        <div class='grid-row total-row'>Total Revenue</div>
        <div class='grid-row total-row amount'>$3,425,000</div>
        <div class='grid-row total-row amount positive' id='total'>$4,230,000</div>
    </div>

    <div class='financial-grid'>
        <div class='grid-header'>Operating Expenses</div>
        <div class='grid-header amount'>Q3 2023</div>
        <div class='grid-header amount'>Q4 2023</div>

        <div class='grid-row'>R&D</div>
        <div class='grid-row amount'>$1,200,000</div>
        <div class='grid-row amount'>$1,350,000</div>

        <div class='grid-row'>Sales & Marketing</div>
        <div class='grid-row amount'>$800,000</div>
        <div class='grid-row amount'>$950,000</div>

        <div class='grid-row'>General & Admin</div>
        <div class='grid-row amount'>$400,000</div>
        <div class='grid-row amount'>$425,000</div>

        <div class='grid-row total-row'>Total Expenses</div>
        <div class='grid-row total-row amount'>$2,400,000</div>
        <div class='grid-row total-row amount'>$2,725,000</div>
    </div>

    <script>
        // Calculate growth percentage
        const q3Total = 3425000;
        const q4Total = 4230000;
        const growth = ((q4Total - q3Total) / q3Total * 100).toFixed(1);

        // Add growth indicator
        const totalEl = document.getElementById('total');
        totalEl.innerHTML += ` <small>(+${growth}%)</small>`;
    </script>

    <div class='footer-note'>
        <p>This report was generated using IronPDF's advanced rendering engine.<br>
        All financial figures are in USD. Report generated on: <span id='date'></span></p>
    </div>

    <script>
        document.getElementById('date').textContent = new Date().toLocaleDateString();
    </script>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(financialReport);
pdf.SaveAs("financial-report.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()
' Enable JavaScript for dynamic calculations
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.RenderDelay = 500 ' Allow JS to execute

Dim financialReport As String = "
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <style>
        @page { size: A4; margin: 20mm; }
        body { font-family: Arial, sans-serif; line-height: 1.6; }
        .header { text-align: center; margin-bottom: 30px; }
        .financial-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 10px; margin-bottom: 20px; }
        .grid-header { background: #2c3e50; color: white; padding: 10px; font-weight: bold; }
        .grid-row { padding: 10px; border-bottom: 1px solid #ddd; }
        .grid-row:hover { background: #f9f9f9; }
        .amount { text-align: right; font-family: 'Courier New', monospace; }
        .positive { color: #27ae60; }
        .negative { color: #e74c3c; }
        .total-row { background: #ecf0f1; font-weight: bold; margin-top: 10px; }
        .footer-note { font-size: 0.8em; color: #666; margin-top: 30px; text-align: center; }
        @media print { 
            .grid-row:hover { background: transparent; }
            .financial-grid { page-break-inside: avoid; }
        }
    </style>
</head>
<body>
    <div class='header'>
        <h1>Quarterly Financial Report</h1>
        <p>Q4 2023 - Consolidated Statement</p>
    </div>

    <div class='financial-grid'>
        <div class='grid-header'>Revenue Stream</div>
        <div class='grid-header amount'>Q3 2023</div>
        <div class='grid-header amount'>Q4 2023</div>

        <div class='grid-row'>Software Licenses</div>
        <div class='grid-row amount'>$2,150,000</div>
        <div class='grid-row amount positive'>$2,875,000</div>

        <div class='grid-row'>Support Services</div>
        <div class='grid-row amount'>$850,000</div>
        <div class='grid-row amount positive'>$975,000</div>

        <div class='grid-row'>Consulting</div>
        <div class='grid-row amount'>$425,000</div>
        <div class='grid-row amount negative'>$380,000</div>

        <div class='grid-row total-row'>Total Revenue</div>
        <div class='grid-row total-row amount'>$3,425,000</div>
        <div class='grid-row total-row amount positive' id='total'>$4,230,000</div>
    </div>

    <div class='financial-grid'>
        <div class='grid-header'>Operating Expenses</div>
        <div class='grid-header amount'>Q3 2023</div>
        <div class='grid-header amount'>Q4 2023</div>

        <div class='grid-row'>R&D</div>
        <div class='grid-row amount'>$1,200,000</div>
        <div class='grid-row amount'>$1,350,000</div>

        <div class='grid-row'>Sales & Marketing</div>
        <div class='grid-row amount'>$800,000</div>
        <div class='grid-row amount'>$950,000</div>

        <div class='grid-row'>General & Admin</div>
        <div class='grid-row amount'>$400,000</div>
        <div class='grid-row amount'>$425,000</div>

        <div class='grid-row total-row'>Total Expenses</div>
        <div class='grid-row total-row amount'>$2,400,000</div>
        <div class='grid-row total-row amount'>$2,725,000</div>
    </div>

    <script>
        // Calculate growth percentage
        const q3Total = 3425000;
        const q4Total = 4230000;
        const growth = ((q4Total - q3Total) / q3Total * 100).toFixed(1);

        // Add growth indicator
        const totalEl = document.getElementById('total');
        totalEl.innerHTML += ` <small>(+${growth}%)</small>`;
    </script>

    <div class='footer-note'>
        <p>This report was generated using IronPDF's advanced rendering engine.<br>
        All financial figures are in USD. Report generated on: <span id='date'></span></p>
    </div>

    <script>
        document.getElementById('date').textContent = new Date().toLocaleDateString();
    </script>
</body>
</html>"

Dim pdf = renderer.RenderHtmlAsPdf(financialReport)
pdf.SaveAs("financial-report.pdf")
$vbLabelText   $csharpLabel

Bu kod örneği, IronPDF'nin geliştiricilere CSS Grid yerleşimleri, JavaScript yürütme ve yazdırmaya özgü CSS kullanma imkanı sağladığını gösterir. Özel başlıklar ve altbilgiler ekleyin, markalama için arka planlar ve ön planlar uygulayın, güvenlik için filigranlar ve kimlik doğrulama için dijital imzalar ekleyin. Daha fazla ayrıntı için PDF raporları oluşturma kılavuzuna başvurun.

Birden Çok PDF Dosyasını Tek Bir PDF'ye Nasıl Birleştirebilirim?

Her iki kütüphane de birden çok PDF'yi tek bir belgede birleştirir ve verileri verimli bir şekilde iletmek için birleştirir. Daha fazla ayrıntı için PDF'leri birleştirme veya ayırma kılavuzuna başvurun. Çok sayfalı belgeler, sayfa yönetimi veya çok sayfalı PDF'leri ayırma gerektirebilir. Büyük dosya performansı için, eşzamansız PDF oluşturma veya paralel işlem düşünün. Birleştirmek için iki veya daha fazla PDF örneği pratik uygulama sağlar. PDF'leri düzenlemek için IronPDF, eksiksiz araçlar sunar.

IronPDF PDF Dosyalarını Nasıl Birleştirir?

Bu kod örneği, IronPDF'nin geliştiricilere HTML dizilerinden iki PDF render etme ve birleştirme yeteneği sunduğunu gösterir. Basit yaklaşım, ek ayar seçenekleri sunar. Birleştirilmiş belgelerde sayfa numaraları ve sayfa sonları için, ilgili kılavuzlara bakın. PDF sayfalarını başka bir PDF dosyasına kopyalayın için ayrıca bakın. Formlar için, form yönetimi ve form düzenleme dokümantasyonu kılavuzuna bakın. Sayfa numaraları ve sayfa sonları örneği, birleşik uygulamayı gösterir.

// Import the IronPdf library
using IronPdf;

// Define HTML strings to convert to PDF
var htmlA = @"<p> [PDF_A] </p>
        <p> [PDF_A] 1st Page </p>
        <div style='page-break-after: always;'></div>
        <p> [PDF_A] 2nd Page</p>";

var htmlB = @"<p> [PDF_B] </p>
        <p> [PDF_B] 1st Page </p>
        <div style='page-break-after: always;'></div>
        <p> [PDF_B] 2nd Page</p>";

// Initialize a new renderer
var renderer = new ChromePdfRenderer();

// Render HTML strings as PDFs
var pdfDocA = renderer.RenderHtmlAsPdf(htmlA);
var pdfDocB = renderer.RenderHtmlAsPdf(htmlB);

// Merge the PDF documents
var mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB);

// Save the merged PDF
mergedPdf.SaveAs("Merged.pdf");
// Import the IronPdf library
using IronPdf;

// Define HTML strings to convert to PDF
var htmlA = @"<p> [PDF_A] </p>
        <p> [PDF_A] 1st Page </p>
        <div style='page-break-after: always;'></div>
        <p> [PDF_A] 2nd Page</p>";

var htmlB = @"<p> [PDF_B] </p>
        <p> [PDF_B] 1st Page </p>
        <div style='page-break-after: always;'></div>
        <p> [PDF_B] 2nd Page</p>";

// Initialize a new renderer
var renderer = new ChromePdfRenderer();

// Render HTML strings as PDFs
var pdfDocA = renderer.RenderHtmlAsPdf(htmlA);
var pdfDocB = renderer.RenderHtmlAsPdf(htmlB);

// Merge the PDF documents
var mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB);

// Save the merged PDF
mergedPdf.SaveAs("Merged.pdf");
' Import the IronPdf library
Imports IronPdf

' Define HTML strings to convert to PDF
Private htmlA = "<p> [PDF_A] </p>
        <p> [PDF_A] 1st Page </p>
        <div style='page-break-after: always;'></div>
        <p> [PDF_A] 2nd Page</p>"

Private htmlB = "<p> [PDF_B] </p>
        <p> [PDF_B] 1st Page </p>
        <div style='page-break-after: always;'></div>
        <p> [PDF_B] 2nd Page</p>"

' Initialize a new renderer
Private renderer = New ChromePdfRenderer()

' Render HTML strings as PDFs
Private pdfDocA = renderer.RenderHtmlAsPdf(htmlA)
Private pdfDocB = renderer.RenderHtmlAsPdf(htmlB)

' Merge the PDF documents
Private mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB)

' Save the merged PDF
mergedPdf.SaveAs("Merged.pdf")
$vbLabelText   $csharpLabel

Merge yöntemi, çoklu belgeleri enumerate nesneleri olarak kabul eder. PDF'leri Birleştirmek için IronPDF Kod Örneğine bakın. Kapak sayfaları ekleme veya bir içindekiler tablosu oluşturma için özel kılavuzlara bakın. Yeni içerik damgalayın veya ekler ekleyin için ayrıca bakın. Bir PDF'yi ayırma ve sayfaları çıkarma örneği ters işlemleri gösterir.

Not: Birleştirilmiş PDF'ler, düzenlenebilir formlar içeren, form alanı adlarına indeks numaraları ekler. Form veri yönetimi kılavuzuna daha fazla bilgi için bakın.

ExpertPDF PDF Dosyalarını Nasıl Birleştirir?

ExpertPDF, ayrı kurulum gerektiren PDF Birleştirme bileşeni kullanır. AppendPDFFile yöntemi, dosyaları PDFMerge nesnelerine ekler:

// Import the ExpertPdf.MergePdf namespace
using ExpertPdf.MergePdf;

// Initialize a new PDFMerge object
PDFMerge pdfMerge = new PDFMerge();
// Append PDF files to the merge object
pdfMerge.AppendPDFFile("output.pdf");
pdfMerge.AppendPDFFile("html-to-pdf.pdf");
// Save the merged PDF to a file
pdfMerge.SaveMergedPDFToFile("merged.pdf");
// Import the ExpertPdf.MergePdf namespace
using ExpertPdf.MergePdf;

// Initialize a new PDFMerge object
PDFMerge pdfMerge = new PDFMerge();
// Append PDF files to the merge object
pdfMerge.AppendPDFFile("output.pdf");
pdfMerge.AppendPDFFile("html-to-pdf.pdf");
// Save the merged PDF to a file
pdfMerge.SaveMergedPDFToFile("merged.pdf");
' Import the ExpertPdf.MergePdf namespace
Imports ExpertPdf.MergePdf

' Initialize a new PDFMerge object
Private pdfMerge As New PDFMerge()
' Append PDF files to the merge object
pdfMerge.AppendPDFFile("output.pdf")
pdfMerge.AppendPDFFile("html-to-pdf.pdf")
' Save the merged PDF to a file
pdfMerge.SaveMergedPDFToFile("merged.pdf")
$vbLabelText   $csharpLabel

Arka planda, IronPDF daha verimli birleştirme algoritmaları kullanır. Daha fazla performans için eşzamanlı işlemlerin yerine IronPDF'nin eşzamansız PDF oluşturma ve çok iş parçacıklı oluşturmasını kullanmayı düşünün.

Doküman Organizasyonu ile Gelişmiş PDF Birleştirme Nasıl Uygulanır?

Enterprise uygulamaları, PDF'leri birleştirirken yer imleri, sayfa organizasyonu ve meta veri korunumu gibi gelişmiş özelliklere ihtiyaç duyar. Bu örnek, yer imleri yönetimi, meta verilerin işlenmesi ve belge organizasyonunu gösterir. Uyumluluk için revizyon tarihini uygulayın, PDF/A dönüştürme ve PDF/UA erişilebilirliğini dahil edin. Ana hatlar ve yer imleri örneği, ek uygulama detayları sağlar. Daha fazla ayrıntı için meta verileri ayarlama ve düzenleme kılavuzuna ve meta veri görünürlüğü sorun gidermene başvurun.

using IronPdf;
using System.Collections.Generic;
using System.Linq;

public class AdvancedPdfMerger
{
    public static void MergeDocumentsWithBookmarks()
    {
        var renderer = new ChromePdfRenderer();
        var documentsToMerge = new List<PdfDocument>();

        // Create chapter PDFs with proper structure
        string[] chapters = { "Introduction", "Technical Overview", "Implementation", "Conclusion" };

        foreach (var chapter in chapters)
        {
            string html = $@"
                <html>
                <head>
                    <style>
                        body {{font-family: Georgia, serif; margin: 40px;}}
                        h1 {{color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 10px;}}
                        .chapter-number {{color: #7f8c8d; font-size: 0.8em;}}
                    </style>
                </head>
                <body>
                    <h1><span class='chapter-number'>Chapter {Array.IndexOf(chapters, chapter) + 1}</span><br>{chapter}</h1>
                    <p>This is the content for the {chapter} chapter. In a real document, this would contain 
                    extensive content, diagrams, and detailed explanations.</p>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor 
                    incididunt ut labore et dolore magna aliqua.</p>
                </body>
                </html>";

            var pdf = renderer.RenderHtmlAsPdf(html);

            // Add metadata to each chapter
            pdf.MetaData.Title = $"Chapter: {chapter}";
            pdf.MetaData.Author = "Technical Documentation Team";
            pdf.MetaData.Subject = "Enterprise PDF Generation";

            documentsToMerge.Add(pdf);
        }

        // Create a table of contents
        string tocHtml = @"
            <html>
            <head>
                <style>
                    body { font-family: Georgia, serif; margin: 40px; }
                    h1 { text-align: center; color: #2c3e50; margin-bottom: 40px; }
                    .toc-entry { margin: 15px 0; font-size: 1.1em; }
                    .toc-entry a { text-decoration: none; color: #3498db; }
                    .page-number { float: right; color: #7f8c8d; }
                </style>
            </head>
            <body>
                <h1>Table of Contents</h1>";

        int pageNumber = 2; // Starting after TOC page
        foreach (var chapter in chapters)
        {
            tocHtml += $@"
                <div class='toc-entry'>
                    <a href='#'>Chapter {Array.IndexOf(chapters, chapter) + 1}: {chapter}</a>
                    <span class='page-number'>{pageNumber}</span>
                </div>";
            pageNumber += 2; // Assuming each chapter is 2 pages
        }

        tocHtml += @"
            </body>
            </html>";

        var tocPdf = renderer.RenderHtmlAsPdf(tocHtml);

        // Merge all documents with TOC first
        var allDocuments = new List<PdfDocument> { tocPdf };
        allDocuments.AddRange(documentsToMerge);

        var finalPdf = PdfDocument.Merge(allDocuments);

        // Add bookmarks for navigation
        finalPdf.BookMarks.AddBookMarkAtStart("Table of Contents", 0);
        int currentPage = 1; // After TOC
        foreach (var chapter in chapters)
        {
            finalPdf.BookMarks.AddBookMarkAtStart($"Chapter {Array.IndexOf(chapters, chapter) + 1}: {chapter}", currentPage);
            currentPage += 2;
        }

        // Set document properties
        finalPdf.MetaData.Title = "Complete Technical Documentation";
        finalPdf.MetaData.Keywords = "IronPDF, Documentation, Enterprise, .NET";
        finalPdf.MetaData.CreationDate = System.DateTime.Now;

        // Add page numbers to footer
        finalPdf.AddTextFooters("Page {page} of {total-pages}", 
            new ChromePdfRenderer.ChromePdfRenderOptions() 
            { 
                MarginBottom = 20,
                MarginLeft = 50,
                MarginRight = 50
            });

        finalPdf.SaveAs("advanced-merged-document.pdf");
    }
}
using IronPdf;
using System.Collections.Generic;
using System.Linq;

public class AdvancedPdfMerger
{
    public static void MergeDocumentsWithBookmarks()
    {
        var renderer = new ChromePdfRenderer();
        var documentsToMerge = new List<PdfDocument>();

        // Create chapter PDFs with proper structure
        string[] chapters = { "Introduction", "Technical Overview", "Implementation", "Conclusion" };

        foreach (var chapter in chapters)
        {
            string html = $@"
                <html>
                <head>
                    <style>
                        body {{font-family: Georgia, serif; margin: 40px;}}
                        h1 {{color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 10px;}}
                        .chapter-number {{color: #7f8c8d; font-size: 0.8em;}}
                    </style>
                </head>
                <body>
                    <h1><span class='chapter-number'>Chapter {Array.IndexOf(chapters, chapter) + 1}</span><br>{chapter}</h1>
                    <p>This is the content for the {chapter} chapter. In a real document, this would contain 
                    extensive content, diagrams, and detailed explanations.</p>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor 
                    incididunt ut labore et dolore magna aliqua.</p>
                </body>
                </html>";

            var pdf = renderer.RenderHtmlAsPdf(html);

            // Add metadata to each chapter
            pdf.MetaData.Title = $"Chapter: {chapter}";
            pdf.MetaData.Author = "Technical Documentation Team";
            pdf.MetaData.Subject = "Enterprise PDF Generation";

            documentsToMerge.Add(pdf);
        }

        // Create a table of contents
        string tocHtml = @"
            <html>
            <head>
                <style>
                    body { font-family: Georgia, serif; margin: 40px; }
                    h1 { text-align: center; color: #2c3e50; margin-bottom: 40px; }
                    .toc-entry { margin: 15px 0; font-size: 1.1em; }
                    .toc-entry a { text-decoration: none; color: #3498db; }
                    .page-number { float: right; color: #7f8c8d; }
                </style>
            </head>
            <body>
                <h1>Table of Contents</h1>";

        int pageNumber = 2; // Starting after TOC page
        foreach (var chapter in chapters)
        {
            tocHtml += $@"
                <div class='toc-entry'>
                    <a href='#'>Chapter {Array.IndexOf(chapters, chapter) + 1}: {chapter}</a>
                    <span class='page-number'>{pageNumber}</span>
                </div>";
            pageNumber += 2; // Assuming each chapter is 2 pages
        }

        tocHtml += @"
            </body>
            </html>";

        var tocPdf = renderer.RenderHtmlAsPdf(tocHtml);

        // Merge all documents with TOC first
        var allDocuments = new List<PdfDocument> { tocPdf };
        allDocuments.AddRange(documentsToMerge);

        var finalPdf = PdfDocument.Merge(allDocuments);

        // Add bookmarks for navigation
        finalPdf.BookMarks.AddBookMarkAtStart("Table of Contents", 0);
        int currentPage = 1; // After TOC
        foreach (var chapter in chapters)
        {
            finalPdf.BookMarks.AddBookMarkAtStart($"Chapter {Array.IndexOf(chapters, chapter) + 1}: {chapter}", currentPage);
            currentPage += 2;
        }

        // Set document properties
        finalPdf.MetaData.Title = "Complete Technical Documentation";
        finalPdf.MetaData.Keywords = "IronPDF, Documentation, Enterprise, .NET";
        finalPdf.MetaData.CreationDate = System.DateTime.Now;

        // Add page numbers to footer
        finalPdf.AddTextFooters("Page {page} of {total-pages}", 
            new ChromePdfRenderer.ChromePdfRenderOptions() 
            { 
                MarginBottom = 20,
                MarginLeft = 50,
                MarginRight = 50
            });

        finalPdf.SaveAs("advanced-merged-document.pdf");
    }
}
Imports IronPdf
Imports System.Collections.Generic
Imports System.Linq

Public Class AdvancedPdfMerger
    Public Shared Sub MergeDocumentsWithBookmarks()
        Dim renderer As New ChromePdfRenderer()
        Dim documentsToMerge As New List(Of PdfDocument)()

        ' Create chapter PDFs with proper structure
        Dim chapters As String() = {"Introduction", "Technical Overview", "Implementation", "Conclusion"}

        For Each chapter In chapters
            Dim html As String = $"
                <html>
                <head>
                    <style>
                        body {{font-family: Georgia, serif; margin: 40px;}}
                        h1 {{color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 10px;}}
                        .chapter-number {{color: #7f8c8d; font-size: 0.8em;}}
                    </style>
                </head>
                <body>
                    <h1><span class='chapter-number'>Chapter {Array.IndexOf(chapters, chapter) + 1}</span><br>{chapter}</h1>
                    <p>This is the content for the {chapter} chapter. In a real document, this would contain 
                    extensive content, diagrams, and detailed explanations.</p>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor 
                    incididunt ut labore et dolore magna aliqua.</p>
                </body>
                </html>"

            Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

            ' Add metadata to each chapter
            pdf.MetaData.Title = $"Chapter: {chapter}"
            pdf.MetaData.Author = "Technical Documentation Team"
            pdf.MetaData.Subject = "Enterprise PDF Generation"

            documentsToMerge.Add(pdf)
        Next

        ' Create a table of contents
        Dim tocHtml As String = "
            <html>
            <head>
                <style>
                    body { font-family: Georgia, serif; margin: 40px; }
                    h1 { text-align: center; color: #2c3e50; margin-bottom: 40px; }
                    .toc-entry { margin: 15px 0; font-size: 1.1em; }
                    .toc-entry a { text-decoration: none; color: #3498db; }
                    .page-number { float: right; color: #7f8c8d; }
                </style>
            </head>
            <body>
                <h1>Table of Contents</h1>"

        Dim pageNumber As Integer = 2 ' Starting after TOC page
        For Each chapter In chapters
            tocHtml += $"
                <div class='toc-entry'>
                    <a href='#'>Chapter {Array.IndexOf(chapters, chapter) + 1}: {chapter}</a>
                    <span class='page-number'>{pageNumber}</span>
                </div>"
            pageNumber += 2 ' Assuming each chapter is 2 pages
        Next

        tocHtml += "
            </body>
            </html>"

        Dim tocPdf As PdfDocument = renderer.RenderHtmlAsPdf(tocHtml)

        ' Merge all documents with TOC first
        Dim allDocuments As New List(Of PdfDocument) From {tocPdf}
        allDocuments.AddRange(documentsToMerge)

        Dim finalPdf As PdfDocument = PdfDocument.Merge(allDocuments)

        ' Add bookmarks for navigation
        finalPdf.BookMarks.AddBookMarkAtStart("Table of Contents", 0)
        Dim currentPage As Integer = 1 ' After TOC
        For Each chapter In chapters
            finalPdf.BookMarks.AddBookMarkAtStart($"Chapter {Array.IndexOf(chapters, chapter) + 1}: {chapter}", currentPage)
            currentPage += 2
        Next

        ' Set document properties
        finalPdf.MetaData.Title = "Complete Technical Documentation"
        finalPdf.MetaData.Keywords = "IronPDF, Documentation, Enterprise, .NET"
        finalPdf.MetaData.CreationDate = DateTime.Now

        ' Add page numbers to footer
        finalPdf.AddTextFooters("Page {page} of {total-pages}", 
            New ChromePdfRenderer.ChromePdfRenderOptions() With {
                .MarginBottom = 20,
                .MarginLeft = 50,
                .MarginRight = 50
            })

        finalPdf.SaveAs("advanced-merged-document.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Bu gelişmiş uygulama, yer imi yönetimini, meta veri işleme ve sayfa numaralandırmayı göstermektedir. Daha fazla ayrıntı için PDF'leri düzenleme kılavuzuna bakın. Birleştirme işleminden sonra PDF sıkıştırma tekniklerini keşfedin. Güvenlik için şifre koruması ve şifreleme uygulayın. Klasik metin üst bilgi ve alt bilgileri ekleme örneği biçimlendirme seçenekleri sağlar. Ek özellikler için, sayfa numaraları ekleme ve içindekiler tablosu ekleme kılavuzlarına bakın. Şifreler, güvenlik ve meta veri örneği, entegre uygulamayı gösterir.

Görüntüleri PDF'ye Nasıl Dönüştürebilirim?

IronPDF, ExpertPDF'nin sunmadığı çeşitli görüntüleri PDF'ye dönüştürür. Ancak, ExpertPDF görüntüleri PDF'lerden çıkarır ve PDF'leri görüntülere dönüştürür, bu yetenekleri IronPDF de sağlar. Daha fazla bilgi için görüntüden PDF'ye kılavuzuna bakın. IronPDF, PDF'leri görüntülere rastarlaştırmayı ve metin ve görüntüleri çıkarmayı destekler. İleri düzey senaryolar için, metin ve bit eşlemler çizin veya çizgiler ve dikdörtgenler çizin. Görüntülerden PDF örneği, pratik uygulamayı gösterir. Görüntü kalitesi için, C# PDF'den görüntüye kalite kaybı olmadan örneğine bakın.

IronPDF Görüntüleri PDF'ye Nasıl Dönüştürür?

Görüntülerden PDF oluşturma, ImageToPdfConverter sınıfını kullanır. Görüntüler herhangi bir klasörden yüklenir, çok sayfalı TIFF dosyaları dahil olmak üzere çeşitli formatları destekler. Ayrıca mevcut PDF'lere görüntü ekleyin veya SVG grafiklerle çalışın. Bellek verimliliği için, MemoryStream kullanarak görüntülere rastarlayın. Özel PDF boyutu örneği, yerleşim kontrolüne yardımcı olur.

// Import the IronPdf namespace
using IronPdf;

// Specify the folder containing the image files
var imageFiles = System.IO.Directory.EnumerateFiles(@"C:\project\assets")
                  .Where(file => file.EndsWith(".jpg") || file.EndsWith(".jpeg"));

// Convert the images to a PDF document
var pdfDocument = ImageToPdfConverter.ImageToPdf(imageFiles);
// Save the PDF document
pdfDocument.SaveAs(@"C:\project\composite.pdf");
// Import the IronPdf namespace
using IronPdf;

// Specify the folder containing the image files
var imageFiles = System.IO.Directory.EnumerateFiles(@"C:\project\assets")
                  .Where(file => file.EndsWith(".jpg") || file.EndsWith(".jpeg"));

// Convert the images to a PDF document
var pdfDocument = ImageToPdfConverter.ImageToPdf(imageFiles);
// Save the PDF document
pdfDocument.SaveAs(@"C:\project\composite.pdf");
' Import the IronPdf namespace
Imports IronPdf

' Specify the folder containing the image files
Private imageFiles = System.IO.Directory.EnumerateFiles("C:\project\assets").Where(Function(file) file.EndsWith(".jpg") OrElse file.EndsWith(".jpeg"))

' Convert the images to a PDF document
Private pdfDocument = ImageToPdfConverter.ImageToPdf(imageFiles)
' Save the PDF document
pdfDocument.SaveAs("C:\project\composite.pdf")
$vbLabelText   $csharpLabel

Görüntüleri PDF'ye dönüştürmenin ötesinde, IronPDF taranmış belgeleri ve iş belgelerini görüntülere rastarlayarak dönüştürür. Kütüphane ayrıca çeşitli dosya türlerinden görüntüleri çıkarır. Bellek işlemleri için MemoryStream kullanarak görüntülere rastarlama kılavuzuna bakın. Büyük görüntüler için, ImageToPDF dosya boyutu optimizasyonunu düşünün. Dikey ve yatay düzen örneği, sayfa ayarına yardımcı olur. İleri düzey görüntü işleme için bit eşlemleri ve görüntüleri yerleştirme örneğine bakın.

Gelişmiş Görüntüden PDF'ye Dönüştürmeler Nasıl Yapılır ve Yerleşim Kontrolü Sağlanır?

Kontrol edilen görüntü yerleşimi ve profesyonel yerleşimler için, bu fotoğraf albümü örneği görüntülerin yerleştirilmesini ve yerleşim oluşturmayı gösterir. Bulut depolama için, Azure Blob Depolama görüntüleri kılavuzuna bakın. Gri tonlama ayarı örneği, görüntü işleme seçeneklerini gösterir:

using IronPdf;
using System.IO;

public class PhotoAlbumCreator
{
    public static void CreatePhotoAlbum(string imagesFolder, string outputPath)
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;

        string htmlContent = @"
            <!DOCTYPE html>
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; }
                    .album-title { text-align: center; font-size: 2em; margin-bottom: 30px; color: #2c3e50; }
                    .photo-container { margin-bottom: 30px; text-align: center; page-break-inside: avoid; }
                    .photo { max-width: 100%; max-height: 500px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
                    .caption { margin-top: 10px; font-style: italic; color: #666; }
                    .page-break { page-break-after: always; }
                </style>
            </head>
            <body>
                <h1 class='album-title'>My Photo Album</h1>";

        var imageFiles = Directory.GetFiles(imagesFolder, "*.*")
            .Where(file => new[] { ".jpg", ".jpeg", ".png", ".gif" }
            .Contains(Path.GetExtension(file).ToLower()))
            .ToList();

        for (int i = 0; i < imageFiles.Count; i++)
        {
            string base64Image = Convert.ToBase64String(File.ReadAllBytes(imageFiles[i]));
            string fileName = Path.GetFileNameWithoutExtension(imageFiles[i]);

            htmlContent += $@"
                <div class='photo-container'>
                    <img class='photo' src='data:image/jpeg;base64,{base64Image}' alt='{fileName}'>
                    <div class='caption'>Photo {i + 1}: {fileName}</div>
                </div>";

            // Add page break every 2 photos
            if ((i + 1) % 2 == 0 && i < imageFiles.Count - 1)
            {
                htmlContent += "<div class='page-break'></div>";
            }
        }

        htmlContent += @"
                <div style='text-align: center; margin-top: 40px; color: #999;'>
                    <small>Created with IronPDF - Total Photos: " + imageFiles.Count + @"</small>
                </div>
            </body>
            </html>";

        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs(outputPath);
    }
}

// Usage
PhotoAlbumCreator.CreatePhotoAlbum(@"C:\MyPhotos", @"C:\MyPhotoAlbum.pdf");
using IronPdf;
using System.IO;

public class PhotoAlbumCreator
{
    public static void CreatePhotoAlbum(string imagesFolder, string outputPath)
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;

        string htmlContent = @"
            <!DOCTYPE html>
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; }
                    .album-title { text-align: center; font-size: 2em; margin-bottom: 30px; color: #2c3e50; }
                    .photo-container { margin-bottom: 30px; text-align: center; page-break-inside: avoid; }
                    .photo { max-width: 100%; max-height: 500px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
                    .caption { margin-top: 10px; font-style: italic; color: #666; }
                    .page-break { page-break-after: always; }
                </style>
            </head>
            <body>
                <h1 class='album-title'>My Photo Album</h1>";

        var imageFiles = Directory.GetFiles(imagesFolder, "*.*")
            .Where(file => new[] { ".jpg", ".jpeg", ".png", ".gif" }
            .Contains(Path.GetExtension(file).ToLower()))
            .ToList();

        for (int i = 0; i < imageFiles.Count; i++)
        {
            string base64Image = Convert.ToBase64String(File.ReadAllBytes(imageFiles[i]));
            string fileName = Path.GetFileNameWithoutExtension(imageFiles[i]);

            htmlContent += $@"
                <div class='photo-container'>
                    <img class='photo' src='data:image/jpeg;base64,{base64Image}' alt='{fileName}'>
                    <div class='caption'>Photo {i + 1}: {fileName}</div>
                </div>";

            // Add page break every 2 photos
            if ((i + 1) % 2 == 0 && i < imageFiles.Count - 1)
            {
                htmlContent += "<div class='page-break'></div>";
            }
        }

        htmlContent += @"
                <div style='text-align: center; margin-top: 40px; color: #999;'>
                    <small>Created with IronPDF - Total Photos: " + imageFiles.Count + @"</small>
                </div>
            </body>
            </html>";

        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs(outputPath);
    }
}

// Usage
PhotoAlbumCreator.CreatePhotoAlbum(@"C:\MyPhotos", @"C:\MyPhotoAlbum.pdf");
Imports IronPdf
Imports System.IO
Imports System.Linq

Public Class PhotoAlbumCreator
    Public Shared Sub CreatePhotoAlbum(imagesFolder As String, outputPath As String)
        Dim renderer = New ChromePdfRenderer()
        renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
        renderer.RenderingOptions.MarginTop = 20
        renderer.RenderingOptions.MarginBottom = 20
        renderer.RenderingOptions.MarginLeft = 20
        renderer.RenderingOptions.MarginRight = 20

        Dim htmlContent As String = "
            <!DOCTYPE html>
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; }
                    .album-title { text-align: center; font-size: 2em; margin-bottom: 30px; color: #2c3e50; }
                    .photo-container { margin-bottom: 30px; text-align: center; page-break-inside: avoid; }
                    .photo { max-width: 100%; max-height: 500px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
                    .caption { margin-top: 10px; font-style: italic; color: #666; }
                    .page-break { page-break-after: always; }
                </style>
            </head>
            <body>
                <h1 class='album-title'>My Photo Album</h1>"

        Dim imageFiles = Directory.GetFiles(imagesFolder, "*.*").Where(Function(file) New String() {".jpg", ".jpeg", ".png", ".gif"}.Contains(Path.GetExtension(file).ToLower())).ToList()

        For i As Integer = 0 To imageFiles.Count - 1
            Dim base64Image As String = Convert.ToBase64String(File.ReadAllBytes(imageFiles(i)))
            Dim fileName As String = Path.GetFileNameWithoutExtension(imageFiles(i))

            htmlContent += $"
                <div class='photo-container'>
                    <img class='photo' src='data:image/jpeg;base64,{base64Image}' alt='{fileName}'>
                    <div class='caption'>Photo {i + 1}: {fileName}</div>
                </div>"

            ' Add page break every 2 photos
            If (i + 1) Mod 2 = 0 AndAlso i < imageFiles.Count - 1 Then
                htmlContent += "<div class='page-break'></div>"
            End If
        Next

        htmlContent += "
                <div style='text-align: center; margin-top: 40px; color: #999;'>
                    <small>Created with IronPDF - Total Photos: " & imageFiles.Count & "</small>
                </div>
            </body>
            </html>"

        Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
        pdf.SaveAs(outputPath)
    End Sub
End Class

' Usage
PhotoAlbumCreator.CreatePhotoAlbum("C:\MyPhotos", "C:\MyPhotoAlbum.pdf")
$vbLabelText   $csharpLabel

Bu kod örneği, IronPDF'nin geliştiricilerin DataURI'ler ile görüntüleri yerleştirmesini, sayfa sonlarını yönetmesini ve profesyonel yerleşimler oluşturmasını sağlar. Bulut görüntüleri için, Azure Blob Depolama görüntüleri kılavuzuna bakın. Büyük dosyalar için, ImageToPDF dosya boyutu optimizasyonunu düşünün. Ayrıca PDF nesnelerini ölçeklendirin ve PDF nesnelerini konumlandırın. PDF'leri belleğe aktarım örneği, bellek verimli iş akışlarına yardımcı olur. Yığın işleme için HTML içeriği etkin bir şekilde ekleme kılavuzuna bakın.

Lisanslama ve Fiyatlandırma Seçenekleri Nelerdir?

IronPDF, IronPDF web sitesinde bulunan ticaret odaklı bir C# PDF kütüphanesidir. Özel geliştirme için ücretsizdir, ticari kullanım için lisanslanmıştır. Tek projeler, geliştiriciler, ajanslar ve şirketler için çeşitli lisanslar mevcuttur. SaaS ve OEM yeniden dağıtımı destekler. Uygulama detayları için lisans anahtarları kılavuzuna bakın. Yayın yaparken, lisans anahtarını uygun şekilde uygulayın. Web uygulamaları için, Web.config içinde lisans anahtarlarını ayarlayın. Lisans sunucusu bağlantı sorunları için sorun giderme kılavuzunu inceleyin. Lisans anahtarları kılavuzu, tam uygulama ayrıntılarını sunar.

.NET geliştirme projeleri için merkezi bağımlılık yönetimi sunan, NuGet Paket Yöneticisi seçeneklerini içeren Visual Studio IDE Araçlar menüsü

Tüm lisanslar 30 günlük para iade garantisi, bir yıl destek ve ürün güncellemeleri içerir. Süresiz lisanslar, ek ücret gerekmeden tek seferlik satın alma gerektirir. Tek geliştirici/proje için Lite paket $999 ile başlar. İlk yılın ötesinde destek için, lisans uzantılarına bakın. Ek özellikler veya dağıtım yapmak için,lisans yükseltmelerine bakın. IronPDF ve IIS IronPDF ve IIS dağıtımı veya IronPDF'yi yazılım yükleyicilerine ekleme için uzmanlaşmış kılavuzlara bakın. ClickOnce sürüm uyumsuzluk kılavuzu dağıtım sorunlarında yardımcı olur.

ExpertPDF, geliştirici veya şirket başına lisanslar sunar. ExpertPDF'yi ücretsiz deneyin. Lisans özelliklerini aşağıda inceleyin. ExpertPDF yerine, IronPDF'nin şeffaf lisanslama seçeneklerini kullanmayı düşünün, çok daha büyük değer ve eksiksiz destek sunar.

HTML'den PDF'ye dönüştürücü (145K indirme) ve çeşitli uzmanlaşmış PDF işleme araçlarını gösteren, altı ExpertPDF kütüphanesini ve indirme istatistiklerini görüntüleyen NuGet Paket Yöneticisi arayüzü, hepsi 11.0.2.0 sürümünde

ExpertComponents Toolkit Toplamı geliştirici lisansı $850 ile başlar, ExpertPDF Toolkit ise $750 ile başlar. Tek bileşenleri ayrı olarak satın alın. ExpertPDF için Tam Fiyatlandırma (Nisan 2026 itibarıyla). Kurumsal gereksinimler için, IronPDF'nin lisanslaması, eksiksiz özellik setleriyle daha iyi bir değer sunar.

Hangi PDF Kütüphanesini Seçmeliyim?

IronPDF, internet bağlantısı olmadan HTML'yi PDF'ye yerel olarak dönüştürür, standartlara uygun web tarayıcılarını simüle eder. HTML render çıkarımı, ticari baskıya uygun, hassas, vektör-formatlı çıktı üretir. Ticari kullanım için lisanslanmıştır, fiyatlandırması şeffaftır. Kurumsal dağıtımlar için IronPDF, Docker desteği ve uzaktan motor yetenekleri sunar. IronPDF'yi uzaktan konteyner olarak çalıştırma ve yerel ile uzaktan motor seçenekleri hakkında kılavuzlara bakın. Kütüphane, azalmış dağıtım boyutu için IronPdf.Slim ve paket boyutu optimizasyonunu destekler. IronPdf.Slim v2025.5.6 dağıtım istisna kılavuzu belirli sürüm sorunlarına yardımcı olur.

ExpertPDF'nin HTML'den PDF'ye Dönüştürücü Kütüphanesi, web sayfalarını ve HTML'yi PDF'lere dönüştürür, ASP.NET'ten raporlar oluşturur ve sözleşmeleri elektronik olarak imzalar. Lisanslı ek özelliklerle kullanımı ücretsizdir. IronPDF'nin Android dağıtımını içeren eksiksiz platform desteği varken, ExpertPDF yalnızca Windows platformlarıyla sınırlıdır. Arka planda, IronPDF gelişmiş güvenlik özellikleri ve düzenli ürün güncellemeleri kullanır. Kilometre taşları görünümü, Chrome rendering kilometre taşı, uyumluluk kilometre taşı ve kararlılık ve performans kilometre taşı gibi sürekli iyileştirmeler gösterir.

Her iki kütüphane de PDF'leri işler ve popüler formatlardan dönüştürür, ancak IronPDF, ExpertPDF'ye göre avantajlar sunar. IronPDF, geniş format aralıklarından XML, resimler, AngularJS, Markdown ve RTF'den dönüştürür; güvenilir PDF oluşturma, biçimlendirme ve düzenleme özellikleri ile. Bu, geliştiricilerin pragmatik geliştirme için verimlilik elde etmesini sağlar. Kütüphane, yüksek verimli senaryolar için performans geliştirme ve asenkron destek konusunda başarılıdır. Eşzamanlı işleme, IronPDF, paralel PDF üretimi ve çoklu iş parçacıklı üretim destekler. Optimizasyon detayları için ilk render yavaş sorun giderme kılavuzuna bakın.

ExpertPDF, ayrı bileşen kurulumu gerektirirken, IronPDF tüm işlevselliği entegre eder. Bu, projelerin eksiksiz PDF özelliklerine ihtiyaç duyduğu durumlarda özellikle kullanışlıdır. IronPDF paketleri, sürekli maliyet olmadan ömür boyu lisanslar sunar, ExpertPDF ise yenilemeler gerektirir. Ayrıca, IronPDF, hızlı başlangıçlar için eksiksiz dokümantasyon, API referansı sunar ve kod örnekleri sağlar. Demos bölümü, gerçek uygulamalar gösterir. Sorun giderme için, hızlı sorun giderme kılavuzunu veya ilk render performansı ve GPU işlem optimizasyonunu keşfedin. En iyi desteği alma kılavuzu, verimli sorun çözmeyi sağlar.

Üretim dağıtımları için, IronPDF üstün hata ayıklama yetenekleri, özel günlük kaydı ve geniş sorun giderme kılavuzları sunar. Kütüphane, gelişmiş özellikler arasında: PDF/A uyumluluğu, PDF/UA erişilebilirliği, HSM ile dijital imzalar ve güvenli işleme için temizlik. Kurumsal güvenlik için, IronPDF şifreleme ve şifre çözme, şifre koruması ve eksiksiz güvenlik özellikleri sağlar. Gelişmiş özellikler arasında metni karartma, PDF'leri düzleştirme ve PDF sürümlerini yönetme bulunur. PDF'yi base64'e dönüştürme kılavuzu, veri iletimi konusunda yardımcı olur.

Destek ve geliştirme konusunda, IronPDF mühendislik desteği sunar ve destek talepleri oluşturma için detaylı kılavuzlar içerir. Kütüphane ürün güncellemeleri ve kilometre taşları sürekli gelişimi gösterir. .NET MAUI geliştiricileri için, IronPDF PDF görüntüleme yetenekleri ve XAML'den PDF'ye dönüşüm sağlar. Blazor geliştiricileri, Blazor Sunucusu entegrasyonunu ve Razor'dan PDF'ye dönüşüm kullanır. Kütüphane, MVC uygulamaları için CSHTML'den PDF'ye dönüşüm ve başsız CSHTML render'ını destekler. Kısıtlamalar için Blazor Server / WebAssembly kılavuzuna bakın.

Özel kullanımlar için, IronPDF OpenAI entegrasyonu ile akıllı işleme, PDF'lerde grafik çizim, MVC uygulamalarında CSHTML'den PDF'ye dönüşüm ve uluslararası dilleri ve UTF-8 desteğini sağlar. Kütüphane, PDF'leri düzleştirme, hızlı web görünümü için lineerleştirme ve PDF formları oluşturma gibi karmaşık senaryoları ele alır. PDF sayfalarını dönüştürme, PDF nesnelerini kaldırma ve özel geçici yollar ayarlama keşfedin. IronPDF'nin tam özellik görünümü, PDF oluşturma, PDF dönüşümü, PDF düzenleme, PDF düzenleme ve PDF güvenliği için yetenekleri sergiler. Ek özellikler arasında C# içinde PDF dosyalarını okuma, metin bulma ve değiştirme ve belirli PDF sayfalarını kaldırma bulunur.

Dağıtım düşünceleri için, yerel makinede Azure İşlevlerini hata ayıklama, Azure günlük dosyaları yönetimi, AWS günlük dosyaları yönetimi ve 502 kötü ağ geçidi hataları için çözümlerine bakın. IronPDF, yola erişim reddedildi çözümleri, Chrome bağımlılıklarının dağıtımı, PDFium bağımlılıklarının dağıtımı ve kötü tahsis hatası çözümleri dahil olmak üzere eksiksiz hata işleme sağlar. Platforma özel destek, Linux'a özel kılavuzlar, macOS'a özel istisnalar ve Windows Nano Server sınırlamaları içerir. Güvenlik özellikleri, Log4j güvenlik açığı durumu ve AWS Lambda üzerindeki bölüm hatalarına karşı korumayı içerir.

Lütfen dikkate alınExpertPDF, ilgili sahibinin tescilli ticari markasıdır. Bu site, ExpertPDF ile bağlantılı, onaylanmış veya desteklenmiş değildir. Tüm ürün adları, logolar ve markalar kendi sahiplerine aittir. Karşılaştırmalar, yalnızca bilgilendirme amaçlıdır ve yazı sırasında halka açık bilgilerle alakalı olarak yansıtılmaktadır.

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 ile ExpertPDF arasındaki temel farklar nelerdir?

IronPDF, HTML'den PDF oluşturmadan, düzenleme ve format dönüştürmeye kadar geniş format desteği ve entegre işlevsellik sunar. ExpertPDF, çıktı dosya yapılandırmaları ve dijital imzalar için seçeneklerle birlikte doğrudan HTML'den PDF'ye dönüştürme sağlar.

Bu kütüphaneleri kullanarak bir PDF'den metin ve görüntüleri çıkarabilir miyim?

Evet, IronPDF, .NET uygulamalarınızda PDF içeriğini kolayca işlemek ve analiz etmek için PDF belgelerinden metin ve görüntüleri çıkarmanıza olanak tanır.

Bu PDF kütüphaneleri için hangi kurulum seçenekleri mevcuttur?

Hem IronPDF hem de ExpertPDF, Visual Studio'nun NuGet Paket Yöneticisi kullanılarak kurulabilir. Ayrıca, IronPDF'nin .DLL kütüphanesi doğrudan IronPDF web sitesinden indirilebilir.

Birden fazla PDF dosyasını tek bir belgeye birleştirmek mümkün mü?

Evet, IronPDF, birden fazla PDF'yi tek bir belgeye birleştirmek için Birleştirme yöntemini sağlar. ExpertPDF de PDF'leri birleştirmek için bir PDFMerge bileşeni sunar.

IronPDF, HTML'den PDF'ye dönüştürme için bir internet bağlantısı gerektirir mi?

Hayır, IronPDF, HTML'den PDF'ye dönüşüm için bir internet bağlantısı gerektirmez, bu da onu çevrimdışı uygulamalar için güvenilir bir seçenek haline getirir.

IronPDF için mevcut lisanslama seçenekleri nelerdir?

IronPDF, tekli proje, geliştirici, ajans ve kurumsal lisanslar da dahil olmak üzere çeşitli lisans seçenekleri sunar. Tüm lisanslar süresizdir ve 30 günlük para iade garantisi ve bir yıl destek ve güncellemeler içerir.

ExpertPDF, PDF belgeleri için dijital imzaları yönetebilir mi?

Evet, ExpertPDF, güvenli ve doğrulanmış PDF dosyalarına izin vererek PDF belgelerinin dijital imzalanmasını destekler.

C# geliştiricileri PDF'lerle çalışırken hangi zorluklarla karşılaşır ve bu kütüphaneler nasıl yardımcı olur?

C# geliştiricileri genellikle PDF okuma, yazma, oluşturma ve dönüştürme zorluklarıyla karşılaşır. IronPDF ve ExpertPDF gibi kütüphaneler, HTML'den PDF'ye dönüşüm, PDF düzenleme ve daha fazlası için güçlü araçlar sunarak bu görevleri basitleştirir ve C# uygulamalarına kolay entegrasyon sağlar.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara