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

IronPDF ve PDFCrowd Karşılaştırması

.NET ve Accusoft PDF Viewer ikisi de HTML'den PDF'ye dönüşüm yapmaktadır. .NET, bulut bağımlılıkları olmadan yerel işleme ve sınırsız dönüşümler, $999 ile başlar. Buna karşılık, Accusoft internet bağlantısı gerektirir ve işlem başına ücret alır.

IronPDF'yi Accusoft PDF Viewer ile karşılaştırın

  • HTML'yi PDF'ye dönüştürün
  • PDF'ler için Başlık ve Altbilgi Ayarlayın
  • PDF'yi Görüntü Dosyasına Dönüştürün
  • Lisansları, ücretsiz deneme seçeneklerini ve daha fazlasını karşılaştırın

Genel Bakış

IronPDF nedir ve nasıl çalışır?

IronPDF, geliştiricilerin PDF dosyaları oluşturmasına olanak tanıyan bir C# HTML'den PDF'ye kütüphanesidir. HTML dizesi, Web Sayfası ve URL gibi kaynaklardan. Ayrıca Filigran, Yer İşareti ve Başlık ve Altbilgi gibi özellikleri ayarlama imkanı da sunar. Ek olarak, geliştiriciler birden fazla PDF dosyasını birleştirebilir veya PDF sayfalarını görüntüye dönüştürüp tam tersi işlemler yapabilirler, PDF'leri birleştirme veya bölme ve görüntüden PDF'ye dönüşüm işlemlerini kullanarak.

IronPDF ile ücretsiz gelişim imkanı sunar ve canlı projeler için 30 günlük dağıtım denemesi sağlar. Başlangıçta geliştiricilere yönelik dokümantasyon, kod örnekleri ve API referansı sunar.

Geliştiriciler bu bağlantıdan bir dosya projesi indirebilirler.

Accusoft `PrizmDoc` Viewer nedir ve nasıl çalışır?

PrizmDoc Viewer, PDF dosyaları ile çalışan ve uzaktan diğer formatlara dönüştüren bir REST API'dir. PrizmDoc, 100'den fazla farklı dosya formatını PDF'ye ve PDF'yi PNG, JPG, TIFF ve SVG'ye dönüştürebilir. Ayrıca uygulamalar için çeşitli elektronik imza seçenekleri sunar.

IronPDF ve `PrizmDoc` Viewer nasıl karşılaştırılır?

IronPDF `PrizmDoc` Viewer
Work with [PDF files programmatically](/how-to/csharp-parse-pdf/). PDF dosyaları üzerinde programlı olarak çalışır.
Supports [.NET Core](/docs/) with [Windows](/get-started/windows/), [Mac](/get-started/macos/), or [Linux](/get-started/linux/). .NET Core'u Windows, Mac veya Linux ile kullanarak destekler.
[Works Locally](/get-started/installation-overview/) Sends Documents to a [remote server](/get-started/ironpdfengine/).
Work with or without [Asynchronous Programming](/how-to/async/). `System.Threading.Tasks` ile Asenkron Programlama kullanmalıdır.
Works offline once [installed](/get-started/installation-overview/). `PrizmDoc` sunucu istekleri için internet bağlantısı gerektirir.
Provides many [predefined functions](/features/). Bazı önceden tanımlı işlevler sağlar.
Often requires [minimal lines of code](/tutorials/html-to-pdf/). Çoğunlukla birden fazla kod satırı gerektirir.
[Unlimited conversions](/licensing/) per project in each license. Bulutta barındırılan lisanslarda sınırlı işlem.
[Free for development](/get-started/quickstart/) without time limits. Deneme ile sınırlı işlemler.

Her iki kütüphaneyi de yükleyip kodu karşılaştıralım.


Adım 1: Kurulum

.NET'yi .NET Projeme Nasıl Kurarım?

IronPDF'yi bir projeye kurmanın iki yolu vardır ve yaklaşımlar arasında fark yoktur. IronPDF, Azure dağıtımı, AWS Lambda, Docker kapsayıcıları ve Blazor uygulamaları gibi çeşitli ortamları destekler.

IronPDF'yi İndirmek İçin Farklı Yollar Nelerdir?

IronPDF.dll dosyasını indirin ve projeye referans ekleyin. Geliştiriciler ayrıca sistem geneli kurulum için Windows Yükleyicisini kullanabilirler. Bundan sonra, IronPDF adı alanı aşağıdaki şekilde kullanılabilir hale gelir:

using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Artık geliştiriciler, sağlanan işlevleri ve sınıflara kolayca erişebilirler, ChromePdfRenderer ile render yapabilirler, PDF belge yönetimi ve güvenlik özelliklerine ulaşabilirler.

IronPDF'yi NuGet Paket Yöneticisi ile Nasıl Kurarım?


Accusoft'tan `PrizmDoc` Viewer'i Nasıl Kurarım?

PrizmDoc Viewer iki parçadan oluşur: RESTful API gibi davranan sunucu tarafı bileşeni PrizmDoc Server ve API'ye istek gönderen ve yanıt alan istemci projesi. Yerel olarak dış bağımlılıklar olmadan çalışan IronPDF'in aksine, PrizmDoc ağ bağlantısı gerektirir.

`PrizmDoc` Sunucusuna Nasıl Erişebilirim?

PrizmDoc Server, belgelerle birlikte temel bilgileri (giriş) istekler olarak alan bir sunucu tarafı uygulamadır ve belgeleri PDF dosyalarına dönüştürür, ardından dönüştürülen PDF dosyalarını yanıtlar (çıkış) olarak gönderir. Ürünün teknik kalbi olarak görev yapar: doküman işleme ve dönüşüm motoru. Geliştiriciler, aynı programlama yapısına ve tekniklerine sahip iki farklı yöntemle kullanabilirler:

  1. Kendi Kendine Barındırılan:

    Bu seçenek bir sunucu kurmayı gerektirir. PrizmDoc Server'ı İndirin ve ardından yükleyin. Read More hakkında daha fazla bilgi edinin PrizmDoc Server'ı Windows üzerine kur.

    Note: Kendi sunucunuzda barındırılan PrizmDoc Server, önemli ölçüde bellek ve işleme kaynakları gerektirir — güncel gereksinimler için Accusoft'un boyutlandırma kılavuzunu inceleyin. IronPDF'nin sistem gereksinimleri ise çok daha mütevazıdır.

  2. Bulut Tabanlı:

    Bu bulut tabanlı hizmet, sunucu ayarlamak için gereklilikleri ortadan kaldırır. Bu seçeneği kullanmak için, bir hesap oluşturun ve API key ana sayfadaki API Key menüsünden kopyalayın.

Öncelikle, C# Konsol Uygulamasında WebClient() kullanarak doğrudan Accusoft server ile etkileşimde bulunarak belgeleri PDF dosyalarına dönüştürmek için PrizmDoc Viewer ile çalışmanın temel yapısını inceleyelim.

Note: Aşağıdaki örnek, PrizmDoc'nin kavramsal olarak PDF dosyalarını nasıl ele aldığını gösterir. Oldukça uzun, bu yüzden bu örneği atlayabilir ve doğrudan karşılaştırmaya geçebilirsiniz.

Accusoft'un Çalışma Yapısı Nasıl İşler?

Bu örnek, myWebpage.html'yi sample.pdf'ye dönüştürür. IronPDF'in doğrudan HTML to PDF dönüşümüne kıyasla, PrizmDoc birden fazla API çağrısı gerektirir.

Note: Projede Newtonsoft.Json kütüphanesi kurulmuş ve referans olarak eklenmiş olmalıdır.

Öncelikle şu kütüphaneleri projeye ekleyin:

using System;
using System.IO;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq; // Install Newtonsoft.Json via NuGet Package Manager
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq; // Install Newtonsoft.Json via NuGet Package Manager
Imports System
Imports System.IO
Imports System.Net
Imports System.Text
Imports System.Threading.Tasks
Imports Newtonsoft.Json.Linq ' Install Newtonsoft.Json via NuGet Package Manager
$vbLabelText   $csharpLabel

Ardından bir genel değişken Accusoft API Key oluşturun ve API Anahtarını buraya yapıştırın:

static string ApiKey = "Your-API-KEY";
static string ApiKey = "Your-API-KEY";
Private Shared ApiKey As String = "Your-API-KEY"
$vbLabelText   $csharpLabel

PDF dosyalarıyla ilgilenmek için PrizmDoc Viewer kullanılarak 3 adım vardır:

  1. Bir dosyayı PrizmDoc sunucusuna yükleyin.
  2. Yüklenen dosyayı dönüştürme.
  3. Dönüştürülen dosyayı PrizmDoc sunucusundan indirin.

Her adım ayrı bir fonksiyon tarafından ele alınır:

