IRONSOFTWAREHOME
NARZĘDZIA PDF

IronPDF vs Accusoft PDF Viewer: Która biblioteka C# jest najlepsza do HTML do PDF?

Curtis Chau
Curtis Chau
Updated: 19 lipca 2026

Zarówno IronPDF, jak i Accusoft PDF Viewer konwertują HTML na PDF w środowisku .NET. IronPDF oferuje przejrzystą składnię, lokalne przetwarzanie bez zależności od chmury i nieograniczone konwersje zaczynające się od $999. W przeciwieństwie do tego, Accusoft wymaga połączenia z Internetem i pobiera opłaty za każdą transakcję.

Porównaj IronPDF z Accusoft PDF Viewer

  • Konwersja HTML do PDF
  • Ustaw nagłówek i stopkę dla plików PDF
  • Konwersja pliku PDF na plik graficzny
  • Porównaj licencje, opcje bezpłatnych wersji próbnych i nie tylko

Przegląd

Czym jest IronPDF i jak działa?

IronPDF to biblioteka C# do konwersji HTML na PDF, która umożliwia programistom tworzenie plików PDF ze źródeł takich jak ciąg znaków HTML, strona internetowa i adres URL. Umożliwia również ustawianie właściwości, takich jak znak wodny, zakładka oraz nagłówek i stopka. Ponadto programiści mogą łączyć wiele plików PDF w jeden lub konwertować strony PDF na obrazy i odwrotnie, korzystając z funkcji konwersji obrazów do formatu PDF.

IronPDF jest bezpłatny do celów programistycznych i oferuje 30-dniowy okres próbny wdrożenia w rzeczywistych projektach. Zawiera kompletną dokumentację, przykłady kodu i Dokumentację API, aby pomóc programistom w szybkim rozpoczęciu pracy.

Programiści mogą pobrać plik projektu z tego linku.

Czym jest Accusoft PrizmDoc Viewer i jak działa?

PrizmDoc Viewer to interfejs API REST, który obsługuje pliki PDF i zdalnie konwertuje je na inne formaty. PrizmDoc potrafi konwertować ponad 100 różnych formatów plików do PDF i PDF do PNG, JPG, TIFF oraz SVG. Oferuje również różne opcje podpisu elektronicznego dla aplikacji.

Jak wypada porównanie IronPDF i PrizmDoc Viewer?

IronPDFPrizmDoc Viewer
Work with PDF files programmatically. Praca z plikami PDF za pomocą kodu.
Supports .NET Core with Windows, Mac, or Linux. Obsługuje .NET Core na systemach Windows, Mac lub Linux.
Works Locally Sends Documents to a remote server.
Work with or without Asynchronous Programming. Należy stosować programowanie asynchroniczne z wykorzystaniem System.Threading.Tasks.
Works offline once installed. Wymagane jest połączenie internetowe do wysyłania żądań do serwera PrizmDoc.
Provides many predefined functions. Zapewnia kilka predefiniowanych funkcji.
Often requires minimal lines of code. Często wymaga wielu wierszy kodu.
Unlimited conversions per project in each license. Ograniczona liczba transakcji w licencjach hostowanych w chmurze.
Free for development without time limits. Ograniczona liczba transakcji w wersji próbnej.

Zainstalujmy obie biblioteki i porównajmy kod.


Krok 1: Instalacja

Jak zainstalować IronPDF w moim projekcie .NET?

Istnieją dwa sposoby instalacji IronPDF w projekcie, przy czym nie ma różnicy między tymi metodami. IronPDF obsługuje różne środowiska, w tym wdrożenia w Azure, AWS Lambda, kontenery Docker oraz aplikacje Blazor.

Jakie są różne sposoby pobrania IronPDF?

Pobierz plik IronPDF.dll i dodaj do niego odwołanie w projekcie. Programiści mogą również użyć instalatora Windows Installer do instalacji w całym systemie. Po tym, przestrzeń nazw IronPDF staje się dostępna za pomocą:

using IronPdf;

Teraz programiści mogą łatwo korzystać z funkcji i klas IronPDF, w tym z ChromePdfRenderer do renderowania, edycji dokumentów PDF oraz funkcji zabezpieczeń.

Jak zainstalować IronPDF za pomocą menedżera pakietów NuGet?


Jak zainstalować przeglądarkę PrizmDoc Viewer firmy Accusoft?

