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

IronPDF vs Accusoft PDF Viewer: HTML to PDF İçin Hangi C# Kütüphanesi En İyisi?

IronPDF ve Accusoft PDF Viewer her ikisi de HTML'den PDF'e donusum saglar .NET'te. IronPDF, basit sentaks, bulut bagimliligi olmadan lokal işleme ve 699$'dan başlayan sinirsiz donusumler sunar. Aksine, Accusoft internet baglantisi gerektirir ve işlem basina ucret alir.

IronPDF ile Accusoft PDF Viewer karsilastirin

  • HTML'den PDF'e Dönüştür
  • PDF'ler icin Baslik ve Altbilgi Ayarla
  • PDF'i Resim Dosyasina Dönüştür
  • Lisanslama, ücretsiz deneme seçenekleri ve daha fazlasini karsilastirin

Genel Bakış

IronPDF Nedir ve Nasıl Calisir?

IronPDF bir C# HTML'den PDF'e kutuphane'dir ve geliştiricilere kaynaklardan PDF dosyalari oluşturma imkani tanir, örnek olarak HTML dizesi, Web Sayfasi ve URL. Ayrica Filigran, Yer imleri ve Baslik ve Altlik gibi özellikleri ayarlama da saglar. Ek olarak, geliştiriciler birden fazla PDF dosyasini birlestirebilir veya PDF sayfalarini resimlere cevirip , tersi yonde resimden PDF'e cevirme yapabilirler.

IronPDF gelisim icin ucretsizdir ve canli projeler icin bir 30 günlük yayim denemesi sunar. Gelisimcilerin hizli başlamasina yardimci olmak icin tüm dokümantasyon, kod örnekleri, ve API referansi sunar.

Developers can download a file project from this link.

What Is Accusoft PrizmDoc Viewer and How Does It Work?

PrizmDoc Viewer, uzaktaki diğer formatlara ceviren bir PDF dosyalari ile calisan REST API'dir. PrizmDoc 100'den fazla farkli dosya formatini PDF'e ve PDF'i PNG, JPG, TIFF, ve SVG'ye cevirir. Ayrica uygulamalar icin değişik elektronik imza seçenekleri saglar.

How Do IronPDF and PrizmDoc Viewer Compare?

IronPDF `PrizmDoc` Viewer
Work with [PDF files programmatically](/how-to/csharp-parse-pdf/). PDF dosyalari programli olarak isler.
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 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/). Must use Asynchronous Programming with `System.Threading.Tasks`.
Works offline once [installed](/get-started/installation-overview/). Requires internet connection for `PrizmDoc` server requests.
Provides many [predefined functions](/features/). Bazi tanimli islevler saglar.
Often requires [minimal lines of code](/tutorials/html-to-pdf/). Cogu zaman çok satirli kod gerektirir.
[Sınırsız conversions](/licensing/) per project in each license. Bulut barindirma lisanslarinda işlem limiti.
[Free for development](/get-started/quickstart/) without time limits. Sadece denemede 300 işlem.

Her iki kutuphaneyi yukleyip kodu karsilastiralim.


Adim 1: Kurulum

IronPDF'i .NET Projemde Nasıl Yuklerim?

Projenizde IronPDF yuklemenin iki yolu vardir, yaklasimlar arasinda fark yoktur. IronPDF Azure dağıtimi, AWS Lambda, Docker konteynerleri, ve Blazor uygulamalari dahil olmak üzere çeşitli ortamlari destekler.

IronPDF'i Indirmenin Farkli Yollari Nelerdir?

IronPDF.dll indir ve projeye referansini ekleyin. Geliştiriciler, sistem genelinde kurulum icin Windows Yukleyicisini de kullanabilirler. Bundan sonra, using IronPdf; ad alanina erişim saglanir:

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

Su anda, geliştiriciler sunulan fonksiyonlar ve siniflar'a kolaylikla erisebilir, bu ChromePdfRenderer, render icin PDF belge manipulasyonu ve guvenlik özellikleri gibi.