static void Main(string[] args)
{
    //---Upload file to Server---
    JObject uploadResults = UploadToServer("myWebpage.html").Result;
    string fileID = (string)uploadResults.SelectToken("fileId");
    string affinityToken = (string)uploadResults.SelectToken("affinityToken");

    //---Convert the uploaded file to PDF---
    JObject convertResults = Convert(affinityToken, fileID).Result;
    string processId = (string)convertResults.SelectToken("processId");
    affinityToken = (string)convertResults.SelectToken("affinityToken");

    //---Check the status that conversion is completed---
    JObject convertStatusResults = ConvertStatus(processId, affinityToken).Result;
    string convertStatus = (string)convertStatusResults.SelectToken("state");

    //---Continuously checking whether conversion completed---
    while (!(convertStatus.Equals("complete")))
    {
        System.Threading.Thread.Sleep(30000);
        convertStatusResults = ConvertStatus(processId, affinityToken).Result;
        convertStatus = (string)convertStatusResults.SelectToken("state");
    }

    //---Download the converted file from server---
    string newFileID = (string)convertStatusResults.SelectToken("output.results[0].fileId");
    DownloadFromServer(affinityToken, newFileID, "sample.pdf").Wait();

    Console.WriteLine("PDF file created successfully...!");
    Console.ReadKey();
}
static void Main(string[] args)
{
    //---Upload file to Server---
    JObject uploadResults = UploadToServer("myWebpage.html").Result;
    string fileID = (string)uploadResults.SelectToken("fileId");
    string affinityToken = (string)uploadResults.SelectToken("affinityToken");

    //---Convert the uploaded file to PDF---
    JObject convertResults = Convert(affinityToken, fileID).Result;
    string processId = (string)convertResults.SelectToken("processId");
    affinityToken = (string)convertResults.SelectToken("affinityToken");

    //---Check the status that conversion is completed---
    JObject convertStatusResults = ConvertStatus(processId, affinityToken).Result;
    string convertStatus = (string)convertStatusResults.SelectToken("state");

    //---Continuously checking whether conversion completed---
    while (!(convertStatus.Equals("complete")))
    {
        System.Threading.Thread.Sleep(30000);
        convertStatusResults = ConvertStatus(processId, affinityToken).Result;
        convertStatus = (string)convertStatusResults.SelectToken("state");
    }

    //---Download the converted file from server---
    string newFileID = (string)convertStatusResults.SelectToken("output.results[0].fileId");
    DownloadFromServer(affinityToken, newFileID, "sample.pdf").Wait();

    Console.WriteLine("PDF file created successfully...!");
    Console.ReadKey();
}
Shared Sub Main(ByVal args() As String)
	'---Upload file to Server---
	Dim uploadResults As JObject = UploadToServer("myWebpage.html").Result
	Dim fileID As String = CStr(uploadResults.SelectToken("fileId"))
	Dim affinityToken As String = CStr(uploadResults.SelectToken("affinityToken"))

	'---Convert the uploaded file to PDF---
	Dim convertResults As JObject = Convert(affinityToken, fileID).Result
	Dim processId As String = CStr(convertResults.SelectToken("processId"))
	affinityToken = CStr(convertResults.SelectToken("affinityToken"))

	'---Check the status that conversion is completed---
	Dim convertStatusResults As JObject = ConvertStatus(processId, affinityToken).Result
	Dim convertStatus As String = CStr(convertStatusResults.SelectToken("state"))

	'---Continuously checking whether conversion completed---
	Do While Not (convertStatus.Equals("complete"))
		System.Threading.Thread.Sleep(30000)
		convertStatusResults = ConvertStatus(processId, affinityToken).Result
		convertStatus = CStr(convertStatusResults.SelectToken("state"))
	Loop

	'---Download the converted file from server---
	Dim newFileID As String = CStr(convertStatusResults.SelectToken("output.results[0].fileId"))
	DownloadFromServer(affinityToken, newFileID, "sample.pdf").Wait()

	Console.WriteLine("PDF file created successfully...!")
	Console.ReadKey()
End Sub
$vbLabelText   $csharpLabel

1. Sunucuya Dosyayı Yükle:

public static async Task<JObject> UploadToServer(string fileToUpload)
{
    FileInfo input = new FileInfo(fileToUpload);
    if (input == null)
    {
        throw new ArgumentException("Missing parameter input", nameof(input));
    }
    var fileName = input.Name;
    var endpoint = new Uri("___PROTECTED_URL_123___");
    using (var client = new WebClient())
    {
        client.Headers.Add("acs-api-key", ApiKey);
        client.Headers.Add("Content-Type", "application/octet-stream");
        using (var reader = new BinaryReader(input.OpenRead()))
        {
            var data = reader.ReadBytes((int)reader.BaseStream.Length);
            var results = await client.UploadDataTaskAsync(endpoint, "POST", data);
            string getResult = Encoding.ASCII.GetString(results);
            return JObject.Parse(getResult);
        }
    }
}
public static async Task<JObject> UploadToServer(string fileToUpload)
{
    FileInfo input = new FileInfo(fileToUpload);
    if (input == null)
    {
        throw new ArgumentException("Missing parameter input", nameof(input));
    }
    var fileName = input.Name;
    var endpoint = new Uri("___PROTECTED_URL_123___");
    using (var client = new WebClient())
    {
        client.Headers.Add("acs-api-key", ApiKey);
        client.Headers.Add("Content-Type", "application/octet-stream");
        using (var reader = new BinaryReader(input.OpenRead()))
        {
            var data = reader.ReadBytes((int)reader.BaseStream.Length);
            var results = await client.UploadDataTaskAsync(endpoint, "POST", data);
            string getResult = Encoding.ASCII.GetString(results);
            return JObject.Parse(getResult);
        }
    }
}
Public Shared Async Function UploadToServer(fileToUpload As String) As Task(Of JObject)
    Dim input As New FileInfo(fileToUpload)
    If input Is Nothing Then
        Throw New ArgumentException("Missing parameter input", NameOf(input))
    End If

    Dim fileName = input.Name
    Dim endpoint As New Uri("___PROTECTED_URL_123___")
    Using client As New WebClient()
        client.Headers.Add("acs-api-key", ApiKey)
        client.Headers.Add("Content-Type", "application/octet-stream")
        Using reader As New BinaryReader(input.OpenRead())
            Dim data = reader.ReadBytes(CInt(reader.BaseStream.Length))
            Dim results = Await client.UploadDataTaskAsync(endpoint, "POST", data)
            Dim getResult As String = Encoding.ASCII.GetString(results)
            Return JObject.Parse(getResult)
        End Using
    End Using
End Function
$vbLabelText   $csharpLabel

2. Yüklenen Dosyayı PDF'ye Dönüştür:

public static async Task<JObject> Convert(string affinityToken, string fileID)
{
    var endpoint = new Uri("___PROTECTED_URL_124___");
    using (var client = new WebClient())
    {
        client.Headers.Add("Content-Type", "application/json");
        client.Headers.Add("acs-api-key", ApiKey);
        client.Headers.Add("Accusoft-Affinity-Token", affinityToken);
        JObject myJson =
            new JObject(
                new JProperty("input",
                    new JObject(
                        new JProperty("sources",
                            new JArray(
                                new JObject(
                                    new JProperty("fileId", fileID)
                                )
                            )
                        ),
                        new JProperty("dest",
                            new JObject(
                                new JProperty("format", "pdf")
                            )
                        )
                    )
                )
            );
        string results = await client.UploadStringTaskAsync(endpoint, "POST", myJson.ToString());
        return JObject.Parse(results);
    }
}
public static async Task<JObject> Convert(string affinityToken, string fileID)
{
    var endpoint = new Uri("___PROTECTED_URL_124___");
    using (var client = new WebClient())
    {
        client.Headers.Add("Content-Type", "application/json");
        client.Headers.Add("acs-api-key", ApiKey);
        client.Headers.Add("Accusoft-Affinity-Token", affinityToken);
        JObject myJson =
            new JObject(
                new JProperty("input",
                    new JObject(
                        new JProperty("sources",
                            new JArray(
                                new JObject(
                                    new JProperty("fileId", fileID)
                                )
                            )
                        ),
                        new JProperty("dest",
                            new JObject(
                                new JProperty("format", "pdf")
                            )
                        )
                    )
                )
            );
        string results = await client.UploadStringTaskAsync(endpoint, "POST", myJson.ToString());
        return JObject.Parse(results);
    }
}
Public Shared Async Function Convert(affinityToken As String, fileID As String) As Task(Of JObject)
    Dim endpoint = New Uri("___PROTECTED_URL_124___")
    Using client = New WebClient()
        client.Headers.Add("Content-Type", "application/json")
        client.Headers.Add("acs-api-key", ApiKey)
        client.Headers.Add("Accusoft-Affinity-Token", affinityToken)
        Dim myJson As JObject =
            New JObject(
                New JProperty("input",
                    New JObject(
                        New JProperty("sources",
                            New JArray(
                                New JObject(
                                    New JProperty("fileId", fileID)
                                )
                            )
                        ),
                        New JProperty("dest",
                            New JObject(
                                New JProperty("format", "pdf")
                            )
                        )
                    )
                )
            )
        Dim results As String = Await client.UploadStringTaskAsync(endpoint, "POST", myJson.ToString())
        Return JObject.Parse(results)
    End Using
End Function
$vbLabelText   $csharpLabel

Aşağıdaki JSON myJson nesnesinin elde edilen değeridir:

{
  "input": {
    "sources": 
    [
      {"fileId": "Auto Generated FileId Value"}
    ],
    "dest": {
      "format": "pdf"
    }
  }
}

Dönüştürme tamamlanıp tamamlanmadığını kontrol edin

public static async Task<JObject> ConvertStatus(string processId, string affinityToken)
{
    string endpoint = "___PROTECTED_URL_125___" + processId;
    using (var client = new WebClient())
    {
        client.BaseAddress = endpoint;
        client.Headers.Add("acs-api-key", ApiKey);
        client.Headers.Add("Accusoft-Affinity-Token", affinityToken);
        string results = await client.DownloadStringTaskAsync(endpoint);
        return JObject.Parse(results);
    }
}
public static async Task<JObject> ConvertStatus(string processId, string affinityToken)
{
    string endpoint = "___PROTECTED_URL_125___" + processId;
    using (var client = new WebClient())
    {
        client.BaseAddress = endpoint;
        client.Headers.Add("acs-api-key", ApiKey);
        client.Headers.Add("Accusoft-Affinity-Token", affinityToken);
        string results = await client.DownloadStringTaskAsync(endpoint);
        return JObject.Parse(results);
    }
}
Public Shared Async Function ConvertStatus(processId As String, affinityToken As String) As Task(Of JObject)
    Dim endpoint As String = "___PROTECTED_URL_125___" & processId
    Using client As New WebClient()
        client.BaseAddress = endpoint
        client.Headers.Add("acs-api-key", ApiKey)
        client.Headers.Add("Accusoft-Affinity-Token", affinityToken)
        Dim results As String = Await client.DownloadStringTaskAsync(endpoint)
        Return JObject.Parse(results)
    End Using
End Function
$vbLabelText   $csharpLabel

3. Sunucudan Dönüştürülen Dosyayı İndir

