IronPDF vs Accusoft PDF Viewer: Welche C#-Bibliothek ist am besten für HTML zu PDF?
IronPDF und Accusoft PDF Viewer konvertieren beide HTML in PDF in .NET. IronPDF bietet eine unkomplizierte Syntax, lokale Verarbeitung ohne Cloud-Abhängigkeiten und unbegrenzte Konvertierungen ab 699 US-Dollar. Im Gegensatz dazu benötigt Accusoft eine Internetverbindung und berechnet Gebühren pro Transaktion.
Überblick
Was ist IronPDF und wie funktioniert es?
IronPDF ist eine C#-Bibliothek zur Umwandlung von HTML in PDF , die es Entwicklern ermöglicht, PDF-Dateien aus Quellen wie HTML-Strings , Webseiten und URLs zu erstellen. Außerdem ermöglicht es das Festlegen von Eigenschaften wie Wasserzeichen , Lesezeichen sowie Kopf- und Fußzeile . Darüber hinaus können Entwickler mithilfe der Bild-zu-PDF-Konvertierung mehrere PDF-Dateien zu einer einzigen zusammenführen oder PDF-Seiten in Bilder umwandeln und umgekehrt.
IronPDF ist für die Entwicklung kostenlos und bietet eine 30-tägige Testphase für den Einsatz in Live-Projekten. Es bietet eine vollständige Dokumentation , Codebeispiele und eine API-Referenz , um Entwicklern den Einstieg zu erleichtern.
Developers can download a file project from this link.
What Is Accusoft PrizmDoc Viewer and How Does It Work?
PrizmDoc Viewer ist eine REST-API, die mit PDF-Dateien arbeitet und diese remote in andere Formate konvertiert. PrizmDoc kann über 100 verschiedene Dateiformate in PDF und PDF in PNG, JPG , TIFF und SVG konvertieren. Es bietet außerdem verschiedene Optionen für elektronische Signaturen in Anwendungen.
How Do IronPDF and PrizmDoc Viewer Compare?
| IronPDF | `PrizmDoc` Viewer |
|---|---|
| Work with [PDF files programmatically](/how-to/csharp-parse-pdf/). | Programmatisch mit PDF-Dateien arbeiten. |
| Supports [.NET Core](/docs/) with [Windows](/get-started/windows/), [Mac](/get-started/macos/), or [Linux](/get-started/linux/). | Unterstützt .NET Core unter Windows, Mac oder Linux. |
| [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/). | Bietet einige vordefinierte Funktionen. |
| Often requires [minimal lines of code](/tutorials/html-to-pdf/). | Erfordert oft viele Codezeilen. |
| [Unbegrenzt conversions](/licensing/) per project in each license. | Begrenzte Transaktionen bei Cloud-basierten Lizenzen. |
| [Free for development](/get-started/quickstart/) without time limits. | Nur 300 Transaktionen mit Testversion. |
Installieren wir beide Bibliotheken und vergleichen wir den Code.
Schritt 1: Installation
Wie installiere ich IronPDF in meinem .NET-Projekt?
Es gibt zwei Möglichkeiten, IronPDF in einem Projekt zu installieren , wobei es keinen Unterschied zwischen den beiden Vorgehensweisen gibt. IronPDF unterstützt verschiedene Umgebungen, darunter Azure-Bereitstellung , AWS Lambda , Docker-Container und Blazor Anwendungen .
Welche verschiedenen Möglichkeiten gibt es, IronPDF herunterzuladen?
Laden Sie die IronPDF-Datei herunter und fügen Sie deren Verweis zum Projekt hinzu. Entwickler können den Windows Installer auch für eine systemweite Installation verwenden. Anschließend ist der Namespace IronPDF über folgende Wege zugänglich:
using IronPdf;
using IronPdf;
Imports IronPdf
Entwickler können nun problemlos auf die bereitgestellten Funktionen und Klassen von IronPDF zugreifen, einschließlich des ChromePdfRenderers für das Rendern, der PDF-Dokumentmanipulation und der Sicherheitsfunktionen .
Wie installiere ich IronPDF über den NuGet Paketmanager?
-
Paketmanager-Konsole:
Wenn Sie die Paket-Manager-Konsole verwenden, führen Sie folgenden Befehl aus:
_CODEBLOCK1
-
Pakete für die Lösung verwalten:
Wenn Sie die grafische Benutzeroberfläche des NuGet -Paketmanagers verwenden, suchen Sie in der Suchleiste nach IronPDF und installieren Sie es. Erweiterte Installationsoptionen , einschließlich plattformspezifischer Pakete für Linux , macOS oder Windows , finden Sie im Installationshandbuch .
How Do I Install PrizmDoc Viewer from Accusoft?
Der Viewer besteht aus zwei Teilen: der serverseitigen Komponente namens PrizmDoc Server, die sich wie eine RESTful API verhält, und dem Clientprojekt, das Anfragen an die API sendet und Antworten empfängt. Im Gegensatz zu IronPDF , das lokal ohne externe Abhängigkeiten arbeitet, benötigt PrizmDoc eine Netzwerkverbindung für cloudbasierte Operationen.
How Can I Access the PrizmDoc Server?
PrizmDoc Der Server ist eine serverseitige Anwendung, die grundlegende Informationen in Form von Dokumenten als Anfragen (Eingabe) empfängt, diese in PDF-Dateien umwandelt und die umgewandelten PDF-Dateien anschließend als Antworten (Ausgabe) zurücksendet. Es dient als technisches Herzstück des Produkts – eine Dokumentenverarbeitungs- und Konvertierungs-Engine. Entwickler können es über zwei verschiedene Methoden nutzen, die beide dieselbe Programmierstruktur und dieselben Techniken aufweisen:
-
Selbst-gehostet:
Für diese Option ist die Bereitstellung eines Servers erforderlich. Laden Sie PrizmDoc Server herunter und installieren Sie ihn. Lesen Sie mehr darüber, wie Sie
PrizmDocServer unter Windows installieren.Hinweis: Für eine optimale Leistung werden mindestens 32 GB RAM und ein 4-Kern-Prozessor benötigt. Im Gegensatz dazu sind die Systemanforderungen von IronPDF wesentlich geringer.
-
Cloud-gehostet:
Dieser Cloud-basierte Service macht die Einrichtung eines Servers überflüssig. Um diese Option zu nutzen, erstellen Sie ein Konto und kopieren Sie den Code
API keyaus dem MenüAPI Keyauf der Startseite.
Zunächst wollen wir die grundlegende Struktur für die Arbeit mit dem PrizmDoc Viewer untersuchen, um Dokumente in PDF-Dateien zu konvertieren, indem wir direkt mit Accusoft server über WebClient() in einer C#-Konsolenanwendung interagieren.
Hinweis: Das folgende Beispiel veranschaulicht, wie PrizmDoc PDF-Dateien konzeptionell verarbeitet. Es ist sehr umfangreich, daher können Sie dieses Beispiel getrost überspringen und direkt zum Vergleich übergehen .
Wie ist die Arbeitsstruktur von Accusoft aufgebaut?
Dieses Beispiel wandelt myWebpage.html in sample.pdf um. Im Gegensatz zur unkomplizierten HTML-zu-PDF-Konvertierung von IronPDF erfordert PrizmDoc mehrere API-Aufrufe.
Hinweis: Die Bibliothek Newtonsoft.Json muss installiert und im Projekt referenziert werden.
Fügen Sie zunächst die folgenden Bibliotheken zum Projekt hinzu:
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
Erstellen Sie anschließend eine öffentliche Variable Accusoft API Key und fügen Sie den API-Schlüssel darin ein:
static string ApiKey = "Your-API-KEY";
static string ApiKey = "Your-API-KEY";
Private Shared ApiKey As String = "Your-API-KEY"
Es gibt 3 Schritte, um PDF-Dateien mit dem PrizmDoc Viewer zu bearbeiten:
- Laden Sie eine Datei auf den Server
PrizmDochoch. - Konvertieren Sie die hochgeladene Datei.
- Die konvertierte Datei vom Server
PrizmDocherunterladen.
Für jeden Schritt wird eine separate Funktion ausgeführt:
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
1. Datei auf den Server hochladen:
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
2. Konvertieren Sie die hochgeladene Datei in 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);
}
}
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
Das folgende JSON ist der resultierende Wert des Objekts myJson:
{
"input": {
"sources":
[
{"fileId": "Auto Generated FileId Value"}
],
"dest": {
"format": "pdf"
}
}
}
Prüfen Sie den Status, ob die Konvertierung abgeschlossen ist oder nicht
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
3. Laden Sie die konvertierte Datei vom Server herunter
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
Das obige Beispiel erfordert einen erheblichen Aufwand. Um den Arbeitsaufwand zu minimieren, hat Accusoft eine .NET Bibliothek namens Accusoft.PrizmDocServerSDK eingeführt, einen Wrapper um die PrizmDoc Server REST API. Schauen wir uns an, wie man diese Bibliothek in .NET -Projekten installiert und verwendet.
How Do I Install Accusoft.PrizmDocServerSDK?
Es gibt zwei Möglichkeiten, den Wrapper zu installieren.
-
Paketmanager-Konsole:
Wenn Sie die Paket-Manager-Konsole verwenden, führen Sie folgenden Befehl aus:
_CODEBLOCK10
-
Pakete für die Lösung verwalten:
Wenn Sie die grafische Benutzeroberfläche des NuGet Paketmanagers verwenden, suchen Sie in der Suchleiste nach
Accusoft.PrizmDocServerSDKund installieren Sie es.
Entwickler können nun problemlos auf den Namespace Accusoft.PrizmDocServer zugreifen und ihn verwenden:
using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer;
Imports Accusoft.PrizmDocServer
Anleitungs-Tutorials
Wie schneiden IronPDF und PrizmDoc Viewer in Codebeispielen im Vergleich ab?
Nachdem wir die Einführung und Installation beider Komponenten besprochen haben, ist es nun an der Zeit, mit beiden zu arbeiten. Die folgenden Anwendungsfälle veranschaulichen die Implementierung unter Verwendung beider Komponenten, um die Programmierstrukturen besser zu verstehen und festzustellen, welche Komponente am besten zu den Projektanforderungen passt.
Wie konvertiere ich HTML in PDF mit IronPDF im Vergleich zum PrizmDoc Viewer?
Zum Vergleich konvertieren wir eine Webseite mit dem Namen myWebPage.html in eine PDF-Datei und speichern sie am Zielort. Die Chrome-Rendering-Engine von IronPDF bietet pixelgenaue Konvertierung mit voller Unterstützung für CSS , JavaScript und Webfonts .
Wie konvertiert IronPDF HTML in 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");
}
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
Der obige Code erstellt eine Datei namens sample.pdf und speichert sie im Ordner bin>debug des Projekts. IronPDF unterstützt außerdem HTML-Strings , URLs und sogar ZIP-Dateien, die HTML enthalten, als Eingabequellen.
Entwickler können auch einen beliebigen Pfad wie diesen angeben: PDF.SaveAs("E:/sample.pdf"); oder für Cloud-Bereitstellungen im Speicherstream speichern.
Lesen Sie mehr über die Arbeit mit IronPDF im Umgang mit PDF-Dateien.
Nun führen wir die gleiche Aufgabe zum Vergleich mit dem PrizmDoc Viewer durch.
Wie konvertiert der PrizmDoc Viewer HTML in PDF?
Im Abschnitt zur Installation des PrizmDoc Viewers wurde die Beschaffung des Accusoft API Key besprochen. So wird es verwendet.
Zuerst senden Sie eine Anfrage an den Server PrizmDoc und erhalten eine Antwort. Dieser Prozess benötigt Zeit und erfordert asynchrone Programmierung . IronPDF unterstützt außerdem asynchrone Methoden zur Leistungssteigerung.
Hinweis: Stellen Sie sicher, dass das System mit dem Internet verbunden ist, wenn Sie PDF-Dateien mit den Cloud-Diensten von PrizmDoc Viewer erstellen.
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
Lesen Sie mehr über die Arbeit mit dem PrizmDoc Viewer.
Welche Bibliothek bietet eine einfachere HTML-zu-PDF-Konvertierung?
Diese Beispiele zeigen, dass IronPDF eine einfachere und zeitsparende Methode zum Erstellen von PDF-Dateien bietet. IronPDF bietet zudem Rendering-Optionen zur Feinabstimmung der Ausgabe, darunter benutzerdefinierte Papierformate , Ränder und Ansichtsfenstereinstellungen .
Wie konvertiere ich Bilder in PDF mit IronPDF im Vergleich zum PrizmDoc Viewer?
Dieser Vergleich zeigt, wie man aus einem
das sich im Ordner debug des Projekts befindet, eine PDF-Datei erstellt. Entwickler beginnen mit IronPDF.
Wie konvertiert IronPDF Bilder in 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");
}
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
IronPDF unterstützt außerdem die TIFF-Konvertierung mit mehreren Einzelbildern , das Einbetten von Bildern aus Azure Blob Storage und das Einbetten von Base64-Bildern .
Ausgabe:
Dieser Screenshot zeigt die neu erstellte PDF-Datei sample.pdf, die mit dem obigen Code erstellt wurde:
Mit IronPDF lässt sich aus einem Bild ganz einfach eine PDF-Datei erstellen. Nun führen wir dieselbe Aufgabe mit dem PrizmDoc Viewer durch und untersuchen die generierte PDF-Datei.
Wie konvertiert der PrizmDoc Viewer Bilder in 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");
}
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
Ausgabe: Dieser Screenshot zeigt die neu erstellte PDF-Datei sample.pdf aus dem obigen Code:
Welche Bibliothek benötigt weniger Code für die Bild-zu-PDF-Konvertierung?
IronPDF benötigt nur zwei Codezeilen. Im Gegensatz dazu erfordert die Verwendung des PrizmDoc Servers mehr Codezeilen mit asynchroner Programmierung. Die Ausgabe von IronPDF liefert automatisch ein verwendbares, vollständiges Dokument. IronPDF bietet zusätzliche Optionen für die Bildpositionierung und die Konvertierung mehrerer Bilder .
Wie kann ich mehrere PDF-Dateien mit IronPDF vs. PrizmDoc Viewer zusammenführen?
Für diesen Vergleich wird angenommen, dass drei PDF-Dateien mit den Namen A.pdf, B.pdf und C.pdf existieren. Die Aufgabe besteht darin, sie zu einer einzigen PDF-Datei zusammenzuführen . Beide Komponenten können diese Aufgabe ausführen. Zunächst zeigt das Beispiel, wie dies mit IronPDF funktioniert.
Wie funktioniert IronPDF beim Zusammenführen von PDF-Dateien?
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
Der obige Code erzeugt eine sample.pdf Datei, die A.pdf, B.pdf und C.pdf kombiniert. IronPDF unterstützt außerdem das Hinzufügen und Kopieren von Seiten zwischen PDFs sowie das Aufteilen von PDFs .
Nun führen wir dieselbe Aufgabe mit dem PrizmDoc Viewer durch.
Wie funktioniert das Zusammenführen von PDF-Dateien mit dem PrizmDoc Viewer?
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
Der obige Code erzeugt außerdem eine sample.pdf-Datei, die die Dateien A.pdf, B.pdf und C.pdf kombiniert.
Wie füge ich Kopf- und Fußzeilen zu PDFs hinzu, wenn ich IronPDF anstelle des PrizmDoc Viewers verwende?
Für diesen Vergleich gehen wir davon aus, dass ein einfaches WebPage mit dem Namen myWebPage.html existiert, das über folgenden HTML- und CSS-Code verfügt:
<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>
Ziel ist es, diese WebPage-Datei in eine PDF-Datei mit den folgenden Kopf- und Fußzeileneigenschaften zu konvertieren:
Page Titleauf der linken Seite der KopfzeileDateTimeauf der rechten Seite der KopfzeilePage Number of Total Pagesauf der rechten Seite der Fußzeile
Zunächst wollen wir uns ansehen, wie IronPDF Kopf- und Fußzeilen handhabt.
Wie verarbeitet IronPDF Kopf- und Fußzeilen in PDFs?
Zur Bearbeitung von Kopf- und Fußzeilen von PDF-Dateien bietet IronPDF eine Eigenschaft der Klasse ChromePdfRenderer namens RenderingOptions, die wie folgt verwendet werden kann:
-
Für Kopfzeile:
_CODEBLOCK19
-
Für Fußzeile:
_CODEBLOCK20
Die folgenden Eigenschaften können beim Initialisieren von TextHeaderFooter() festgelegt werden:
CenterTextum Text in der Mitte der Kopf- oder Fußzeile zu druckenLeftTextzum Drucken von Text auf der linken Seite der Kopf- oder FußzeileRightTextzum Drucken von Text auf der rechten Seite der Kopf- oder FußzeileDrawDividerLinezeichnet eine Linie, die den Seiteninhalt von der Kopf- oder Fußzeile trenntFontFamilyzur Angabe der Schriftart für Kopf- oder FußzeileFontSizezur Angabe der Schriftgröße der Kopf- oder Fußzeile- Mit der Abstandseinstellung wird der Abstand zwischen Seiteninhalt und Kopf- bzw. Fußzeile angepasst.
Die folgenden vordefinierten Attribute helfen beim Festlegen des Inhalts von Kopf- oder Fußzeile. Sie sind in geschweiften Klammern geschrieben { }:
- {page} gibt die aktuelle Seitenzahl in der Kopf- oder Fußzeile aus
- {total-pages} gibt die Gesamtseitenzahl in der Kopf- oder Fußzeile aus.
- {url} gibt die URL der gerenderten Seite aus
- {date} gibt das aktuelle Datum in der Kopf- oder Fußzeile aus
- {time} gibt die aktuelle Uhrzeit in der Kopf- oder Fußzeile aus
- {html-title} gibt den Titel der gerenderten Webseite in der Kopf- oder Fußzeile aus.
- {pdf-title} gibt den Dokumenttitel in der Kopf- oder Fußzeile aus
Lesen Sie mehr über die Arbeit mit Kopf- und Fußzeilen in IronPDF. IronPDF unterstützt auch HTML-Kopf- und Fußzeilen für komplexere Designs.
Das Beispiel zeigt die folgende Vorgehensweise zur Implementierung des Anwendungsfalls und demonstriert die Verwendung der oben genannten Eigenschaften:
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
Ausgabe: Screenshot der neu erstellten PDF-Datei sample.pdf durch den obigen Code:
Die Arbeit mit Kopf- und Fußzeilen unter Verwendung von IronPDF erfordert eine intuitive Sprache beim Erstellen von PDF-Dateien. Das Beispiel zeigt nun, wie der PrizmDoc Viewer Kopf- und Fußzeilen verarbeitet.
Wie verarbeitet der PrizmDoc Viewer PDF-Kopf- und Fußzeilen?
Der Viewer PrizmDoc stellt die Klasse HeaderFooterOptions zur Verfügung, um Kopf- und Fußzeilen mit den folgenden Eigenschaften zu verarbeiten:
- Zeilen gibt die Zeile(n) für Kopf- und Fußzeile an, wobei jede Zeile die folgenden Eigenschaften hat: ** links druckt Text auf der linken Seite der Kopf- oder Fußzeile. Zentrieren druckt Text in der Mitte der Kopf- oder Fußzeile. Rechts * druckt Text auf der rechten Seite der Kopf- oder Fußzeile.
FontFamilyzur Angabe der Schriftart des Kopf- oder FußzeilentextesFontSizezur Angabe der Schriftgröße des Kopf- oder Fußzeilentextes- Farbe zur Angabe der Farbe des Kopf- oder Fußzeilentextes
Lesen Sie mehr über das Festlegen von Kopf- und Fußzeilen von PDF-Seiten mithilfe des PrizmDoc Servers.
Das Beispiel zeigt, wie der Anwendungsfall mithilfe der oben genannten Eigenschaften implementiert werden kann:
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
Ausgabe:
Screenshot der neu erstellten PDF-Datei mit dem obigen Code:
Welche Bibliothek bietet mehr Flexibilität für Kopf- und Fußzeilen?
IronPDF bietet im Vergleich zu PrizmDoc Viewer mehr Funktionen zum Festlegen von Kopf- und Fußzeileneigenschaften mit einer einfachen Programmierstruktur. Die von IronPDF erstellte PDF-Datei ist zudem besser lesbar und ansprechender als die vom PrizmDoc Viewer erzeugte Datei. IronPDF unterstützt außerdem Seitenzahlen und Seitenumbrüche für eine verbesserte Dokumentenverwaltung.
Wie konvertiere ich PDF-Seiten in Bilder mit IronPDF vs PrizmDoc Viewer?
Nehmen wir für diesen Vergleich an, Sie haben eine einfache PDF-Datei mit dem Namen Sample_PDF.pdf und zwei Seiten.
Die Aufgabe besteht darin , von jeder Seite ein Bild zu erstellen . Zunächst wird im Beispiel gezeigt, wie dies mit IronPDF funktioniert.
Wie wandelt IronPDF PDF-Seiten in Bilder um?
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
IronPDF unterstützt außerdem das Speichern von Bildern im Speicherstream und verschiedene Bildformate, darunter JPEG, TIFF und mehr.
Ausgabe:
Der obige Code erzeugt die folgenden zwei .png Bilder:
Das Erstellen von Bildern von PDF-Seiten mit IronPDF ist unkompliziert. Nun führen wir dieselbe Aufgabe mit dem PrizmDoc Viewer durch.
Wie wandelt der PrizmDoc Viewer PDF-Seiten in Bilder um?
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
Ausgabe:
Der obige Code erzeugt außerdem die folgenden beiden .png Bilder:
Welche Bibliothek erleichtert die PDF-zu-Bild-Konvertierung?
Im Vergleich zum PrizmDoc Viewer ermöglicht IronPDF Entwicklern, auf einfache Weise Bilder jeder Seite mit minimalem Codeaufwand zu erstellen, sogar ohne die Seiten durchlaufen zu müssen.
Kann ich Bootstrap 5-Datentabellen mit IronPDF verwenden?
Die Chrome V8-Rendering-Engine von IronPDF bietet hervorragende Unterstützung für Bootstrap 5-Datentabellen und ermöglicht es Entwicklern, Professional PDF-Berichte mit komplexen Tabellenlayouts zu erstellen. Dieses Beispiel demonstriert Farbverlaufsüberschriften, Status-Badges, Paginierungssteuerung und zusammenfassende Metriken – Funktionen, die den Vorteil von IronPDF gegenüber herkömmlichen PDF-Viewern wie PrizmDoc hervorheben. IronPDF unterstützt moderne CSS-Funktionen vollständig, einschließlich Flexbox-Layouts , Farbverläufe und responsives 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");
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")
Dieser Code erstellt einen ausgeklügelten Datentabellenbericht mit Verlaufsheadern, responsiven Tabellen, Status-Abzeichen und zusammenfassenden Metriken. Die Chrome-Rendering-Engine von IronPDF erhält das gesamte Bootstrap-Styling, einschließlich Tabellen-Hover-Effekte, Badge-Farben und Paginierungssteuerung – Funktionen, die über die Möglichkeiten herkömmlicher PDF-Viewer hinausgehen. Die Engine unterstützt außerdem JavaScript Rendering für dynamische Inhalte, benutzerdefinierte Schriftarten und UTF-8-Zeichen .
Wichtigste Vorteile gegenüber PrizmDoc Betrachter:
- Direkte HTML-Tabellen-Rendering ohne Konvertierung
- Volle Bootstrap-Komponenten-Unterstützung
- Verlaufs-Hintergründe und moderne CSS
- Responsive Tabellenlayouts mit ordnungsgemäßer Paginierung
- Unterstützung für komplexe JavaScript Diagramme
- CSS-Verarbeitung für Druckmedien
Weitere Details zur Bootstrap-PDF-Generierung finden Sie in der vollständigen Rendering-Dokumentation . Entwickler können auch die Konvertierung von Angular zu PDF und die Unterstützung anderer JavaScript Frameworks erkunden. ## Wie vergleichen sich die Lizenzkosten zwischen IronPDF und PrizmDoc Viewer?
Nach Durchsicht der technischen Struktur und der verfügbaren Funktionen beider Komponenten folgt eine Übersicht der Lizenzpreise. Dies ist von entscheidender Bedeutung, da die Entwickler bestrebt sind, die Anforderungen innerhalb der Budgetvorgaben zu erfüllen.
Welche Lizenzoptionen bietet IronPDF an?
IronPDF Lizenzen beginnen bei $699 für ein einzelnes Projekt mit einem Entwickler. IronPDF bietet flexible Lizenzierungsoptionen, darunter Entwicklungslizenzen, Bereitstellungslizenzen und Erweiterungsoptionen für fortlaufenden Support und Updates.
Für Entwickler in Unternehmen oder Agenturen, die mehrere Kunden betreuen, beginnen die Lizenzen ebenfalls bei 699 US-Dollar und können je nach Teamgröße und Projektanzahl angepasst werden. IronPDF bietet Lizenz-Upgrade-Optionen, die sich an die sich ändernden Bedürfnisse anpassen.
Für die folgenden Lizenzen ist eine einmalige Zahlung erforderlich:
| Anzahl von Entwicklern | Preis |
|---|---|
| 1-5 | $699 |
| 6-10 | $799 |
| 11-20 | $899 |
| 21-50 | $1,499 |
| Unbegrenzt | $1,199 |
- Für Unternehmen mit mehreren Standorten beginnen die Lizenzpreise bei 1199 US-Dollar.
- Für SaaS-Dienste beginnen die Lizenzen bei 1099 US-Dollar.
- Für die lizenzgebührenfreie OEM-Weiterverbreitung beginnen die Lizenzen bei 1599 US-Dollar.
Hinweis: Alle oben genannten Lizenzpakete beinhalten 1 Jahr Support und Updates .
Lesen Sie mehr über alle verfügbaren Lizenzpakete von IronPDF. Entwickler können Lizenzschlüssel auch auf verschiedene Weise anwenden, unter anderem über Web.config und Umgebungsvariablen.
Welche Lizenzoptionen gibt es für den PrizmDoc Viewer?
What Is the Cost of Self-Hosted PrizmDoc?
Für selbstverwaltete Server beträgt der Lizenzpreis 7.900 US-Dollar pro Jahr inklusive Standardsupport.
Lesen Sie mehr über alle verfügbaren Pakete für PrizmDoc Viewer.
How Much Does Cloud-Based PrizmDoc Cost?
Diese Lizenz deckt die Cloud-basierten Dienste von PrizmDoc Viewer ab, skaliert nach der Anzahl der Transaktionen.
Terminologie:
Transaction bezieht sich auf das Senden einer Anfrage an den PrizmDoc Viewer-Server und den Empfang der Ausgabe (resultierendes Dokument).
Prepaid-Eimer bedeutet, dass man einmal zahlt und Transaktionen erhält, die nicht verfallen.
| Anzahl der Transaktionen | Prepaid-Eimer | Monatlich | Jährlich |
|---|---|---|---|
| 200 | $18 | ||
| 1.000 | $89 | ||
| 2.000 | $119 | ||
| 6.000 | $254 | $169 | 1.859 $ (6.000 Transaktionen/Monat) |
| 12.000 | $434 | $289 | 3.179 $ (12.000 Transaktionen/Monat) |
| 25.000 | $699 | $499 | 5.459 $ (25.000 Transaktionen/Monat) |
| 50.000 | $1,199 | $799 | 8.789 $ (50.000 Transaktionen/Monat) |
| 100.000 | $1,499 | $1,499 | 10.989 $ (100.000 Transaktionen/Monat) |
| 200.000 | $2,549 | $1,699 | 19.188 $ (200.000 Transaktionen/Monat) |
| 300.000 | $3,299 | $2,199 | 25.188 $ (300.000 Transaktionen/Monat) |
| 400.000 | $4,049 | $2,699 | $31.188 (400.000 Transaktionen/Monat) |
| 500.000 | $4,799 | $3,199 | $37.188 (500.000 Transaktionen/Monat) |
Tutorial Schnellzugriff
Ein kostenloser PDF-Ressourcenleitfaden, der die Entwicklung von PDFs for .NET vereinfacht, mit Anleitungen zu gängigen Funktionen und Beispielen zum Manipulieren, Bearbeiten, Generieren und Speichern von PDFs in C# und VB .NET für Projekte.
Leitfaden herunterladenErkunden Sie die API-Referenz für die IronPDF C#-Bibliothek, einschließlich Details zu allen Funktionen, Klassen, Methodenfeldern, Namensräumen und Aufzählungen von IronPDF.
Sehen Sie sich die API-Referenz anPrizmDoc Viewer ist eine eingetragene Marke des jeweiligen Inhabers. Diese Website steht in keiner Verbindung zu Accusofts PrizmDoc Viewer, wird weder von diesem unterstützt noch gesponsert. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich zugängliche Informationen zum Zeitpunkt des Schreibens wider.Häufig gestellte Fragen
Wie kann ich HTML in PDF in C# konvertieren?
Sie können die RenderHtmlAsPdf-Methode von IronPDF verwenden, um HTML-Strings in PDFs zu konvertieren. Sie können auch HTML-Dateien mit RenderHtmlFileAsPdf in PDFs konvertieren.
Was sind die Vorteile der Verwendung von IronPDF gegenüber PrizmDoc Viewer für die PDF-Konvertierung?
IronPDF bietet eine einfache lokale PDF-Rendierungslösung, die Offline-Arbeit ohne asynchrone Programmierung unterstützt. Im Gegensatz dazu arbeitet PrizmDoc Viewer über eine REST-API, die Internetverbindung für die Interaktion mit einem Remote-Server erfordert.
Kann ich mehrere PDF-Dokumente mit einer PDF-Bibliothek zusammenfügen?
Ja, mit IronPDF können Sie mehrere PDFs mit der MergePdf-Methode zusammenfügen, sodass Sie Dokumente nahtlos kombinieren können.
Wie handhabt IronPDF die Konvertierung von PDF zu Bild?
IronPDF ermöglicht es Ihnen, PDF-Seiten einfach in Bilder zu konvertieren, indem es seine integrierten Methoden verwendet, und bietet einen optimierten Ansatz im Vergleich zu anderer Software.
Was sind die Anpassungsmöglichkeiten für Kopf- und Fußzeilen in IronPDF?
IronPDF bietet umfassende Funktionen, um Kopf- und Fußzeileneigenschaften mit einer einfachen Programmierstruktur festzulegen, wodurch es einfach ist, Ihre Dokumente anzupassen.
Ist IronPDF für die Offline-PDF-Verarbeitung geeignet?
Ja, IronPDF unterstützt die Offline-PDF-Verarbeitung, sodass Sie ohne Internetverbindung arbeiten können, im Gegensatz zu einigen anderen Lösungen, die eine Interaktion mit einem Remote-Server erfordern.
Wie ist die Kostenstruktur für IronPDF-Lizenzen?
IronPDF-Lizenzen beginnen bei $699 für ein einzelnes Projekt mit einem Entwickler, mit skalierbaren Optionen für Unternehmen und SaaS-Dienste, die eine kostengünstige Einmalzahlungslösung bieten.
Kann ich kostenlos mit IronPDF entwickeln?
Ja, IronPDF ist kostenlos für die Entwicklung ohne Zeitlimit und bietet eine 30-tägige Bereitstellungstestphase, um mit Ihrem Projekt live zu gehen.
Wie handhabt PrizmDoc Viewer die HTML zu PDF-Konvertierung?
PrizmDoc Viewer verwendet eine REST-API für die HTML zu PDF-Konvertierung, was eine asynchrone Programmierung und Internetverbindung für die Interaktion mit einem Remote-Server erfordert.
Was sind die Systemanforderungen für das Hosting eines PrizmDoc Servers?
Das Selbsthosting des PrizmDoc Servers erfordert mindestens 32 GB RAM und eine 4-Kern-CPU, um seinen Verarbeitungsanforderungen gerecht zu werden.
Ist IronPDF vollständig mit .NET 10 kompatibel?
Ja. IronPDF unterstützt .NET 10 (sowie .NET 9, 8, 7, 6, .NET Core, .NET Standard und .NET Framework). Die Installation erfolgt über NuGet. IronPDF ist unter Windows, Linux und macOS lauffähig und nutzt seinen nativen, auf Chrome basierenden Renderer für eine pixelgenaue HTML-zu-PDF-Konvertierung in .NET-10-Anwendungen.