IronPDF'i NuGet Package Manager ile Nasıl Yuklerim?


How Do I Install PrizmDoc Viewer from Accusoft?

PrizmDoc Viewer iki parcadan olusur: RESTful API gibi davranan PrizmDoc Server adinda bir sunucu tarafli bilesen ve istegi API'ye gonderip yanit alacak bir istemci projesi. ek dis bagimlilik olmadan lokal olarak calisan IronPDF'tan farkli olarak, PrizmDoc bulut merkezli işlem icin ag baglantisi gerektirir.

How Can I Access the PrizmDoc Server?

PrizmDoc Sunucu, belgeleri istek (girdi) olarak alip uygun formatlari PDF dosyalarina cevirip cevrilen PDF dosyalarini yant olarak geri gonderen bir sunucu tarafli uygulamadir. Ürünün teknik kalbi olarak hizmet eder - bir belge işleme ve dönüşüm motoru. Geliştiriciler aynı programlama yapısı ve tekniklerini paylaşarak iki farklı yöntemle kullanabilir:

  1. Ozel Barindirilan:

    Bu seçenek bir sunucu duzenlemeyi gerektirir. PrizmDoc Sunucusunu Indirin ve kurun. Daha fazlasini okuyun PrizmDoc Sunucusunun Windows'a nasıl kurulacagini.

    Not: Daha iyi performans icin minimum 32 GB RAM ve 4 Cekirdek CPU gereklidir. IronPDF'un sistem gereksinimleri bununla karsilastirildiginda çok daha sadedir.

  2. Bulut Barindirilan:

    Bu bulut tabanli hizmet sunucu duzenlemenin gerekliligini ortadan kaldirir. Bu secenegi kullanmak icin, bir hesap oluşturun ve ana sayfadaki API key menu uyelerinden API Key'i kopyalayin.

Ilk olarak, C# Console Uygulamasinda WebClient() kullanarak Accusoft server ile directly invoking ile belgeleri PDF dosyalarina cevirmek icin PrizmDoc Viewer'i kullanmanin temel yapisini inceleyelim.

Not: Asagidaki örnek PrizmDoc'nin PDF dosyalarini kavramsal olarak nasıl isledigini göstermektedir. Uzun oldugu icin, bu ornegi atlayabilir ve direkt karsilastirmaya gecebilirsiniz.

Accusoft'un Calisma Yapisi Nasıl Calisir?

Bu örnek myWebpage.html'yi sample.pdf'ye cevirir. IronPDF'in dogrudan HTML'den PDF'e donusumu'ndan farkli olarak, PrizmDoc birden fazla API cagrisini gerektirir.

Not: Newtonsoft.Json kutuphanesi projede yuklenip referanslanmalıdır.

Öncelikle projeye aşağıdaki kütüphaneleri 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

Daha sonra bir public değişken Accusoft API Key oluşturun ve API Anahtarını içine 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

PrizmDoc Viewer kullanarak PDF dosyalari ile calismak icin 3 adim vardir:

  1. Bir dosyayi PrizmDoc sunucuya yukleyin.
  2. Yuklenen dosyayi cevirin.
  3. PrizmDoc sunucusu ndan dönüştürulmus dosyayi indirin.

Her adim farkli bir fonksiyonla ele alinir:

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 dosya yukleyin:

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. Yuklenen dosyayi PDF'e cevirin:

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 sonuç değeridir:

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

Dönüştürmenin 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. Dönüştürülen dosyayı sunucudan indirin

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 bir çaba gerektirir. İş yükünü en aza indirmek için, Accusoft bir .NET kütüphanesi olan Accusoft.PrizmDocServerSDK'yi, PrizmDoc Sunucu REST API'sine bir sarıcı olarak tanıttı. .NET projelerinde bu kütüphaneyi nasıl kuracağımızı ve kullanacağımızı inceleyelim.

How Do I Install Accusoft.PrizmDocServerSDK?