public static async Task DownloadFromServer(string affinityToken, string fileId, string outfile)
{
    var endpoint = new Uri("___PROTECTED_URL_126___" + fileId);

    using (var client = new WebClient())
    {
        client.Headers.Add("acs-api-key", ApiKey);
        client.Headers.Add("Accusoft-Affinity-Token", affinityToken);
        FileInfo output = new FileInfo(outfile);

        using (var writeStream = output.Create())
        {
            var results = await client.DownloadDataTaskAsync(endpoint);
            await writeStream.WriteAsync(results, 0, results.Length);
        }
    }
}
public static async Task DownloadFromServer(string affinityToken, string fileId, string outfile)
{
    var endpoint = new Uri("___PROTECTED_URL_126___" + fileId);

    using (var client = new WebClient())
    {
        client.Headers.Add("acs-api-key", ApiKey);
        client.Headers.Add("Accusoft-Affinity-Token", affinityToken);
        FileInfo output = new FileInfo(outfile);

        using (var writeStream = output.Create())
        {
            var results = await client.DownloadDataTaskAsync(endpoint);
            await writeStream.WriteAsync(results, 0, results.Length);
        }
    }
}
Public Shared Async Function DownloadFromServer(affinityToken As String, fileId As String, outfile As String) As Task
    Dim endpoint As New Uri("___PROTECTED_URL_126___" & fileId)

    Using client As New WebClient()
        client.Headers.Add("acs-api-key", ApiKey)
        client.Headers.Add("Accusoft-Affinity-Token", affinityToken)
        Dim output As New FileInfo(outfile)

        Using writeStream As FileStream = output.Create()
            Dim results As Byte() = Await client.DownloadDataTaskAsync(endpoint)
            Await writeStream.WriteAsync(results, 0, results.Length)
        End Using
    End Using
End Function
$vbLabelText   $csharpLabel

Yukarıdaki örnek önemli ölçüde çaba gerektirir. Yükü en aza indirmek için Accusoft, PrizmDoc Server REST API'si etrafında bir sargı olan, Accusoft.PrizmDocServerSDK adında bir .NET kütüphanesi tanıttı. .NET projelerinde bu kütüphaneyi nasıl kurma ve kullanma işlemlerini inceleyelim.

Accusoft.`PrizmDocServer`SDK'yı Nasıl Kurarım?

PrizmDoc kılıfı kurmak için iki yol vardır.

  • Paket Yöneticisi Konsolu:

    Paket Yöneticisi Konsolu'nu kullanıyorsanız, şu komutu çalıştırın:

    _CODEBLOCK10

  • Çözüm için Paketleri Yönet:

NuGet Paket Yöneticisi GUI'sini kullanıyorsanız, arama çubuğunda Accusoft.PrizmDocServerSDK tarayın ve yükleyin.

Artık geliştiriciler Accusoft.PrizmDocServer ad alanına kolayca erişebilir ve kullanabilirler:

using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer;
Imports Accusoft.PrizmDocServer
$vbLabelText   $csharpLabel

Nasıl Yapılır Eğitimi

IronPDF ve PrizmDoc Viewer Kod Örneklerindeki Karşılaştırmaları

Her iki bileşenin tanıtımı ve kurulumu incelendikten sonra, her iki bileşenle de çalışmanın zamanı geldi. Aşağıdaki kullanım durumları, programlama yapılarını anlamaya ve projenin gereksinimlerine hangisinin uyduğuna karar vermeye yardımcı olmak için her iki bileşenin kullanımıyla uygulamaların gösterildiği durumlardır.


HTML'yi PDF'ye IronPDF ve PrizmDoc Viewer kullanarak nasıl dönüştürürüm?

Bu karşılaştırma için, myWebPage.html adlı bir web sayfasını bir PDF dosyasına dönüştürelim ve hedef konuma kaydedelim. IronPDF'nin Chrome render motoru, piksel mükemmel dönüştürme sağlar ve CSS, JavaScript ve web yazı tipleri için tam destek sunar.

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

using IronPdf;

static void Main(string[] args)
{
    // Create rendering converter
    var converter = new ChromePdfRenderer();
    // Render HTML file to PDF
    using var PDF = converter.RenderHTMLFileAsPdf("myWebPage.html");
    // Save to target location
    PDF.SaveAs("sample.pdf");
}
using IronPdf;

static void Main(string[] args)
{
    // Create rendering converter
    var converter = new ChromePdfRenderer();
    // Render HTML file to PDF
    using var PDF = converter.RenderHTMLFileAsPdf("myWebPage.html");
    // Save to target location
    PDF.SaveAs("sample.pdf");
}
Imports IronPdf

Shared Sub Main(ByVal args() As String)
	' Create rendering converter
	Dim converter = New ChromePdfRenderer()
	' Render HTML file to PDF
	Dim PDF = converter.RenderHTMLFileAsPdf("myWebPage.html")
	' Save to target location
	PDF.SaveAs("sample.pdf")
End Sub
$vbLabelText   $csharpLabel

Yukarıdaki kod, bir sample.pdf dosyası oluşturur ve onu projenin bin>debug klasörüne kaydeder. IronPDF ayrıca HTML dizileri, URL'ler ve hatta HTML içeren ZIP dosyalarını girdi kaynakları olarak destekler.

Geliştiriciler ayrıca PDF.SaveAs("E:/sample.pdf"); benzeri herhangi bir yolu belirtebilir veya bulut dağıtımları için bellek akışına kaydedebilirler.

IronPDF ile PDF dosyaları ile çalışma hakkında daha fazla bilgi edinin.

Şimdi, aynısını PrizmDoc Viewer kullanarak yapalım ve karşılaştıralım.

PrizmDoc Viewer HTML'yi PDF'ye Nasıl Dönüştürür?

PrizmDoc Viewerin yüklenme bölümünde, Accusoft API Key ele alınmıştı. İşte nasıl kullanıldığı.

Öncelikle, PrizmDoc sunucusuna bir istek gönderin ve bir yanıt alın. Bu işlem zaman alır, Asenkron Programlama gerektirir. IronPDF de daha iyi performans için asenkron metodları destekler.

Note: PrizmDoc Viewerin bulut hizmetleri kullanılarak PDF dosyaları oluşturulurken sistemin internete bağlı olduğundan emin olun.

using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    ChromePdfRenderer().GetAwaiter().GetResult();
}

private static async Task ChromePdfRenderer()
{
    // Instantiate PrizmDocServerClient object
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_127___", "Your-API-KEY");
    // Specify HTML file and convert it to a PDF.
    ConversionResult result = await prizmDocServer.ConvertToPdfAsync("myWebPage.html");
    // Save PDF file to the target location
    await result.RemoteWorkFile.SaveAsync("sample.pdf");
}
using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    ChromePdfRenderer().GetAwaiter().GetResult();
}

private static async Task ChromePdfRenderer()
{
    // Instantiate PrizmDocServerClient object
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_127___", "Your-API-KEY");
    // Specify HTML file and convert it to a PDF.
    ConversionResult result = await prizmDocServer.ConvertToPdfAsync("myWebPage.html");
    // Save PDF file to the target location
    await result.RemoteWorkFile.SaveAsync("sample.pdf");
}
Imports Accusoft.PrizmDocServer
Imports Accusoft.PrizmDocServer.Conversion

Module Program
    Sub Main(args As String())
        ChromePdfRenderer().GetAwaiter().GetResult()
    End Sub

    Private Async Function ChromePdfRenderer() As Task
        ' Instantiate PrizmDocServerClient object
        Dim prizmDocServer = New PrizmDocServerClient("___PROTECTED_URL_127___", "Your-API-KEY")
        ' Specify HTML file and convert it to a PDF.
        Dim result As ConversionResult = Await prizmDocServer.ConvertToPdfAsync("myWebPage.html")
        ' Save PDF file to the target location
        Await result.RemoteWorkFile.SaveAsync("sample.pdf")
    End Function
End Module
$vbLabelText   $csharpLabel

Read more hakkında daha fazla bilgi için PrizmDoc Viewer ile çalış.

Hangi Kütüphane Daha Basit HTML'den PDF'ye Dönüşüm Sağlar?

Bu örnekler, IronPDF'nin PDF dosyaları oluşturmak için daha basit bir yaklaşım sunduğunu ve daha az zaman gerektirdiğini göstermektedir. IronPDF ayrıca çıktıyı ince ayar yapmak için render seçenekleri sunar. Bunlar arasında özel kağıt boyutları, kenar boşlukları ve görünüm portu ayarları bulunmaktadır.


Görselleri PDF'ye IronPDF ve PrizmDoc Viewer kullanarak nasıl dönüştürürüm?

Bu karşılaştırma, projenin debug klasöründe bulunan bir Görüntüden bir PDF dosyası oluşturmanın yollarını göstermektedir. Geliştiriciler IronPDF ile başlamaktadır.

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

using IronPdf;

static void Main(string[] args)
{
    // Specify the image to be converted
    using var converted = ImageToPdfConverter.ImageToPdf("google.png");
    // Save PDF file to the target location
    converted.SaveAs("sample.pdf");
}
using IronPdf;

static void Main(string[] args)
{
    // Specify the image to be converted
    using var converted = ImageToPdfConverter.ImageToPdf("google.png");
    // Save PDF file to the target location
    converted.SaveAs("sample.pdf");
}
Imports IronPdf

Shared Sub Main(ByVal args() As String)
	' Specify the image to be converted
	Dim converted = ImageToPdfConverter.ImageToPdf("google.png")
	' Save PDF file to the target location
	converted.SaveAs("sample.pdf")
End Sub
$vbLabelText   $csharpLabel

IronPDF ayrıca çoklu-kare TIFF dönüştürme, Azure Blob Depolama'dan görüntüleri ekleme ve Base64 görüntü ekleme desteklemektedir.

Çıktı:

Bu ekran görüntüsü, yukarıdaki kod kullanılarak yeni oluşturulan PDF dosyasını sample.pdf göstermektedir:

Google logosunu beyaz bir zemin üzerinde gösteren, IronPDF'nin görüntüyü PDF'ye dönüştürme yeteneğini gösteren PDF dokümanı

IronPDF kullanarak bir görüntüden PDF dosyası oluşturmak doğrudandır. Şimdi, aynı görevi PrizmDoc Viewer kullanarak yapalım ve oluşturduğu PDF dosyasını inceleyelim.

PrizmDoc Viewer Görselleri PDF'ye Nasıl Dönüştürür?

using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    ImageToPDF().GetAwaiter().GetResult();
}