PrizmDoc Viewer składa się z dwóch części: komponentu po stronie serwera zwanego PrizmDoc Server, który działa jak RESTful API, oraz projektu klienta, który wysyła żądania do API i otrzymuje odpowiedzi. W przeciwieństwie do IronPDF, który działa lokalnie bez zewnętrznych zależności, PrizmDoc wymaga połączenia sieciowego do operacji w chmurze.

Jak uzyskać dostęp do serwera PrizmDoc?

PrizmDoc Server to aplikacja po stronie serwera, która otrzymuje podstawowe informacje z dokumentami jako żądania (wejście) i konwertuje dokumenty na pliki PDF, a następnie wysyła przekształcone pliki PDF jako odpowiedzi (wyjście). Stanowi on techniczne serce produktu — silnik przetwarzania i konwersji dokumentów. Programiści mogą z niego korzystać na dwa różne sposoby, przy czym oba mają tę samą strukturę programistyczną i wykorzystują te same techniki:

  1. Hostowane samodzielnie:

Ta opcja wymaga zorganizowania serwera. Pobierz PrizmDoc Server, a następnie zainstaluj go. Przeczytaj więcej o tym, jak zainstalować PrizmDoc Server na Windows.

Uwaga: Serwer PrizmDoc, hostowany samodzielnie, wymaga znacznej ilości pamięci i zasobów przetwarzania — zapoznaj się z przewodnikiem Accusoft dotyczącym wymagań dla aktualnych wymagań. Natomiast wymagania systemowe IronPDF są znacznie skromniejsze.

  1. Hostowane w chmurze:

Ta usługa oparta na chmurze eliminuje konieczność organizowania serwera. Aby skorzystać z tej opcji, utwórz konto i skopiuj API key z menu API Key na stronie głównej.

Najpierw przyjrzyjmy się podstawowej strukturze pracy z PrizmDoc Viewer do konwersji dokumentów na pliki PDF poprzez bezpośrednią interakcję z Accusoft server za pomocą WebClient() w aplikacji konsoli C#.

Uwaga: Następujący przykład pokazuje, jak PrizmDoc obsługuje pliki PDF koncepcyjnie. Tekst jest długi, więc możesz pominąć ten przykład i przejść bezpośrednio do porównania.

Jak działa struktura organizacyjna firmy Accusoft?

Ten przykład konwertuje myWebpage.html na sample.pdf. W przeciwieństwie do przejrzystej konwersji HTML na PDF w IronPDF, PrizmDoc wymaga wielu wywołań API.

Uwaga: Biblioteka Newtonsoft.Json musi być zainstalowana i odwołana w projekcie.

Najpierw dodaj do projektu następujące biblioteki:

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

Następnie utwórz zmienną publiczną Accusoft API Key i wklej klucz API w niej:

static string ApiKey = "Your-API-KEY";

Istnieją 3 kroki do obsługi plików PDF za pomocą PrizmDoc Viewer:

  1. Prześlij plik na serwer PrizmDoc.
  2. Przekonwertuj przesłany plik.
  3. Pobierz przekonwertowany plik z serwera PrizmDoc.

Każdy krok obsługiwany jest przez oddzielną funkcję:

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();
}

1. Prześlij plik na serwer:

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);
        }
    }
}

2. Przekonwertuj przesłany plik do formatu PDF:

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);
    }
}

Poniższy JSON to wynikowa wartość obiektu myJson:

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

Sprawdź, czy konwersja została zakończona

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);
    }
}

3. Pobierz przekonwertowany plik z serwera

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);
        }
    }
}

Powyższy przykład wymaga znacznego nakładu pracy. Aby zminimalizować obciążenie, Accusoft wprowadził bibliotekę .NET nazwaną Accusoft.PrizmDocServerSDK, będącą obudową wokół REST API PrizmDoc Server. Przyjrzyjmy się, jak zainstalować i używać tej biblioteki w projektach .NET.

Jak zainstalować Accusoft.PrizmDocServerSDK?

Istnieją dwa sposoby instalacji opakowania.

  • Konsola menedżera pakietów:

    Jeśli korzystasz z konsoli menedżera pakietów, uruchom następujące polecenie:

    CODEBLOCK_10

  • Zarządzanie pakietami dla rozwiązania:

Jeśli używasz interfejsu graficznego menedżera pakietów NuGet, wyszukaj Accusoft.PrizmDocServerSDK w pasku wyszukiwania i zainstaluj.

Teraz deweloperzy mogą łatwo uzyskać dostęp do przestrzeni nazw Accusoft.PrizmDocServer i z niej korzystać:

using Accusoft.PrizmDocServer;

Poradniki "Jak to zrobić"

Jak porównują się IronPDF i PrizmDoc Viewer w przykładach kodu?

Po zapoznaniu się z wprowadzeniem i instalacją obu komponentów nadszedł czas, aby rozpocząć pracę z nimi. Poniższe przypadki użycia demonstrują implementację przy użyciu obu komponentów, aby pomóc zrozumieć struktury programowania i określić, który odpowiada wymaganiom projektu.


Jak przekonwertować HTML na PDF używając IronPDF vs PrizmDoc Viewer?

Do tego porównania skonwertujmy stronę www nazwaną myWebPage.html na plik PDF i zapiszmy ją w docelowej lokalizacji. Silnik renderujący IronPDF dla przeglądarki Chrome zapewnia konwersję z idealną dokładnością pikselową oraz pełną obsługę CSS, JavaScript i czcionek internetowych.

W jaki sposób IronPDF konwertuje HTML na 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");
}

Powyższy kod tworzy plik sample.pdf i zapisuje go w folderze bin>debug projektu. IronPDF obsługuje również ciągi znaków HTML, adresy URL, a nawet pliki ZIP zawierające HTML jako źródła danych wejściowych.

Deweloperzy mogą również wskazać dowolną ścieżkę jak ta: PDF.SaveAs("E:/sample.pdf"); lub zapisać do strumienia pamięci dla wdrożeń w chmurze.

Dowiedz się więcej o pracy z IronPDF w zakresie obsługi plików PDF.

Teraz wykonajmy to samo zadanie przy użyciu PrizmDoc Viewer dla porównania.

Jak PrizmDoc Viewer konwertuje HTML na PDF?

W sekcji instalacji PrizmDoc Viewer omawiano uzyskanie Accusoft API Key. Oto jak z niego korzystać.

Najpierw wyślij żądanie do serwera PrizmDoc i odbierz odpowiedź. Proces ten wymaga czasu i programowania asynchronicznego. IronPDF obsługuje również metody asynchroniczne w celu poprawy wydajności.

Uwaga: Upewnij się, że system jest połączony z Internetem podczas tworzenia plików PDF za pomocą usług w chmurze PrizmDoc Viewer.

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");
}

Przeczytaj więcej o pracy z PrizmDoc Viewer.

Która biblioteka zapewnia prostszą konwersję HTML do PDF?

Te przykłady pokazują, że IronPDF oferuje prostsze podejście do tworzenia plików PDF i wymaga mniej czasu. IronPDF zapewnia również opcje renderowania umożliwiające precyzyjne dostosowanie wyniku, w tym niestandardowe rozmiary papieru, marginesy i ustawienia okna wyświetlania.


Jak przekonwertować obrazy na PDF używając IronPDF vs PrizmDoc Viewer?

To porównanie pokazuje, jak stworzyć plik PDF z obrazu znajdującego się w folderze debug projektu. Programiści zaczynają od IronPDF.

W jaki sposób IronPDF konwertuje obrazy do formatu 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");
}

IronPDF obsługuje również konwersję plików TIFF z wieloma ramkami, osadzanie obrazów z usługi Azure Blob Storage oraz osadzanie obrazów w formacie Base64.

Wynik:

Ten zrzut ekranu pokazuje nowo utworzony plik PDF sample.pdf używając powyższego kodu:

Dokument PDF przedstawiający logo Google wyśrodkowane na białym tle, demonstrujący możliwość konwersji obrazu do formatu PDF przez IronPDF

Tworzenie pliku PDF z obrazu za pomocą IronPDF jest proste. Teraz wykonajmy to samo zadanie przy użyciu PrizmDoc Viewer i zbadajmy jego wygenerowany plik PDF.

Jak PrizmDoc Viewer konwertuje obrazy na 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");
}

Wynik: Ten zrzut ekranu pokazuje nowo utworzony plik PDF sample.pdf z powyższego kodu:

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

Która biblioteka wymaga mniej kodu do konwersji obrazu do formatu PDF?

IronPDF wymaga tylko dwóch wierszy kodu. W przeciwieństwie do tego, używając serwera PrizmDoc jest więcej linii kodu z programowaniem asynchronicznym. Wynik działania IronPDF automatycznie zapewnia również gotowy do użycia dokument na całej stronie. IronPDF oferuje dodatkowe opcje pozycjonowania obrazów i konwersji wielu obrazów.