Sarıcıyı kurmak için iki yol vardır.

  • Paket Yöneticisi Konsolu:

    Package Manager Console'u kullanirken, su komutu calistirin:

    _CODEBLOCK10

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

    Eğer NuGet Paket Yöneticisi GUI'si kullanılıyorsa, arama çubuğunda Accusoft.PrizmDocServerSDK arayın ve yükleyin.

Şimdi, geliştiriciler Accusoft.PrizmDocServer ad alanına kolayca erişebilir ve kullanabilir:

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

Nasıl Yapılır Öğreticileri

IronPDF ve PrizmDoc Viewer Kod Örneklerinde Nasıl Karşılaştırılır?

Her iki bileşenin giriş ve kurulumunu gözden geçirdikten sonra, her ikisiyle çalışmanın zamanı geldi. Aşağıdaki kullanım durumları, programlama yapıları anlamaya yardımcı olmak için her iki bileşen kullanılarak uygulamanın nasıl yapıldığını göstermektedir ve proje gereksinimlerine en uygun olanı belirlemeye yardımcı olur.


IronPDF'i Kullanarak HTML'i PDF'e Nasıl Dönüştürürüm ve PrizmDoc Viewer ile Nasıl Karşılaştırılır?

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'in Chrome render motoru, piksel olarak kusursuz bir dönüştürme sunar ve CSS, JavaScript ve web fontları için tam destek sağlar.

IronPDF HTML'i PDF'e 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 projedeki bin>debug klasörüne kaydeder. IronPDF ayrıca giriş kaynakları olarak HTML stringleri, URL'leri ve hatta HTML içeren ZIP dosyalarını destekler.

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

Daha Fazla Bilgi Edinin IronPDF ile PDF dosyaları üzerinde çalışmak hakkında.

Şimdi, karşılaştırma için aynı görevi PrizmDoc Viewer kullanarak gerçekleştirelim.

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

PrizmDoc Viewer kurulum bölümünde, Accusoft API Key elde etme konusuna değinildi. İşte nasıl kullanılacağı.

İlk olarak, PrizmDoc sunucusuna bir istek gönderin ve bir yanıt alın. Bu süreç zaman alır, Asenkron Programlama gerektirir. IronPDF, geliştirilmiş performans için asenkron yöntemleri de destekler.

Not: PrizmDoc Viewer's bulut hizmetlerini kullanarak 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

Daha fazla bilgiyi okuyun PrizmDoc Viewer ile çalışmak hakkında.

Hangi Kütüphane Daha Basit HTML'den PDF'e Dönüşüm Sağlıyor?

Bu örnekler, IronPDF'in PDF dosyalarını oluşturmak için daha basit bir yaklaşım sunduğunu ve daha az zaman gerektirdiğini göstermektedir. IronPDF ayrıca çıktı ayarlamaları için çekim seçenekleri sunar, özel kağıt boyutları, kenar boşlukları ve görüş alanı ayarları dahil.


IronPDF'i Kullanarak Görselleri PDF'e Nasıl Dönüştürürüm ve PrizmDoc Viewer ile Nasıl Karşılaştırılır?

Bu karşılaştırma, projedeki debug klasöründe bulunan bir Görüntü'den nasıl PDF dosyası oluşturulacağını göstermektedir. Geliştiriciler IronPDF ile başlar.

IronPDF Resimleri PDF'e 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 Storage'dan resim ekleme ve Base64 resim ekleme destekler.

Çıktı:

Bu ekran görüntüsü, yukarıdaki kodla oluşturulan yeni PDF dosyası sample.pdf'yi göstermektedir:

Google logosunu beyaz arka plan üzerinde gösteren PDF belgesi, IronPDF'in görüntüden PDF'e dönüştürme yeteneğini sergilemektedir

IronPDF kullanarak bir görüntüden PDF dosyası oluşturmak kolaydır. Şimdi, aynı görevi PrizmDoc Viewer kullanarak gerçekleştirelim ve onun oluşturduğu PDF dosyasını inceleyelim.