private static async Task ImageToPDF()
{
    // Instantiate PrizmDocServerClient object
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_128___", "Your-API-KEY");
    // Specify the image to be converted
    ConversionResult results = await prizmDocServer.ConvertToPdfAsync("google.png");
    // Save PDF file to the target location
    await results.RemoteWorkFile.SaveAsync("sample.pdf");
}
using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    ImageToPDF().GetAwaiter().GetResult();
}

private static async Task ImageToPDF()
{
    // Instantiate PrizmDocServerClient object
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_128___", "Your-API-KEY");
    // Specify the image to be converted
    ConversionResult results = await prizmDocServer.ConvertToPdfAsync("google.png");
    // Save PDF file to the target location
    await results.RemoteWorkFile.SaveAsync("sample.pdf");
}
Imports Accusoft.PrizmDocServer
Imports Accusoft.PrizmDocServer.Conversion

Module Module1

    Sub Main()
        ImageToPDF().GetAwaiter().GetResult()
    End Sub

    Private Async Function ImageToPDF() As Task
        ' Instantiate PrizmDocServerClient object
        Dim prizmDocServer As New PrizmDocServerClient("___PROTECTED_URL_128___", "Your-API-KEY")
        ' Specify the image to be converted
        Dim results As ConversionResult = Await prizmDocServer.ConvertToPdfAsync("google.png")
        ' Save PDF file to the target location
        Await results.RemoteWorkFile.SaveAsync("sample.pdf")
    End Function

End Module
$vbLabelText   $csharpLabel

Çıktı: Yukarıdaki koddan yeni oluşturulan PDF dosyasının ekran görüntüsü sample.pdf:

PDF viewer displaying the Google logo on a gray background, showing `PrizmDoc`'s image conversion result

Hangi Kütüphane Görüntüyü PDF'ye Dönüştürmek için Daha Az Kod Gerektirir?

IronPDF sadece iki satır kod gerektirir. Buna karşılık, PrizmDoc sunucusu kullanmak daha fazla satır kod ve asenkron programlama gerektirir. IronPDF'den elde edilen çıktı, otomatik olarak kullanılabilir tam sayfa bir döküman sunmaktadır. IronPDF ayrıca görüntü konumlandırma ve birden fazla görüntü dönüşümleri için ek seçenekler sunar.


Birden Fazla PDF Dosyasını IronPDF ve PrizmDoc Viewer kullanarak nasıl birleştiririm?

Bu karşılaştırma için, A.pdf, B.pdf ve C.pdf adında üç PDF dosyasının mevcut olduğunu varsayın. Görev, onları tek bir PDF dosyasında birleştirmektir. Her iki bileşen de bu görevi gerçekleştirebilir. Önce, bu işlemin IronPDF ile nasıl yapılacağını gösteren örnek sunulmaktadır.

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

using IronPdf;
using System.Collections.Generic;

static void Main(string[] args)
{
    // Create rendering converter  
    var Renderer = new IronPdf.ChromePdfRenderer();
    // Create a list of pdf files
    var PDFs = new List<PdfDocument>();
    PDFs.Add(PdfDocument.FromFile("A.pdf"));
    PDFs.Add(PdfDocument.FromFile("B.pdf"));
    PDFs.Add(PdfDocument.FromFile("C.pdf"));
    // Merge the list of pdf file
    using PdfDocument PDF = PdfDocument.Merge(PDFs);
    // Save merged file to the target location
    PDF.SaveAs("sample.pdf");

    foreach(var pdf in PDFs)
    {
        pdf.Dispose();
    }
}
using IronPdf;
using System.Collections.Generic;

static void Main(string[] args)
{
    // Create rendering converter  
    var Renderer = new IronPdf.ChromePdfRenderer();
    // Create a list of pdf files
    var PDFs = new List<PdfDocument>();
    PDFs.Add(PdfDocument.FromFile("A.pdf"));
    PDFs.Add(PdfDocument.FromFile("B.pdf"));
    PDFs.Add(PdfDocument.FromFile("C.pdf"));
    // Merge the list of pdf file
    using PdfDocument PDF = PdfDocument.Merge(PDFs);
    // Save merged file to the target location
    PDF.SaveAs("sample.pdf");

    foreach(var pdf in PDFs)
    {
        pdf.Dispose();
    }
}
Imports IronPdf
Imports System.Collections.Generic

Shared Sub Main(ByVal args() As String)
	' Create rendering converter  
	Dim Renderer = New IronPdf.ChromePdfRenderer()
	' Create a list of pdf files
	Dim PDFs = New List(Of PdfDocument)()
	PDFs.Add(PdfDocument.FromFile("A.pdf"))
	PDFs.Add(PdfDocument.FromFile("B.pdf"))
	PDFs.Add(PdfDocument.FromFile("C.pdf"))
	' Merge the list of pdf file
	Using PDF As PdfDocument = PdfDocument.Merge(PDFs)
		' Save merged file to the target location
		PDF.SaveAs("sample.pdf")
	
'INSTANT VB NOTE: The variable pdf was renamed since Visual Basic will not allow local variables with the same name as parameters or other local variables:
		For Each .pdf_Conflict In PDFs
			.pdf_Conflict.Dispose()
		Next pdf_Conflict
	End Using
End Sub
$vbLabelText   $csharpLabel

Yukarıdaki kod, A.pdf, B.pdf ve C.pdf dosyalarını birleştiren bir sample.pdf dosyası oluşturur. IronPDF ayrıca PDF'ler arasında sayfa ekleme ve kopyalama ve PDF'leri bölme desteklemektedir.

Şimdi, PrizmDoc Viewer kullanarak aynı görevi yapalım.

PrizmDoc Viewer PDF Dosyalarını Nasıl Birleştirir?

using System.Threading.Tasks;
using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    PdfMerge().GetAwaiter().GetResult();
}

private static async Task PdfMerge()
{
    // Instantiate PrizmDocServerClient object
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_129___", "Your-API-KEY");
    // Pass the list of pdf files to PrizmDoc Server
    ConversionResult result = await prizmDocServer.CombineToPdfAsync(
        new []
        {
            new ConversionSourceDocument("A.pdf"),
            new ConversionSourceDocument("B.pdf"),
            new ConversionSourceDocument("C.pdf"),
        });
    // Save merged file to the target location
    await result.RemoteWorkFile.SaveAsync("sample.pdf");
}
using System.Threading.Tasks;
using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    PdfMerge().GetAwaiter().GetResult();
}

private static async Task PdfMerge()
{
    // Instantiate PrizmDocServerClient object
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_129___", "Your-API-KEY");
    // Pass the list of pdf files to PrizmDoc Server
    ConversionResult result = await prizmDocServer.CombineToPdfAsync(
        new []
        {
            new ConversionSourceDocument("A.pdf"),
            new ConversionSourceDocument("B.pdf"),
            new ConversionSourceDocument("C.pdf"),
        });
    // Save merged file to the target location
    await result.RemoteWorkFile.SaveAsync("sample.pdf");
}
Imports System.Threading.Tasks
Imports Accusoft.PrizmDocServer
Imports Accusoft.PrizmDocServer.Conversion

Module Module1
    Sub Main()
        PdfMerge().GetAwaiter().GetResult()
    End Sub

    Private Async Function PdfMerge() As Task
        ' Instantiate PrizmDocServerClient object
        Dim prizmDocServer = New PrizmDocServerClient("___PROTECTED_URL_129___", "Your-API-KEY")
        ' Pass the list of pdf files to PrizmDoc Server
        Dim result As ConversionResult = Await prizmDocServer.CombineToPdfAsync(
            New ConversionSourceDocument() {
                New ConversionSourceDocument("A.pdf"),
                New ConversionSourceDocument("B.pdf"),
                New ConversionSourceDocument("C.pdf")
            })
        ' Save merged file to the target location
        Await result.RemoteWorkFile.SaveAsync("sample.pdf")
    End Function
End Module
$vbLabelText   $csharpLabel

Yukarıdaki kod ayrıca A.pdf, B.pdf ve C.pdf dosyalarını birleştiren bir sample.pdf dosyası oluşturur.


PDF'lere Başlık ve Alt Bilgi IronPDF ve PrizmDoc Viewer kullanarak nasıl eklerim?

Bu karşılaştırma için, aşağıdaki HTML ve CSS ile myWebPage.html adında basit bir WebPage olduğunu varsayın.

<html>
<head>
    <style>
        li {
            font-size: x-large;
            color: rgba(156, 89, 13, 0.897);
            list-style: square;
        }
    </style>
</head>
<body>
    <h1 style="text-align: center;">Hello World..!</h1>
    <h1>Main Menu</h1>
    <ul>
        <li>SubMenu 1</li>
        <li>SubMenu 2</li>
        <li>SubMenu 3</li>
        <li>SubMenu 4</li>
        <li>SubMenu 5</li>
    </ul>
</body>
</html>
<html>
<head>
    <style>
        li {
            font-size: x-large;
            color: rgba(156, 89, 13, 0.897);
            list-style: square;
        }
    </style>
</head>
<body>
    <h1 style="text-align: center;">Hello World..!</h1>
    <h1>Main Menu</h1>
    <ul>
        <li>SubMenu 1</li>
        <li>SubMenu 2</li>
        <li>SubMenu 3</li>
        <li>SubMenu 4</li>
        <li>SubMenu 5</li>
    </ul>
</body>
</html>
HTML

Hedef, bu WebPage'yi aşağıdaki Başlık ve Altbilgi özellikleriyle bir PDF dosyasına dönüştürmektir:

  • Başlığın sol tarafında Page Title
  • Başlığın sağ tarafında DateTime
  • Altbilginin sağ tarafında Page Number of Total Pages

Öncelikle, IronPDF'nin Başlık ve Altbilgileri nasıl ele aldığını inceleyelim.

IronPDF PDF Başlık ve Altbilgilerini Nasıl Ele Alır?

PDF dosyalarının Başlık ve Altbilgilerini ele almak için, IronPDF, RenderingOptions olarak adlandırılan ChromePdfRenderer sınıfında kullanılabilecek bir özellik sağlar:

  • Başlık için:

    _CODEBLOCK19

  • Altbilgi için:

    _CODEBLOCK20