Jak scalac wiele plików PDF uzywajac IronPDF vs PrizmDoc Viewer?

Do tego porównania zakłada się istnienie trzech plików PDF nazwanych A.pdf, B.pdf i C.pdf. Zadaniem jest połączenie ich w jeden plik PDF. Oba komponenty mogą wykonać to zadanie. Najpierw przykład pokazuje, jak to zrobić przy użyciu IronPDF.

W jaki sposób IronPDF łączy pliki PDF?

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();
    }
}

Powyższy kod tworzy plik sample.pdf, który łączy A.pdf, B.pdf i C.pdf. IronPDF obsługuje również dodawanie i kopiowanie stron między plikami PDF oraz dzielenie plików PDF.

Teraz wykonajmy to samo zadanie przy użyciu PrizmDoc Viewer.

Jak PrizmDoc Viewer scala pliki 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");
}

Powyższy kod również tworzy plik sample.pdf, który łączy pliki A.pdf, B.pdf i C.pdf.


Jak dodac naglowki i stopki do PDF-ow uzywajac IronPDF vs PrizmDoc Viewer?

Do tego porównania zakłada się istnienie prostego WebPage nazwanego myWebPage.html z następującymi HTML i CSS:

<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

Celem jest przekonwertowanie tego WebPage na plik PDF z następującymi właściwościami nagłówka i stopki:

  • Page Title po lewej stronie nagłówka
  • DateTime po prawej stronie nagłówka
  • Page Number of Total Pages po prawej stronie stopki

Najpierw przyjrzyjmy się, jak IronPDF obsługuje nagłówki i stopki.

Jak IronPDF obsługuje nagłówki i stopki w plikach PDF?

Aby obsłużyć nagłówki i stopki plików PDF, IronPDF oferuje właściwość w klasie ChromePdfRenderer nazwaną RenderingOptions, która może być używana w następujący sposób:

  • Dla nagłówka:

    CODEBLOCK_19

  • W stopce:

    CODEBLOCK_20

Następujące właściwości można ustawić przy inicjalizacji TextHeaderFooter():

  • CenterText, aby wydrukować tekst na środku nagłówka lub stopki
  • LeftText, aby wydrukować tekst po lewej stronie nagłówka lub stopki
  • RightText, aby wydrukować tekst po prawej stronie nagłówka lub stopki
  • DrawDividerLine, rysuje linię oddzielającą treść strony od nagłówka lub stopki
  • FontFamily, aby określić rodzinę czcionek nagłówka lub stopki
  • FontSize do określenia rozmiaru czcionki nagłówka lub stopki
  • Spacing dostosowuje odstęp między zawartością strony a nagłówkiem lub stopką

Następujące predefiniowane atrybuty pomagają ustawić zawartość nagłówka lub stopki. Są napisane w nawiasach klamrowych { }:

  • {page} drukuje bieżący numer strony w nagłówku lub stopce
  • {total-pages} drukuje całkowitą liczbę stron w nagłówku lub stopce
  • {url} drukuje adres URL renderowanej strony
  • {date} drukuje bieżącą datę w nagłówku lub stopce
  • {time} drukuje aktualny czas w nagłówku lub stopce
  • {html-title} drukuje tytuł renderowanej strony internetowej w nagłówku lub stopce
  • {pdf-title} drukuje tytuł dokumentu w nagłówku lub stopce

Czytaj więcej w szczegółach na temat pracy z nagłówkami i stopkami przy użyciu IronPDF. IronPDF obsługuje również nagłówki i stopki HTML dla bardziej złożonych projektów.

Poniższy przykład implementuje przypadek użycia i demonstruje, jak korzystać z powyższych właściwości:

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");
}

Wynik: Zrzut ekranu nowo utworzonego pliku PDF sample.pdf przez powyższy kod:

Dokument PDF z niestandardowym nagłówkiem pokazującym "Tytuł strony" i datę/godzinę, demonstrujący możliwości IronPDF w zakresie nagłówka i stopki

Praca z nagłówkami i stopkami przy użyciu IronPDF wymaga intuicyjnego języka podczas tworzenia plików PDF. Teraz przykład pokazuje, jak PrizmDoc Viewer obsługuje nagłówki i stopki.

Jak PrizmDoc Viewer obsługuje nagłówki i stopki PDF?