PrizmDoc Viewer Resimleri PDF'e 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ı: Bu ekran görüntüsü, yukarıdaki koddan oluşturulan yeni PDF dosyası sample.pdf'yi göstermektedir:

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

Hangi Kütüphane Resimden PDF'e Dönüştürme İçin Daha Az Kod Gerektiriyor?

IronPDF yalnızca iki satır kod gerektiriyor. Buna karşılık, PrizmDoc sunucusunu kullanmak, asenkron programlama ile daha fazla kod satırı içermektedir. IronPDF'den çıkan sonuç, ayrıca otomatik olarak kullanışlı bir tam sayfa belge sağlar. IronPDF, görüntü konumlandırma ve birden fazla görüntü dönüştürme için ek seçenekler sunar.


IronPDF'i Kullanarak Birden Çok PDF Dosyasını Nasıl Birleştiririm ve PrizmDoc Viewer ile Nasıl Karşılaştırılır?

Bu karşılaştırma için, A.pdf, B.pdf ve C.pdf adlı üç PDF dosyasının var olduğunu varsayın. Görev, bu dosyaları bir PDF dosyasında birleştirmektir. Her iki bileşen de bu görevi yerine getirebilmektedir. İlk olarak, bu işlemi IronPDF kullanarak nasıl gerçekleştireceğinizi gösteren bir örnek bulunmaktadı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, sample.pdf dosyasını oluşturur ve A.pdf, B.pdf ve C.pdf birleştirir. IronPDF ayrıca PDF'ler arasında sayfa ekleme ve kopyalama ve PDF'leri bölme işlemlerini de destekler.

Şimdi, aynı görevi PrizmDoc Viewer kullanarak gerçekleştirelim.

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, sample.pdf dosyasını da oluşturur ve A.pdf, B.pdf ve C.pdf dosyalarını birleştirir.


IronPDF Kullanarak PDF'lere Üstbilgi ve Altbilgiyi Nasıl Eklerim ve PrizmDoc Viewer ile Nasıl Karşılaştırılır?

Bu karşılaştırma için, aşağıdaki HTML ve CSS ile myWebPage.html adlı basit bir WebPage dosyasının var 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 dosyasını aşağıdaki Üstbilgi ve Altbilgi özellikleriyle bir PDF dosyasına dönüştürmektir:

  • Üstbilginin sol tarafında Page Title
  • Üstbilginin sağ tarafında DateTime
  • Altbilginin sağ tarafında Page Number of Total Pages

İlk olarak, IronPDF'in Üstbilgiler ve Altbilgilerle nasıl başa çıktığını inceleyelim.

IronPDF PDF Üstbilgileri ve Altbilgileri Nasıl Yönetir?

PDF dosyalarının üstbilgi ve altbilgilerini yönetmek için, IronPDF, ChromePdfRenderer sınıfında RenderingOptions adlı bir özellik sunar ve şöyle kullanılabilir:

  • Üstbilgi İçin:

    _CODEBLOCK19

  • Altbilgi İçin:

    _CODEBLOCK20

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

  • CenterText Üstbilgi veya Altbilginin ortasında metin yazdırmak için
  • LeftText Üstbilgi veya Altbilginin sol tarafında metin yazdırmak için
  • RightText Üstbilgi veya Altbilginin sağ tarafında metin yazdırmak için
  • DrawDividerLine Sayfa içeriğini Üstbilgi veya Altbilgiden ayıran bir çizgi çizer
  • FontFamily Üstbilginin veya Altbilginin yazı tipi ailesini belirtmek için
  • FontSize Üstbilgi veya Altbilginin yazı tipi boyutunu belirtmek için
  • Boşluk Sayfa içeriği ile Üstbilgi veya Altbilgi arasındaki boşluğu ayarlar