Aşağıdaki özellikler TextHeaderFooter() başlatılırken ayarlanabilir:

  • CenterText Başlığın veya Altbilginin merkezine metin yazdırmak için
  • LeftText Başlığın veya Altbilginin sol tarafına metin yazdırmak için
  • RightText Başlığın veya Altbilginin sağ tarafına metin yazdırmak için
  • DrawDividerLine Sayfa içeriğini Başlık veya Altbilgiden ayıran bir çizgi çizer
  • FontFamily Başlık veya Altbilginin yazı tipini belirtmek için
  • FontSize Başlık veya Altbilgi yazı tipinin boyutunu belirtmek için
  • Boşluk Sayfa içeriği ile Başlık veya Altbilgi arasındaki boşluğu ayarlar

Aşağıdaki önceden tanımlı öznitelikler Başlık veya Altbilgi içeriğini ayarlamaya yardımcı olur. Kıvırcık parantezlerle yazılmıştır { }:

  • {page} Başlık veya Altbilgi içinde geçerli sayfa numarasını basar
  • {total-pages} Başlık veya Altbilgi içinde toplam sayfa sayısını basar
  • {url} Oluşturulan sayfanın URL'sini basar
  • {date}, Başlık veya Alt Bilgide geçerli tarihi yazdırır
  • {time}, Başlık veya Alt Bilgide geçerli saati yazdırır
  • {html-title}, Başlık veya Alt Bilgide işlenen web sayfasının başlığını yazdırır
  • {pdf-title}, Başlık veya Alt Bilgide belgenin başlığını yazdırır

Daha Fazla Okuyun IronPDF kullanarak Başlıklar ve Alt Bilgiler ile çalışma hakkında detaylı bilgi edinin. IronPDF ayrıca daha karmaşık tasarımlar için HTML başlık ve alt bilgilerini destekler.

Örnek, kullanım senaryosunu uygulamak ve yukarıdaki özellikleri nasıl kullanacağınızı göstermek için aşağıdaki örneği gösterir:

using IronPdf;

static void Main(string[] args)
{
    // Create rendering converter
    var converter = new ChromePdfRenderer();
    // Setting Header properties
    converter.RenderingOptions.TextHeader = new TextHeaderFooter()
    {
        DrawDividerLine = true,
        LeftText = "Page Title",
        RightText = "{date} {time}",
        FontSize = 13
    };
    // Setting footer properties
    converter.RenderingOptions.TextFooter = new TextHeaderFooter()
    {
        RightText = "Page {page} of {total-pages}",
        FontSize = 12
    };
    // Specify the file to be converted
    using var PDF = converter.RenderHTMLFileAsPdf("myWebPage.html");
    // Save to target location
    PDF.SaveAs("sample.pdf");
}
using IronPdf;

static void Main(string[] args)
{
    // Create rendering converter
    var converter = new ChromePdfRenderer();
    // Setting Header properties
    converter.RenderingOptions.TextHeader = new TextHeaderFooter()
    {
        DrawDividerLine = true,
        LeftText = "Page Title",
        RightText = "{date} {time}",
        FontSize = 13
    };
    // Setting footer properties
    converter.RenderingOptions.TextFooter = new TextHeaderFooter()
    {
        RightText = "Page {page} of {total-pages}",
        FontSize = 12
    };
    // Specify the file to be converted
    using var PDF = converter.RenderHTMLFileAsPdf("myWebPage.html");
    // Save to target location
    PDF.SaveAs("sample.pdf");
}
Imports IronPdf

Shared Sub Main(ByVal args() As String)
	' Create rendering converter
	Dim converter = New ChromePdfRenderer()
	' Setting Header properties
	converter.RenderingOptions.TextHeader = New TextHeaderFooter() With {
		.DrawDividerLine = True,
		.LeftText = "Page Title",
		.RightText = "{date} {time}",
		.FontSize = 13
	}
	' Setting footer properties
	converter.RenderingOptions.TextFooter = New TextHeaderFooter() With {
		.RightText = "Page {page} of {total-pages}",
		.FontSize = 12
	}
	' Specify the file to be converted
	Dim PDF = converter.RenderHTMLFileAsPdf("myWebPage.html")
	' Save to target location
	PDF.SaveAs("sample.pdf")
End Sub
$vbLabelText   $csharpLabel

Çıktı: Yukarıdaki koddan yeni oluşturulan PDF dosyasının ekran görüntüsü sample.pdf:

'Sayfa Başlığı' ve tarih/saat gösteren özel başlığa sahip PDF belgesi, IronPDF'nin başlık ve alt bilgi yeteneklerini gösterir

IronPDF kullanarak Başlıklar ve Alt Bilgilerle çalışmak, PDF dosyaları oluştururken sezgisel bir dil içerir. Şimdi, örnek PrizmDoc Viewer Başlıkları ve Altbilgileri nasıl ele aldığını gösteriyor.

PrizmDoc Viewer PDF Başlıkları ve Altbilgileri Nasıl Ele Alır?

PrizmDoc Viewer, Headers ve Footers ile başa çıkmak için aşağıdaki özelliklere sahip HeaderFooterOptions sınıfını sağlar:

  • Satırlar Başlık ve Alt Bilgi için satır(lar)ı belirtir, her satırın aşağıdaki özellikleri vardır:
    • Soll Başlık veya Altbilgi hattının sol tarafına metin yazdırır
    • Merkez Başlık veya Alt Bilgi satırının ortasında metin yazdırır
    • Sağ Başlık veya Alt Bilgi satırının sağ tarafında metin yazdırır
  • FontFamily Başlık veya Altbilgi metninin yazı tipini belirtmek için
  • FontSize Başlık veya Altbilgi metninin yazı tipi boyutunu belirtmek için
  • Renk Başlık veya Alt Bilgi metninin rengini belirtmek için

Read More hakkında daha fazla bilgi edinin, PrizmDoc sunucu kullanarak PDF sayfalarının Başlık ve Altbilgilerini ayarlayın.

Örnek, yukarıdaki özellikleri kullanarak kullanım senaryosunu uygulamanın nasıl yapıldığını gösterir:

using System.Threading.Tasks;
using System.Collections.Generic;
using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    SetHeaderFooter().GetAwaiter().GetResult();
}

private static async Task SetHeaderFooter()
{
    // Instantiate PrizmDocServerClient object with Header and footer properties
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_130___", "Your-API-KEY");

    ConversionResult result = await prizmDocServer.ConvertToPdfAsync(
        "myWebPage.html",
        header: new HeaderFooterOptions
        {
            Lines = new List<HeaderFooterLine>
            {
                new HeaderFooterLine { Left = "Page Title", Right = DateTime.Now.ToString() }
            },
        },
        footer: new HeaderFooterOptions
        {
            Lines = new List<HeaderFooterLine>
            {
                new HeaderFooterLine { Right = "Page {{pageNumber}} of {{pageCount}}" },
            },
        });

    // Save to the target location
    await result.RemoteWorkFile.SaveAsync("sample.pdf");
}
using System.Threading.Tasks;
using System.Collections.Generic;
using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    SetHeaderFooter().GetAwaiter().GetResult();
}

private static async Task SetHeaderFooter()
{
    // Instantiate PrizmDocServerClient object with Header and footer properties
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_130___", "Your-API-KEY");

    ConversionResult result = await prizmDocServer.ConvertToPdfAsync(
        "myWebPage.html",
        header: new HeaderFooterOptions
        {
            Lines = new List<HeaderFooterLine>
            {
                new HeaderFooterLine { Left = "Page Title", Right = DateTime.Now.ToString() }
            },
        },
        footer: new HeaderFooterOptions
        {
            Lines = new List<HeaderFooterLine>
            {
                new HeaderFooterLine { Right = "Page {{pageNumber}} of {{pageCount}}" },
            },
        });

    // Save to the target location
    await result.RemoteWorkFile.SaveAsync("sample.pdf");
}
Imports System.Threading.Tasks
Imports System.Collections.Generic
Imports Accusoft.PrizmDocServer
Imports Accusoft.PrizmDocServer.Conversion

Module Program
    Sub Main(args As String())
        SetHeaderFooter().GetAwaiter().GetResult()
    End Sub

    Private Async Function SetHeaderFooter() As Task
        ' Instantiate PrizmDocServerClient object with Header and footer properties
        Dim prizmDocServer = New PrizmDocServerClient("___PROTECTED_URL_130___", "Your-API-KEY")

        Dim result As ConversionResult = Await prizmDocServer.ConvertToPdfAsync(
            "myWebPage.html",
            header:=New HeaderFooterOptions With {
                .Lines = New List(Of HeaderFooterLine) From {
                    New HeaderFooterLine With {.Left = "Page Title", .Right = DateTime.Now.ToString()}
                }
            },
            footer:=New HeaderFooterOptions With {
                .Lines = New List(Of HeaderFooterLine) From {
                    New HeaderFooterLine With {.Right = "Page {{pageNumber}} of {{pageCount}}"}
                }
            })

        ' Save to the target location
        Await result.RemoteWorkFile.SaveAsync("sample.pdf")
    End Function
End Module
$vbLabelText   $csharpLabel

Çıktı:

Yukarıdaki kod tarafından oluşturulan yeni PDF dosyasının ekran görüntüsü:

PDF with header showing 'Page Title' and timestamp, comparing `PrizmDoc`'s header/footer implementation

Hangi Kütüphane Başlıklar ve Alt Bilgiler için Daha Fazla Esneklik Sunar?

IronPDF, PrizmDoc Viewer'e kıyasla Başlık ve Altbilgi özelliklerini basit bir programlama yapısıyla ayarlamak için daha fazla işlev sağlar. IronPDF tarafından üretilen PDF dosyası, PrizmDoc Viewer üretilen dosyadan daha okunabilir ve çekicidir. IronPDF ayrıca sayfa numaralarını ve sayfa kesmelerini de destekleyerek geliştirilmiş belge kontrolü sağlar.


IronPDF ile PrizmDoc Viewer kullanarak PDF Sayfalarını Görüntülere Nasıl Dönüştürürüm?

Bu karşılaştırma için, iki sayfalık basit bir PDF dosyanızın Sample_PDF.pdf olarak adlandırıldığını varsayalım.

Sayfa1 Sayfa2
Örnek PDF'nin 1. sayfasını Lorem ipsum metni ve standart görüntüleyici kontrolleriyle gösteren PDF görüntüleyici
Örnek PDF'nin 2. sayfasını Lorem ipsum metni ve gezinme kontrolleriyle gösteren PDF görüntüleyici

Her sayfanın bir görüntüsünü oluşturmayı ödev. Öncelikle, bu işlemi IronPDF kullanarak nasıl gerçekleştireceğimizi göreceğiz.

IronPDF PDF Sayfalarını Görüntülere Nasıl Dönüştürür?

using IronPdf;

static void Main(string[] args)
{
    // Specify file to be converted
    var pdf = PdfDocument.FromFile("Sample_PDF.pdf");
    // Save images to the target location
    pdf.RasterizeToImageFiles("image_*.png");
}
using IronPdf;

static void Main(string[] args)
{
    // Specify file to be converted
    var pdf = PdfDocument.FromFile("Sample_PDF.pdf");
    // Save images to the target location
    pdf.RasterizeToImageFiles("image_*.png");
}
Imports IronPdf

Shared Sub Main(ByVal args() As String)
	' Specify file to be converted
	Dim pdf = PdfDocument.FromFile("Sample_PDF.pdf")
	' Save images to the target location
	pdf.RasterizeToImageFiles("image_*.png")
End Sub
$vbLabelText   $csharpLabel

IronPDF ayrıca görüntüleri bellek akışına kaydetmeyi ve farklı görüntü formatlarını (JPEG, TIFF ve daha fazlası) destekler.

Çıktı:

Yukarıdaki kod, aşağıdaki iki .png görselini oluşturur:

Sayfa1 Görüntüsü Sayfa2 Görüntüsü
PDF sayfa 1'den oluşturulan PNG görüntüsü, Virtual Mechanics ders içeriği ile açık metin rendermesi gösteriyor
PDF sayfa 2'den oluşturulan PNG görüntüsü, IronPDF'nin rasterizasyon kalitesiyle devam eden metin içeriği gösteriyor

IronPDF kullanarak PDF sayfalarının görüntülerini oluşturmak kolaydır. Şimdi, PrizmDoc Viewer kullanarak aynı görevi yapalım.

PrizmDoc Viewer PDF Sayfalarını Görüntülere Nasıl Dönüştürür?

using System.Linq;
using System.Collections.Generic;
using System.Threading.Tasks;
using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    PdfToImage().GetAwaiter().GetResult();
}

private static async Task PdfToImage()
{
    // Instantiate PrizmDocServerClient object
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_131___", "Your-API-KEY");
    // Convert PDF file to images
    IEnumerable<ConversionResult> results = await prizmDocServer.ConvertAsync("Sample_PDF.pdf", DestinationFileFormat.Png);

    // Save each image.
    for (int i = 0; i < results.Count(); i++)
    {
        await results.ElementAt(i).RemoteWorkFile.SaveAsync($"page-{i + 1}.png");
    }
}
using System.Linq;
using System.Collections.Generic;
using System.Threading.Tasks;
using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    PdfToImage().GetAwaiter().GetResult();
}

private static async Task PdfToImage()
{
    // Instantiate PrizmDocServerClient object
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_131___", "Your-API-KEY");
    // Convert PDF file to images
    IEnumerable<ConversionResult> results = await prizmDocServer.ConvertAsync("Sample_PDF.pdf", DestinationFileFormat.Png);

    // Save each image.
    for (int i = 0; i < results.Count(); i++)
    {
        await results.ElementAt(i).RemoteWorkFile.SaveAsync($"page-{i + 1}.png");
    }
}
Imports System.Linq
Imports System.Collections.Generic
Imports System.Threading.Tasks
Imports Accusoft.PrizmDocServer
Imports Accusoft.PrizmDocServer.Conversion

Module Program
    Sub Main(args As String())
        PdfToImage().GetAwaiter().GetResult()
    End Sub

    Private Async Function PdfToImage() As Task
        ' Instantiate PrizmDocServerClient object
        Dim prizmDocServer = New PrizmDocServerClient("___PROTECTED_URL_131___", "Your-API-KEY")
        ' Convert PDF file to images
        Dim results As IEnumerable(Of ConversionResult) = Await prizmDocServer.ConvertAsync("Sample_PDF.pdf", DestinationFileFormat.Png)

        ' Save each image.
        For i As Integer = 0 To results.Count() - 1
            Await results.ElementAt(i).RemoteWorkFile.SaveAsync($"page-{i + 1}.png")
        Next
    End Function
End Module
$vbLabelText   $csharpLabel

Çıktı:

Yukarıdaki kod, aşağıdaki iki .png görselini de oluşturur:

Sayfa1 Sayfa2
PrizmDoc'un dönüştürme hizmetini kullanarak PDF sayfa 1'den oluşturulan PNG görüntüsü, örnek metin içeriğiyle
PDF sayfa 2'den oluşturulan PNG görüntüsü, PrizmDoc'un görüntü dönüştürme çıktı kalitesi gösteriyor

Hangi Kütüphane PDF'den Görüntü Dönüşümünü Kolaylaştırır?

PrizmDoc Viewer ile karşılaştırıldığında IronPDF, sayfalar arasında gezinmeden bile her sayfanın görüntüsünü kolayca oluşturmalarını sağlıyor.


IronPDF ile Bootstrap 5 Veri Tablolarını Kullanabilir miyim?

IronPDF'nin Chrome V8 render motoru, Bootstrap 5 veri tabloları için mükemmel destek sağlar ve geliştiricilerin karmaşık tablo düzenleriyle profesyonel PDF raporları oluşturmalarına olanak tanır. Bu örnek, degrade başlıklar, durum rozetleri, sayfa numaralandırma kontrolleri ve özet metriklerini gösterir - IronPDF'nin PrizmDoc gibi geleneksel PDF görüntüleyicilere göre avantajlarını vurgulayan özellikler. IronPDF, modern CSS özelliklerini tam olarak destekler, flexbox düzenleri, gradientler ve duyarlı tasarım dahil.

using IronPdf;

var renderer = new ChromePdfRenderer();

string dataTableReport = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='___PROTECTED_URL_132___ rel='stylesheet'>
    <style>
        .table-header {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 30px;
            border-radius: 10px 10px 0 0;
        }
        .table-container {
            background: white;
            border-radius: 0 0 10px 10px;
            box-shadow: 0 10px 30px rgba(0,0,0,0.1);
            overflow: hidden;
        }
        .table th {
            background: #f8f9fa;
            font-weight: 600;
            text-transform: uppercase;
            font-size: 0.85rem;
            letter-spacing: 0.5px;
        }
        .status-badge {
            padding: 0.35em 0.65em;
            border-radius: 0.25rem;
            font-weight: 600;
            font-size: 0.75rem;
        }
        .trend-positive { color: #198754; font-weight: 700; }
        .trend-negative { color: #dc3545; font-weight: 700; }
        @media print {
            .table-container { page-break-inside: avoid; }
        }
    </style>
</head>
<body class='bg-light'>
    <div class='container py-5'>
        <div class='table-container'>
            <div class='table-header'>
                <div class='row align-items-center'>
                    <div class='col-md-8'>
                        <h2 class='mb-2'>Sales Performance Report</h2>
                        <p class='mb-0 opacity-75'>Q4 2024 Regional Analysis</p>
                    </div>
                    <div class='col-md-4 text-end'>
                        <div class='btn-group btn-group-sm'>
                            <button class='btn btn-light'>Export</button>
                            <button class='btn btn-light'>Filter</button>
                            <button class='btn btn-light'>Sort</button>
                        </div>
                    </div>
                </div>
            </div>

            <div class='p-4'>
                <div class='row mb-3'>
                    <div class='col-md-4'>
                        <input type='text' class='form-control form-control-sm' placeholder='Search regions...'>
                    </div>
                    <div class='col-md-8 text-end'>
                        <span class='text-muted small'>Showing 1-10 of 48 results</span>
                    </div>
                </div>

                <div class='table-responsive'>
                    <table class='table table-hover align-middle'>
                        <thead>
                            <tr>
                                <th>Region</th>
                                <th>Revenue</th>
                                <th>Units Sold</th>
                                <th>Growth</th>
                                <th>Status</th>
                                <th>Action</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td>
                                    <strong>North America</strong><br>
                                    <small class='text-muted'>USA, Canada, Mexico</small>
                                </td>
                                <td>$4,280,000</td>
                                <td>12,450</td>
                                <td><span class='trend-positive'>↑ 18.5%</span></td>
                                <td><span class='status-badge bg-success text-white'>Exceeding</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Europe</strong><br>
                                    <small class='text-muted'>EU, UK, Switzerland</small>
                                </td>
                                <td>$3,650,000</td>
                                <td>10,890</td>
                                <td><span class='trend-positive'>↑ 12.3%</span></td>
                                <td><span class='status-badge bg-success text-white'>On Track</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Asia Pacific</strong><br>
                                    <small class='text-muted'>Japan, Australia, Singapore</small>
                                </td>
                                <td>$2,940,000</td>
                                <td>8,320</td>
                                <td><span class='trend-positive'>↑ 24.7%</span></td>
                                <td><span class='status-badge bg-primary text-white'>Growing</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Latin America</strong><br>
                                    <small class='text-muted'>Brazil, Argentina, Chile</small>
                                </td>
                                <td>$1,580,000</td>
                                <td>4,670</td>
                                <td><span class='trend-positive'>↑ 8.9%</span></td>
                                <td><span class='status-badge bg-info text-white'>Stable</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Middle East</strong><br>
                                    <small class='text-muted'>UAE, Saudi Arabia, Israel</small>
                                </td>
                                <td>$980,000</td>
                                <td>2,890</td>
                                <td><span class='trend-negative'>↓ 3.2%</span></td>
                                <td><span class='status-badge bg-warning text-dark'>Review</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                        </tbody>
                        <tfoot class='table-light'>
                            <tr>
                                <td><strong>Total</strong></td>
                                <td><strong>$13,430,000</strong></td>
                                <td><strong>39,220</strong></td>
                                <td><strong class='trend-positive'>↑ 14.8%</strong></td>
                                <td colspan='2'></td>
                            </tr>
                        </tfoot>
                    </table>
                </div>

                <div class='d-flex justify-content-between align-items-center mt-4'>
                    <div>
                        <select class='form-select form-select-sm' style='width: auto; display: inline-block;'>
                            <option>10 per page</option>
                            <option>25 per page</option>
                            <option>50 per page</option>
                        </select>
                    </div>
                    <nav>
                        <ul class='pagination pagination-sm mb-0'>
                            <li class='page-item disabled'><a class='page-link' href='#'>Previous</a></li>
                            <li class='page-item active'><a class='page-link' href='#'>1</a></li>
                            <li class='page-item'><a class='page-link' href='#'>2</a></li>
                            <li class='page-item'><a class='page-link' href='#'>3</a></li>
                            <li class='page-item'><a class='page-link' href='#'>Next</a></li>
                        </ul>
                    </nav>
                </div>
            </div>
        </div>

        <div class='row g-3 mt-4'>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-primary mb-1'>$13.4M</h3>
                        <small class='text-muted'>Total Revenue</small>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-success mb-1'>39,220</h3>
                        <small class='text-muted'>Units Sold</small>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-info mb-1'>14.8%</h3>
                        <small class='text-muted'>Growth Rate</small>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-warning mb-1'>5</h3>
                        <small class='text-muted'>Active Regions</small>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(dataTableReport);
pdf.SaveAs("data-table-report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

string dataTableReport = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='___PROTECTED_URL_132___ rel='stylesheet'>
    <style>
        .table-header {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 30px;
            border-radius: 10px 10px 0 0;
        }
        .table-container {
            background: white;
            border-radius: 0 0 10px 10px;
            box-shadow: 0 10px 30px rgba(0,0,0,0.1);
            overflow: hidden;
        }
        .table th {
            background: #f8f9fa;
            font-weight: 600;
            text-transform: uppercase;
            font-size: 0.85rem;
            letter-spacing: 0.5px;
        }
        .status-badge {
            padding: 0.35em 0.65em;
            border-radius: 0.25rem;
            font-weight: 600;
            font-size: 0.75rem;
        }
        .trend-positive { color: #198754; font-weight: 700; }
        .trend-negative { color: #dc3545; font-weight: 700; }
        @media print {
            .table-container { page-break-inside: avoid; }
        }
    </style>
</head>
<body class='bg-light'>
    <div class='container py-5'>
        <div class='table-container'>
            <div class='table-header'>
                <div class='row align-items-center'>
                    <div class='col-md-8'>
                        <h2 class='mb-2'>Sales Performance Report</h2>
                        <p class='mb-0 opacity-75'>Q4 2024 Regional Analysis</p>
                    </div>
                    <div class='col-md-4 text-end'>
                        <div class='btn-group btn-group-sm'>
                            <button class='btn btn-light'>Export</button>
                            <button class='btn btn-light'>Filter</button>
                            <button class='btn btn-light'>Sort</button>
                        </div>
                    </div>
                </div>
            </div>

            <div class='p-4'>
                <div class='row mb-3'>
                    <div class='col-md-4'>
                        <input type='text' class='form-control form-control-sm' placeholder='Search regions...'>
                    </div>
                    <div class='col-md-8 text-end'>
                        <span class='text-muted small'>Showing 1-10 of 48 results</span>
                    </div>
                </div>

                <div class='table-responsive'>
                    <table class='table table-hover align-middle'>
                        <thead>
                            <tr>
                                <th>Region</th>
                                <th>Revenue</th>
                                <th>Units Sold</th>
                                <th>Growth</th>
                                <th>Status</th>
                                <th>Action</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td>
                                    <strong>North America</strong><br>
                                    <small class='text-muted'>USA, Canada, Mexico</small>
                                </td>
                                <td>$4,280,000</td>
                                <td>12,450</td>
                                <td><span class='trend-positive'>↑ 18.5%</span></td>
                                <td><span class='status-badge bg-success text-white'>Exceeding</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Europe</strong><br>
                                    <small class='text-muted'>EU, UK, Switzerland</small>
                                </td>
                                <td>$3,650,000</td>
                                <td>10,890</td>
                                <td><span class='trend-positive'>↑ 12.3%</span></td>
                                <td><span class='status-badge bg-success text-white'>On Track</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Asia Pacific</strong><br>
                                    <small class='text-muted'>Japan, Australia, Singapore</small>
                                </td>
                                <td>$2,940,000</td>
                                <td>8,320</td>
                                <td><span class='trend-positive'>↑ 24.7%</span></td>
                                <td><span class='status-badge bg-primary text-white'>Growing</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Latin America</strong><br>
                                    <small class='text-muted'>Brazil, Argentina, Chile</small>
                                </td>
                                <td>$1,580,000</td>
                                <td>4,670</td>
                                <td><span class='trend-positive'>↑ 8.9%</span></td>
                                <td><span class='status-badge bg-info text-white'>Stable</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Middle East</strong><br>
                                    <small class='text-muted'>UAE, Saudi Arabia, Israel</small>
                                </td>
                                <td>$980,000</td>
                                <td>2,890</td>
                                <td><span class='trend-negative'>↓ 3.2%</span></td>
                                <td><span class='status-badge bg-warning text-dark'>Review</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                        </tbody>
                        <tfoot class='table-light'>
                            <tr>
                                <td><strong>Total</strong></td>
                                <td><strong>$13,430,000</strong></td>
                                <td><strong>39,220</strong></td>
                                <td><strong class='trend-positive'>↑ 14.8%</strong></td>
                                <td colspan='2'></td>
                            </tr>
                        </tfoot>
                    </table>
                </div>

                <div class='d-flex justify-content-between align-items-center mt-4'>
                    <div>
                        <select class='form-select form-select-sm' style='width: auto; display: inline-block;'>
                            <option>10 per page</option>
                            <option>25 per page</option>
                            <option>50 per page</option>
                        </select>
                    </div>
                    <nav>
                        <ul class='pagination pagination-sm mb-0'>
                            <li class='page-item disabled'><a class='page-link' href='#'>Previous</a></li>
                            <li class='page-item active'><a class='page-link' href='#'>1</a></li>
                            <li class='page-item'><a class='page-link' href='#'>2</a></li>
                            <li class='page-item'><a class='page-link' href='#'>3</a></li>
                            <li class='page-item'><a class='page-link' href='#'>Next</a></li>
                        </ul>
                    </nav>
                </div>
            </div>
        </div>

        <div class='row g-3 mt-4'>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-primary mb-1'>$13.4M</h3>
                        <small class='text-muted'>Total Revenue</small>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-success mb-1'>39,220</h3>
                        <small class='text-muted'>Units Sold</small>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-info mb-1'>14.8%</h3>
                        <small class='text-muted'>Growth Rate</small>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-warning mb-1'>5</h3>
                        <small class='text-muted'>Active Regions</small>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(dataTableReport);
pdf.SaveAs("data-table-report.pdf");
Imports IronPdf

Dim renderer = New ChromePdfRenderer()

Dim dataTableReport As String = "
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='___PROTECTED_URL_132___ rel='stylesheet'>
    <style>
        .table-header {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 30px;
            border-radius: 10px 10px 0 0;
        }
        .table-container {
            background: white;
            border-radius: 0 0 10px 10px;
            box-shadow: 0 10px 30px rgba(0,0,0,0.1);
            overflow: hidden;
        }
        .table th {
            background: #f8f9fa;
            font-weight: 600;
            text-transform: uppercase;
            font-size: 0.85rem;
            letter-spacing: 0.5px;
        }
        .status-badge {
            padding: 0.35em 0.65em;
            border-radius: 0.25rem;
            font-weight: 600;
            font-size: 0.75rem;
        }
        .trend-positive { color: #198754; font-weight: 700; }
        .trend-negative { color: #dc3545; font-weight: 700; }
        @media print {
            .table-container { page-break-inside: avoid; }
        }
    </style>
</head>
<body class='bg-light'>
    <div class='container py-5'>
        <div class='table-container'>
            <div class='table-header'>
                <div class='row align-items-center'>
                    <div class='col-md-8'>
                        <h2 class='mb-2'>Sales Performance Report</h2>
                        <p class='mb-0 opacity-75'>Q4 2024 Regional Analysis</p>
                    </div>
                    <div class='col-md-4 text-end'>
                        <div class='btn-group btn-group-sm'>
                            <button class='btn btn-light'>Export</button>
                            <button class='btn btn-light'>Filter</button>
                            <button class='btn btn-light'>Sort</button>
                        </div>
                    </div>
                </div>
            </div>

            <div class='p-4'>
                <div class='row mb-3'>
                    <div class='col-md-4'>
                        <input type='text' class='form-control form-control-sm' placeholder='Search regions...'>
                    </div>
                    <div class='col-md-8 text-end'>
                        <span class='text-muted small'>Showing 1-10 of 48 results</span>
                    </div>
                </div>

                <div class='table-responsive'>
                    <table class='table table-hover align-middle'>
                        <thead>
                            <tr>
                                <th>Region</th>
                                <th>Revenue</th>
                                <th>Units Sold</th>
                                <th>Growth</th>
                                <th>Status</th>
                                <th>Action</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td>
                                    <strong>North America</strong><br>
                                    <small class='text-muted'>USA, Canada, Mexico</small>
                                </td>
                                <td>$4,280,000</td>
                                <td>12,450</td>
                                <td><span class='trend-positive'>↑ 18.5%</span></td>
                                <td><span class='status-badge bg-success text-white'>Exceeding</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Europe</strong><br>
                                    <small class='text-muted'>EU, UK, Switzerland</small>
                                </td>
                                <td>$3,650,000</td>
                                <td>10,890</td>
                                <td><span class='trend-positive'>↑ 12.3%</span></td>
                                <td><span class='status-badge bg-success text-white'>On Track</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Asia Pacific</strong><br>
                                    <small class='text-muted'>Japan, Australia, Singapore</small>
                                </td>
                                <td>$2,940,000</td>
                                <td>8,320</td>
                                <td><span class='trend-positive'>↑ 24.7%</span></td>
                                <td><span class='status-badge bg-primary text-white'>Growing</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Latin America</strong><br>
                                    <small class='text-muted'>Brazil, Argentina, Chile</small>
                                </td>
                                <td>$1,580,000</td>
                                <td>4,670</td>
                                <td><span class='trend-positive'>↑ 8.9%</span></td>
                                <td><span class='status-badge bg-info text-white'>Stable</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Middle East</strong><br>
                                    <small class='text-muted'>UAE, Saudi Arabia, Israel</small>
                                </td>
                                <td>$980,000</td>
                                <td>2,890</td>
                                <td><span class='trend-negative'>↓ 3.2%</span></td>
                                <td><span class='status-badge bg-warning text-dark'>Review</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                        </tbody>
                        <tfoot class='table-light'>
                            <tr>
                                <td><strong>Total</strong></td>
                                <td><strong>$13,430,000</strong></td>
                                <td><strong>39,220</strong></td>
                                <td><strong class='trend-positive'>↑ 14.8%</strong></td>
                                <td colspan='2'></td>
                            </tr>
                        </tfoot>
                    </table>
                </div>

                <div class='d-flex justify-content-between align-items-center mt-4'>
                    <div>
                        <select class='form-select form-select-sm' style='width: auto; display: inline-block;'>
                            <option>10 per page</option>
                            <option>25 per page</option>
                            <option>50 per page</option>
                        </select>
                    </div>
                    <nav>
                        <ul class='pagination pagination-sm mb-0'>
                            <li class='page-item disabled'><a class='page-link' href='#'>Previous</a></li>
                            <li class='page-item active'><a class='page-link' href='#'>1</a></li>
                            <li class='page-item'><a class='page-link' href='#'>2</a></li>
                            <li class='page-item'><a class='page-link' href='#'>3</a></li>
                            <li class='page-item'><a class='page-link' href='#'>Next</a></li>
                        </ul>
                    </nav>
                </div>
            </div>
        </div>

        <div class='row g-3 mt-4'>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-primary mb-1'>$13.4M</h3>
                        <small class='text-muted'>Total Revenue</small>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-success mb-1'>39,220</h3>
                        <small class='text-muted'>Units Sold</small>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-info mb-1'>14.8%</h3>
                        <small class='text-muted'>Growth Rate</small>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-warning mb-1'>5</h3>
                        <small class='text-muted'>Active Regions</small>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>"

Dim pdf = renderer.RenderHtmlAsPdf(dataTableReport)
pdf.SaveAs("data-table-report.pdf")
$vbLabelText   $csharpLabel

Bu kod, gradient başlıklar, duyarlı tablolar, durum rozetleri ve özet metriklerle sofistike bir veri tablosu raporu üretir. IronPDF'nin Chrome render motoru, tablo üzerinde gezinti efektleri, rozet renkleri ve sayfalama kontrolleri dahil tüm Bootstrap stil öğelerini korur - bu, geleneksel PDF görüntüleyicilerini aşan yeteneklerdir. Motor ayrıca dinamik içerik için JavaScript renderını, özel yazı tipleri ve UTF-8 uluslararası karakterleri destekler.

PrizmDoc Viewer'a Karşı Temel Avantajlar:

Bootstrap PDF üretimi hakkında daha fazla ayrıntı için tüm render dökümantasyonunu inceleyin. Geliştiriciler ayrıca Angular'dan PDF'e dönüşüm ve diğer JavaScript çerçeve desteğini de keşfedebilir.## IronPDF ile PrizmDoc Viewer Arasındaki Lisans Maliyetleri Nasıl Karşılaştırılır?

Her iki bileşenin teknik yapısı ve mevcut işlevleri incelendikten sonra, lisans fiyatlandırması aşağıdaki gibi özetlenmektedir. Bu, geliştiricilerin bütçe kısıtlamaları içinde gereksinimleri karşılamayı hedeflediği için önemlidir.

IronPDF'nin Lisans Seçenekleri Nelerdir?

IronPDF lisansları tek geliştirici için $999 ile başlamaktadır. IronPDF, geliştirme lisansları, dağıtım lisansları ve genişletme seçenekleri dahil olmak üzere esnek lisanslama seçenekleri sunar, sürekli destek ve güncellemeler sağlar.

Çoklu müşteri hizmeti veren şirket ya da ajanslardaki geliştiriciler için, IronPDF ekip büyüklüğü ve proje sayısına göre ayarlanabilen kademeli lisanslama sunar. IronPDF, ihtiyaçlar geliştikçe lisans yükseltme yolları sunar.

Tüm IronPDF lisans paketleri 1 yıl destek ve güncellemeleri içerir. Mevcut lisans paketleri, kademeleri ve fiyatlandırma hakkında daha fazla okuyun. Geliştiriciler, lisans anahtarlarını Web.config ve çevre değişkenleri dahil olmak üzere çeşitli şekillerde uygulayabilir.

PrizmDoc Viewer'ın Lisans Seçenekleri Nelerdir?

Öz-yönetimli `PrizmDoc` maliyeti nedir?

Kendi sunucusunda barındırılan PrizmDoc Sunucusu yıllık lisans altında sunulmaktadır. Accusoft'a Ulaşın PrizmDoc Viewer için mevcut fiyatlandırma ve paketler hakkında.

Bulut Tabanlı `PrizmDoc` maliyeti ne kadardır?

Bu lisans, PrizmDoc Viewer'ın bulut tabanlı hizmetlerini kapsar, işlem sayısına göre ölçeklenir.

Terminologies:

Transaction PrizmDoc Viewer sunucusuna bir istek gönderilmesi ve çıktının (sonuç belgesi) alınmasını ifade eder.

Prepaid Buckets bir kez ödeme yapmanız ve süresi dolmayan işlemler almanız anlamına gelir.

Bulut fiyatlandırması kullanım bazlıdır ve işlem hacmiyle ölçeklenir. Accusoft'a Ulaşın mevcut bulut fiyatlandırma kademeleri ve oranları hakkında.


Hızlı Öğretici Erişimi

Html To Pdf Icon related to Hızlı Öğretici Erişimi

C# IronPDF Hızlı Başlangıç El Kitabını Alın

.NET için PDF geliştirmeyi basitleştiren, yaygın işlevlerin ve projeler için PDF'leri oluşturma, düzenleme, üretme ve kaydetme örneklerinin yürütüldüğü ücretsiz bir PDF kaynak kılavuzu.

Kılavuzu İndir

IronPDF API Referansını Keşfedin

IronPDF'nin tüm özelliklerinin, sınıflarının, yöntem alanlarının, ad alanlarının ve enumlarının detaylarını içeren IronPDF C# Kütüphanesi için API Referansını keşfedin.

API Referansını Görüntüle
Documentation related to Hızlı Öğretici Erişimi

Lütfen dikkate alınAccusoft'un PrizmDoc Viewer'ı ilgili sahibinin tescilli markasıdır. Bu site, Accusoft'un PrizmDoc Viewer'ı ile ilişkili veya desteklenmiş değildir ve herhangi bir şekilde sponsorluğu yoktur. 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.

PDF dönüştürme için IronPDF'ü PrizmDoc Viewer'a tercih etmenin avantajları nelerdir?

IronPDF, çevrimdışı çalışma gerektirmeyen asenkron programlama ihtiyacını ortadan kaldırarak, yerel PDF işleme çözümü sunar. PrizmDoc Viewer ise, internet bağlantısı gerektiren bir REST API üzerinden çalışır.

Bir PDF kütüphanesi kullanarak birden fazla PDF belgesini birleştirebilir miyim?

Evet, IronPDF ile MergePdf yöntemini kullanarak birden fazla PDF'yi sorunsuz bir şekilde birleştirebilirsiniz.

IronPDF, PDF'den resim dönüşümünü nasıl ele alır?

IronPDF, yerleşik yöntemlerini kullanarak PDF sayfalarını kolayca resimlere dönüştürmenizi sağlar, diğer yazılımlara kıyasla daha basit bir yaklaşım sunar.

IronPDF'teki başlık ve altbilgi özelleştirme seçenekleri nelerdir?

IronPDF, belgelerinizi kolayca özelleştirmenizi sağlayacak basit bir programlama yapısıyla başlık ve altbilgi özelliklerini ayarlamak için geniş fonksiyonlar sunar.

IronPDF, çevrimdışı PDF işleme için uygun mu?

Evet, IronPDF çevrimdışı PDF işlemeyi destekler; bu da bazı çözümlerin uzak sunucu etkileşimi gerektirdiği durumlar hariç, internet bağlantısı olmadan çalışabileceğiniz anlamına gelir.

IronPDF lisanslarının maliyet yapısı nedir?

IronPDF lisansları, tek bir proje ve bir geliştirici için 699$ 'dan başlayan, şirketler ve SaaS hizmetleri için ölçeklenebilir seçenekler sunarak maliyet etkin, tek seferlik bir ödeme çözümü sunar.

IronPDF ile ücretsiz olarak geliştirme yapabilir miyim?

Evet, IronPDF geliştirme için zaman sınırlaması olmadan ücretsizdir ve projenizle canlı yayına geçmek için 30 günlük bir dağıtım denemesi sunar.

PrizmDoc Viewer, HTML'den PDF'ye dönüştürmeyi nasıl ele alır?

PrizmDoc Viewer, HTML'den PDF'ye dönüştürme için bir REST API kullanır ve bu da asenkron programlama ve uzak sunucu etkileşimi için internet bağlantısı gerektirir.

PrizmDoc Sunucusunu barındırmak için sistem gereksinimleri nelerdir?

PrizmDoc Sunucusunu kendi kendine barındırmak, işleme ihtiyaçlarını karşılayacak şekilde minimum 32 GB RAM ve 4 Çekirdekli CPU gerektirir.

IronPDF, .NET 10 ile tam uyumlu mu?

Evet. IronPDF, .NET 10'u destekler (aynı zamanda .NET 9, 8, 7, 6, .NET Core, .NET Standard ve .NET Framework'u da). NuGet aracılığıyla kurulur, Windows, Linux ve macOS'ta çalışır ve .NET 10 uygulamalarında pürüzsüz HTML'den PDF'ye dönüştürme sunmak için kendi yerel Chrome tabanlı işleyicisini kullanır.

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