PrizmDoc Viewer udostępnia klasę HeaderFooterOptions do obsługi nagłówków i stopek, z następującymi właściwościami:

  • Linie określają linie dla nagłówka i stopki, gdzie każda linia ma następujące właściwości:
  • Left drukuje tekst po lewej stronie linii nagłówka lub stopki
    • Center drukuje tekst na środku linii nagłówka lub stopki
    • Right drukuje tekst po prawej stronie linii nagłówka lub stopki
  • FontFamily do określenia rodziny czcionek tekstu nagłówka lub stopki
  • FontSize do określenia rozmiaru czcionki tekstu nagłówka lub stopki
  • Color, aby określić kolor tekstu nagłówka lub stopki

Czytaj więcej na temat ustawiania nagłówków i stopek stron PDF używając serwera PrizmDoc.

Przykład pokazuje, jak zaimplementować przypadek użycia przy użyciu powyższych właściwości:

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");
}

Wynik:

Zrzut ekranu nowo utworzonego pliku PDF za pomocą powyższego kodu:

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

Która biblioteka oferuje większą elastyczność dla nagłówków i stopek?

IronPDF dostarcza więcej funkcji do ustawiania właściwości nagłówka i stopki w prostszej strukturze programistycznej niż PrizmDoc Viewer. Plik PDF wygenerowany przez IronPDF jest również bardziej czytelny i atrakcyjny niż plik wygenerowany przez PrizmDoc Viewer. IronPDF obsługuje również numery stron i podziały stron dla lepszej kontroli nad dokumentem.


W jaki sposób konwertuję strony PDF na obrazy przy użyciu IronPDF w porównaniu do PrizmDoc Viewer?

Dla tego porównania załóżmy, że masz prosty plik PDF nazwany Sample_PDF.pdf z dwoma stronami.

Strona 1Strona 2
Przeglądarka PDF pokazująca stronę 1 przykładowego pliku PDF z tekstem Lorem ipsum i standardowymi kontrolkami przeglądarki
Przeglądarka PDF pokazująca stronę 2 przykładowego pliku PDF z tekstem Lorem ipsum i kontrolkami nawigacyjnymi

Zadanie polega na stworzeniu obrazu każdej strony. W pierwszym przykładzie zobaczymy, jak wykonać to przy użyciu IronPDF.

Jak IronPDF konwertuje strony PDF na obrazy?

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");
}

IronPDF obsługuje również zapisywanie obrazów do strumienia pamięci i różne formaty obrazów, w tym JPEG, TIFF i inne.

Wynik:

Powyższy kod tworzy następujące dwa obrazy .png:

Strona 1 ObrazStrona 2 Obraz
Obraz PNG wygenerowany ze strony 1 PDF przedstawiający zawartość samouczka Virtual Mechanics z wyraźnym renderowaniem tekstu
Obraz PNG wygenerowany ze strony 2 PDF pokazujący ciągłą zawartość tekstową z jakością rasteryzacji IronPDF

Tworzenie obrazów stron PDF za pomocą IronPDF jest proste. Teraz wykonajmy to samo zadanie przy użyciu PrizmDoc Viewer.

Jak PrizmDoc Viewer konwertuje strony PDF na obrazy?

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");
    }
}

Wynik:

Powyższy kod tworzy również następujące dwa obrazy .png:

Strona 1Strona 2
Obraz PNG wygenerowany z strony PDF 1 przy użyciu usługi konwersji PrizmDoc z przykładową treścią tekstową
Obraz PNG wygenerowany ze strony PDF 2 pokazujący jakość wyjściową konwersji obrazów PrizmDoc

Która biblioteka ułatwia konwersję plików PDF do obrazów?

W porównaniu z PrizmDoc Viewer, IronPDF pozwala programistom łatwo tworzyć obrazy każdej strony z minimalną ilością kodu, nawet bez iterowania przez strony.


Czy mogę używać tabel danych Bootstrap 5 z IronPDF?

Silnik renderujący IronPDF Chrome V8 zapewnia doskonałe wsparcie dla Bootstrap 5 data tables, umożliwiając programistom generowanie profesjonalnych raportów PDF ze złożonymi układami tabelarycznymi. Ten przykład pokazuje gradientowe nagłówki, odznaki statusu, kontrolki paginacji i metryki podsumowujące - funkcje, które podkreślają przewagę IronPDF nad tradycyjnymi przeglądarkami PDF jak PrizmDoc. IronPDF w pełni obsługuje nowoczesne funkcje CSS, w tym układy flexbox, gradienty i responsywny design.

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");