Aşağıdaki ön tanımlı öznitellikler Üstbilgi veya Altbilgi içeriğini ayarlamada yardımcı olur. Küme parantezleri içinde yazılırlar { }:

  • {page} Üstbilgi veya Altbilgide geçerli sayfa numarasını yazdırır
  • {total-pages} Üstbilgi veya Altbilgide toplam sayfa sayısını yazdırır
  • {url} Render edilen sayfanın URL'sini yazdırır
  • {date} Üstbilgi veya Altbilgide geçerli tarihi yazdırır
  • {time} Üstbilgi veya Altbilgide geçerli saati yazdırır
  • {html-title} Üstbilgi veya Altbilgide render edilen web sayfasının başlığını yazdırır
  • {pdf-title} Üstbilgi veya Altbilgide belge başlığını yazdırır

Daha Fazla Bilgi Edinin IronPDF kullanarak üstbilgiler ve altbilgiler üzerinde çalışma hakkında. IronPDF ayrıca daha karmaşık tasarımlar için HTML üstbilgi ve altbilgilerini destekler.

Örnek bu kullanım durumunu uygulamak ve yukarıdaki özelliklerin nasıl kullanılacağını göstermek için şu örneği göstermektedir:

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 kodla oluşturulan yeni PDF dosyası sample.pdf'nin ekran görüntüsü:

'Sayfa Başlığı' ve tarih/saat gösteren özel üstbilgiye sahip PDF belgesi, IronPDF'in üstbilgi ve altbilgi yeteneklerini sergilemektedir

IronPDF kullanarak üstbilgiler ve altbilgilerle çalışmak, PDF dosyaları oluştururken sezgisel bir dile dayanır. Şimdi, PrizmDoc Viewer'ın Üstbilgiler ve Altbilgilerle nasıl başa çıktığını gösteren bir örnek.

PrizmDoc Viewer PDF Üstbilgileri ve Altbilgileri Nasıl Yönetir?

PrizmDoc Viewer, Üstbilgiler ve Altbilgilerle ilgilenmek için aşağıdaki özelliklere sahip HeaderFooterOptions sınıfını sağlar:

  • Satirlar, Baslik ve Altbilgi icin satir(lar)i belirtir, her satir asagidaki özelliklere sahiptir:
  • Sol Baslik veya Altbilgi satirinin sol tarafina metin basar
  • Orta Baslik veya Altbilgi satirinin ortasina metin basar
  • Sag Baslik veya Altbilgi satirinin sag tarafina metin basar
  • Baslik veya Altbilgi metninin yazi tipini belirtmek icin FontFamily
  • Baslik veya Altbilgi metninin yazi tipi boyutunu belirtmek icin FontSize
  • Baslik veya Altbilgi metninin rengini belirtmek icin Renk

Daha Fazla Oku PrizmDoc sunucusunu kullanarak PDF sayfalarinin Baslik ve Altbilgilerini ayarlama hakkinda.

Örnek, yukaridaki özellikleri kullanarak kullanim durumunu nasıl uygulayacaginizi 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ı:

Yukaridaki kod tarafindan oluşturulan yeni PDF dosyasinin ekran görüntüsu:

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

Hangi Kutuphane Basliklar ve Altbilgiler icin Daha Fazla Esneklik Saglar?

IronPDF, PrizmDoc Viewer'e kiyasla Baslik ve Altbilgi özelliklerini ayarlamak icin daha basit bir programlama yapisiyla daha fazla islev sunar. IronPDF tarafindan oluşturulan PDF dosyasi, PrizmDoc Viewer tarafindan uretilen dosyadan daha okunabilir ve cekici. IronPDF ayrica geliştirilmis doküman kontrolu icin sayfa numaralari ve sayfa sonlandirmalari destekler.


IronPDF vs PrizmDoc Viewer Kullanarak PDF Sayfalarini Nasıl Görüntülere Dönüştürurum?

Bu karsilastirma icin, iki sayfali Sample_PDF.pdf adinda basit bir PDF dosyanizin oldugunu varsayalim.

Sayfa1 Sayfa2
PDF görüntüleyici, Lorem ipsum metni ve standart görüntüleyici kontrolleriyle bir örnek PDF'in 1. sayfasini gösteriyor
PDF görüntüleyici, Lorem ipsum metni ve gezinme kontrolleriyle bir örnek PDF'in 2. sayfasini gösteriyor

Gorev, her sayfanin bir görüntüsunu oluşturmaktir. Oncelikle, bu işlem IronPDF kullanilarak nasıl yapilacagina goz atilacak.

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

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 ayrica görüntülerin bellek akisina kaydedilmesini ve JPEG, TIFF ve daha fazlasini iceren farkli görüntü formatlarini destekler.

Çıktı:

Yukaridaki kod, asagidaki iki .png görüntüsunu oluşturur:

Sayfa1 Görüntüsu Sayfa2 Görüntüsu
PDF sayfa 1'den uretilen PNG görüntüsu, Virtual Mechanics ders icerigini acik metin rendering ile gösteriyor
PDF sayfa 2'den uretilen PNG görüntüsu, IronPDF'in rasterizasyon kalitesiyle devam eden metin icerigini gösteriyor

IronPDF kullanarak PDF sayfalarinin görüntülerini oluşturmak basittir. Şimdi, aynı görevi PrizmDoc Viewer kullanarak gerçekleştirelim.

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

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ı:

Yukaridaki kod ayrica asagidaki iki .png görüntüsunu oluşturur:

Sayfa1 Sayfa2
PrizmDoc'un dönüştürme hizmetini kullanan örnek metin icerigi ile PDF sayfa 1'den uretilen PNG görüntüsu
PrizmDoc'un görüntü donusum cikis kalitesini gösterern PDF sayfa 2'den uretilen PNG görüntüsu

Hangi Kutuphane PDF'ten Görüntüye Donustumeyi Daha Kolay Hale Getiriyor?

PrizmDoc Viewer ile karsilastirildiginda, IronPDF geliştiricilerin, sayfalar boyunca dolasmadan, en az kod satiri ile her sayfanin görüntülerini kolayca oluşturmalarina olanak tanir.


IronPDF ile Bootstrap 5 Veri Tablolarini Kullanabilir miyim?

IronPDF'in Chrome V8 rendering motoru, geliştiricilerin karmasik tablo duzenleriyle profesyonel PDF raporlari uretmelerini saglayan Bootstrap 5 veri tablolarina harika destek saglar. Bu örnek, IronPDF'in PrizmDoc gibi geleneksel PDF görüntüleyicilerine karsi avantajini vurgulayan degrade basliklar, durum rozeti, sayfalama kontrolleri ve ozet metrikleri gösteriyor. IronPDF, modern CSS özelliklerini flexbox layout'lar, gradyanlar ve duyarlı tasarim da dahil olmak üzere tam destekler.

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 As 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, degrade basliklar, duyarlı tablolar, durum rozetleri ve ozet metrikler ile gelişmiş bir veri tablosu raporu oluşturur. IronPDF'in Chrome rendering motoru tüm Bootstrap stilizi korur, icinde tablo hover etkileri, rozet renkleri ve sayfa numaralandirma kontrolleri dahil olmak üzere - bu, geleneksel PDF görüntüleyicilerin otesine gecen yeteneklerdir. Motor ayrica dinamik içerik, ozel yazi tipleri, ve UTF-8 uluslararasi karakterler icin JavaScript rendering destekler.

PrizmDoc Viewer'e Karsı Temel Avantajlar:

Bootstrap PDF oluşturma hakkinda daha fazla detay icin tam rendering dokümantasyonuna bakiniz. Geliştiriciler ayrica Angular'i PDF'e dönüştürme ve diğer JavaScript framework destegi inceleyebilir.## IronPDF ve PrizmDoc Viewer arasinda Lisans Maliyetleri Nasıl Karsilastirilır?

Her iki bileşenin teknik yapisini ve mevcut fonksiyonlarini gozden geçirdikten sonra, aşağıda lisans fiyatlandirmasi belirtilmiştir. Bu çok onemlidir cunku geliştiriciler butce kısıtlamaları içindeki gereksinimleri karsilamak ister.

IronPDF'in Lisans Seçenekleri Nelerdir?

IronPDF lisanslari, tek bir proje ve bir geliştirici icin $699 'dan başlar. IronPDF esnek lisanslama seçenekleri sunar, geliştirme lisanslari, dağıtim lisanslari ve surekli destek ve güncellemeler icin uzantı seçenekleri dahil.

Coklu musteriye hizmet veren şirketlerde veya ajanslarda geliştiriciler icin lisanslar $ 699'dan başlar ve ekip boyutu ve proje sayısına gore ayarlanabilir. IronPDF, ihtiyaçlar arttikca lisan yukseltme yollari sunar.

Asagida belirtilen lisanslar bir kereye mahsus odeme gerektirir:

Geliştirici Sayisi Fiyat
1-5 $699
6-10 $799
11-20 $899
21-50 $1,199
Sınırsız $1,199
  • Coklu lokasyonlu şirketlerde lisanslar $1199 'dan başlar
  • SaaS hizmetleri icin lisanslar $1099 'dan başlar
  • Telif ücretsiz OEM yeniden dağıtim icin lisanslar $1599 'dan başlar

Not: Yukaridaki tüm lisans paketleri 1 Yillik destek ve güncellemeleri icerir.

Daha Fazla Oku IronPDF'in mevcut tüm lisans paketleri hakkinda. Geliştiriciler ayrica lisans anahtarlarini Web.config ve ortam degiskenleri dahil olmak üzere çeşitli yöntemlerle uygulayabilir.

PrizmDoc Viewer'in lisans seçenekleri nelerdir?

What Is the Cost of Self-Hosted PrizmDoc?

Kendi yonetilen sunucular icin lisans fiyati, standart destekle yillik olarak $7,900 'dur.

Daha Fazla Oku PrizmDoc Viewer'in mevcut tüm paketleri hakkinda.

How Much Does Cloud-Based PrizmDoc Cost?

Bu lisans, PrizmDoc Viewer'in bulut tabanli hizmetlerini, işlem sayisina dayali olarak olcekli bir sekilde kapsar.

Terimler:

Transaction, PrizmDoc Viewer sunucusuna bir istek göndermeyi ve cikis belgesini (sonuc) almayi ifade eder.

Onceden Odenmis Coklar, bir kere odeme yaparak sona ermeyen işlemler almayi ifade eder.

İşlem Sayisi Onceden Odenmis Coklar Aylık Yıllık
200 $18
1.000 $89
2.000 $119
6.000 $254 $169 $1,859 (6.000 İşlemler/Ay)
12.000 $434 $289 $3,179 (12.000 İşlemler/Ay)
25.000 $699 $499 $5,459 (25.000 İşlemler/Ay)
50.000 $1,199 $799 $8,789 (50.000 İşlemler/Ay)
100.000 $1,199 $1,199 $10,989 (100.000 İşlemler/Ay)
200.000 $2,549 $1,699 $19,188 (200.000 İşlemler/Ay)
300.000 $3,299 $2,199 $25,188 (300.000 İşlemler/Ay)
400.000 $4,049 $2,699 $31.188 (400.000 İşlem/Ay)
500.000 $4,799 $3,199 $37.188 (500.000 İşlem/Ay)

Eğitim Hızlı Erişim

Html To Pdf Icon related to Eğitim Hızlı Erişim

C# IronPDF Hızlı Başlangıç Kılavuzunu edinin

C# ve VB.NET projelerinizde PDF dosyalarının oluşturulması, düzenlenmesi, işlenmesi ve kaydedilmesi için basit adımlarla .NET için PDF geliştirme işlemlerini kolaylaştıran ücretsiz bir PDF kaynak rehberi.

Rehberi İndir

IronPDF API Referansını Keşfedin

IronPDF C# Kütüphanesinin tüm özelliklerinin, sınıfların, metod alanlarının, ad alanlarının ve enumlarının detaylarını içeren API Referansını Keşfedin.

API Referansını Görüntüleyin
Documentation related to Eğitim Hızlı Erişim

Lütfen dikkate alinAccusoft'un PrizmDoc Görüntüleyicisi, ilgili sahibinin tescilli markasıdır. Bu site, Accusoft'un PrizmDoc Görüntüleyicisi ile ilişkili, onaylanmış veya desteklenmiş değildir. Tüm ürün adları, logolar ve markalar kendi sahiplerinin mülkiyetindedir. Karşılaştırmalar yalnızca bilgilendirme amaçlıdır ve yazım sırasında kamuya açık bilgileri yansıtır.

Sıkça Sorulan Sorular

HTML'yi C#'de PDF'ye nasıl dönüştürebilirim?

HTML dizgilerini PDF'lere dönüştürmek için IronPDF'nin RenderHtmlAsPdf yöntemini kullanabilirsiniz. Ayrıca RenderHtmlFileAsPdf kullanarak HTML dosyalarının PDF'lere dönüştürülmesini de sağlayabilirsiniz.

PDF dönüştürme için IronPDF kullanmanın PrizmDoc Görüntüleyiciye göre avantajları nelerdir?

IronPDF, offline çalışmaya ihtiyaç duymayan, çevrimdışı çalışmayı destekleyen basit bir yerel PDF işleme çözümü sunar. Aksine, PrizmDoc Görüntüleyici, REST API aracılığıyla çalışır, uzaktaki sunucu etkileşimi için internet bağlantısı gerektirir.

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

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

IronPDF, PDF’den görüntü dönüştürmesini nasıl ele alır?

IronPDF, PDF sayfalarını kolayca görüntülere dönüştürebilmeniz için yerleşik yöntemlerini kullanarak diğer yazılımlarla karşılaştırıldığında daha akıcı bir yaklaşım sunar.

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

IronPDF, belgelerinizi kolayca özelleştirmek için, basit bir programlama yapısı ile başlık ve altbilgi ayarları belirlemenizi sağlayan kapsamlı işlevler sunar.

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

Evet, IronPDF, uzaktaki sunucu etkileşimi gerektiren bazı diğer çözümlerden farklı olarak, internet bağlantısına ihtiyaç duymadan çalışmanızı sağlayan çevrimdışı PDF işleme desteği sunar.

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

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

IronPDF ile ücretsiz geliştirme yapabilir miyim?

Evet, IronPDF gelişim için ücretsizdir, hiçbir zaman limiti yoktur ve projenizi hayata geçirecek 30 günlük dağıtım denemesi sunar.

PrizmDoc Viewer, HTML’den PDF’ye dönüştürmeyi nasıl gerçekleştirir?

PrizmDoc Viewer, HTML’den PDF’ye dönüştürme işlemi için, uzaktaki sunucu etkileşimi için internet bağlantısı gerektiren ve asenkron programlama gerektiren bir REST API kullanır.

PrizmDoc Sunucusu barındırma için sistem gereksinimleri nelerdir?

PrizmDoc Sunucusunu kendi başınıza barındırmak için, işlem ihtiyaçları için minimum 32 GB RAM ve 4 Çekirdekli bir CPU gereklidir.

IronPDF, .NET 10 ile tamamen uyumlu mu?

Evet. IronPDF, .NET 10'u (aynı zamanda .NET 9, 8, 7, 6, .NET Core, .NET Standard, ve .NET Framework) destekler. NuGet aracılığıyla yüklenir, Windows, Linux ve macOS’ta çalışır ve .NET 10 uygulamalarında piksel mükemmel HTML’den PDF’ye dönüşüm sunan yerel Chrome tabanlı işleyicisini kullanır.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku

Iron Destek Ekibi

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