Ten kod generuje zaawansowany raport tabeli danych z gradientowymi nagłówkami, responsywnymi tabelami, plakietkami stanu i podsumowaniem metryk. Silnik renderujący IronPDF w Chrome zachowuje wszystkie stylizacje Bootstrap, w tym efekty najechania kursorem na tabelę, kolory plakietek i elementy sterujące paginacją - możliwości, które wykraczają poza tradycyjne przeglądarki PDF. Silnik obsługuje również renderowanie JavaScript dla dynamicznej zawartości, niestandardowe czcionki oraz znaki międzynarodowe UTF-8.

Kluczowe zalety w porównaniu do PrizmDoc Viewer:

Aby uzyskać więcej informacji na temat generowania PDF w Bootstrap, zobacz pełną dokumentację renderowania. Programiści mogą również eksplorować konwersję Angular do PDF oraz inne obsługi frameworków JavaScript.## Jak porównują się koszty licencji IronPDF i PrizmDoc Viewer?

Po zapoznaniu się ze strukturą techniczną i dostępnymi funkcjami obu komponentów, poniżej przedstawiono ceny licencji. Ma to kluczowe znaczenie, ponieważ programiści dążą do spełnienia wymagań w ramach ograniczeń budżetowych.

Jakie są opcje licencyjne IronPDF?

Licencje IronPDF zaczynają się od $999 dla jednego programisty. IronPDF zapewnia elastyczne opcje licencjonowania, w tym licencje deweloperskie, licencje wdrożeniowe oraz opcje rozszerzeń dla bieżącego wsparcia i aktualizacji.

Dla deweloperów w firmach lub agencjach obsługujących wielu klientów, IronPDF oferuje licencjonowanie szczeblowe, które można dostosować w zależności od wielkości zespołu i liczby projektów. IronPDF oferuje ścieżki aktualizacji licencji w miarę rozwoju potrzeb.

Wszystkie pakiety licencyjne IronPDF zawierają 1 rok wsparcia i aktualizacji. Czytaj więcej o dostępnych pakietach licencyjnych, poziomach i cenach. Programiści mogą również zastosować klucze licencyjne na różne sposoby, w tym Web.config i zmienne środowiskowe.

Jakie są opcje licencyjne PrizmDoc Viewer?

Jaki jest koszt samodzielnego hostowania PrizmDoc?

Samodzielny serwer PrizmDoc jest dostępny na podstawie licencji rocznej. Skontaktuj się z Accusoft w celu uzyskania aktualnych cen i dostępnych pakietów dla PrizmDoc Viewer.

Ile kosztuje oparty na chmurze PrizmDoc?

Ta licencja obejmuje usługi w chmurze PrizmDoc Viewer, skalowane w oparciu o liczbę transakcji.

Terminologies:

Transaction odnosi się do wysłania zapytania do serwera PrizmDoc Viewer i otrzymania wyjścia (wynikowego dokumentu).

Prepaid Buckets oznacza jednokrotną płatność i otrzymanie transakcji, które nie wygasają.

Ceny w chmurze zależą od użycia i skalują się wraz z wolumenem transakcji. Skontaktuj się z Accusoft w celu uzyskania aktualnych poziomów cen i stawek w chmurze.


Szybki dostęp do samouczka

Pobierz podręcznik szybkiego startu C# IronPDF

Bezpłatny przewodnik w formacie PDF, który ułatwia tworzenie plików PDF dla platformy .NET, zawierający instrukcje dotyczące typowych funkcji oraz przykłady manipulowania, edytowania, generowania i zapisywania plików PDF w językach C# i VB.NET na potrzeby projektów.

Pobierz przewodnik

Zapoznaj się z dokumentacją API IronPDF

Zapoznaj się z dokumentacją API biblioteki IronPDF C#, zawierającą szczegółowe informacje na temat wszystkich funkcji, klas, pól metod, przestrzeni nazw i wyliczeń IronPDF.

Zobacz Dokumentację API
Zwróć uwagę: PrizmDoc Viewer firmy Accusoft to zarejestrowany znak towarowy jego prawowitego właściciela. Ta strona nie jest powiązana z, zatwierdzona przez ani sponsorowana przez PrizmDoc Viewer firmy Accusoft. Wszystkie nazwy produktów, logo i marki są własnością ich odpowiednich właścicieli. Porównania mają charakter wyłącznie informacyjny i odzwierciedlają informacje dostępne publicznie w momencie pisania.
Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta