COMPARAISON DES PRODUITS

Accusoft Prizmdoc PDF Viewer Tutoriel et comparaison

Chaknith Bin
Chaknith Bin
septembre 2, 2021
Partager:

Accusoft PDF Viewer offre des fonctionnalités HTML vers PDF et d'autres tâches d'édition et de manipulation de PDF pour .NET. IronPDF accomplit également ces mêmes tâches par programmation, ce qui vous permet d'économiser du temps et des efforts dans vos projets C#.

Comparons les deux et trouvons ce qui convient le mieux à votre projet.


Vue d'ensemble

À propos d'IronPDF

IronPDF est une bibliothèque C# pour convertir HTML en PDF. Il permet aux ingénieurs d'effectuer des tâches telles que la création de fichiers PDF à partir de sources telles que des chaînes HTML, des pages Web, des URL, ainsi que la définition de propriétés telles que le filigrane, le signet, l'en-tête et le pied de page, etc. Il est également possible de fusionner plusieurs fichiers PDF en un seul, ou de convertir des pages PDF en images, ou vice versa.

Il est gratuit pour le développement et offre une période d'essai de 30 jours pour le déploiement de votre projet.

Vous pouvez télécharger un projet de fichier depuis ce lien.

A propos de Accusoft PrizmDoc Viewer

PrizmDoc Viewer est une API REST utilisée pour travailler avec des fichiers PDF et les convertir en d'autres formats à distance. PrizmDoc peut convertir plus de 100 formats différents de fichiers en PDF et de PDF en PNG, JPG, TIFF et SVG. Il peut également être utilisé pour inclure différents types d'options de signature électronique dans les applications.

Tableau de comparaison

IronPDFPrizmDoc Viewer
Work with PDF files programmatically.Work with PDF files programmatically.
Supports .NET core with Window, Mac, or Linux.Supports .NET Core using Window, Mac, or Linux.
Works LocallySends Documents to a remote server.
Work with or without using Asynchronous Programming.Must use Asynchronous Programming using `System.Threading.Tasks`.
Easily work offline once we install IronPF in our system.Must connect with the internet to send the request to the PrizmDoc Viewer server (Cloud-hosted or self-hosted).
Provides many predefined functions.Provides some predefined functions.
Often requires minimal lines of code.Often requires many lines of code.
Unlimited conversions per project in each license plan.Limited number of transactions in each cloud-hosted license plan.
Free for development with no time limit.Only 300 transactions with trial.

Installons les deux et comparons le code.


Étape 1 : Installation

1. Installer la bibliothèque IronPDF

Il existe deux façons d'installer IronPDF dans votre projet, quelle que soit celle que vous adoptez.

1.1. Télécharger la DLL IronPDF

Télécharger IronPDF.dll et ajouter sa référence à votre projet. Après cela, vous pouvez facilement accéder à l’espace de noms IronPdf de la manière suivante :

using IronPdf;

Désormais, vous pouvez facilement accéder aux fonctions et classes fournies par IronPDF.

1.2 Installation via le gestionnaire de paquets NuGet

  • Console du gestionnaire de paquets :

    Si vous utilisez la console du gestionnaire de paquets, exécutez la commande suivante :

    :ProductInstall
  • Gérer les paquets pour la solution :

    Si vous utilisez l'interface graphique de NuGet Package Manager, recherchez IronPDF dans la barre de recherche et installez-le.


    Installer le PrizmDoc Viewer de Accusoft

    Il y a deux parties dans PrizmDoc Viewer, l'une est le côté serveur appelé PrizmDoc Server qui se comporte comme une API Restful. L'autre est notre projet, qui nous permet d'accéder à l'API et d'obtenir une réponse.

    Accéder au serveur PrizmDoc

    Comme nous le voyons d'après son nom, c'est une application côté serveur qui reçoit les informations de base avec le document en tant que requête (entrée) et convertit le document en un fichier PDF, puis envoie le fichier PDF converti au client en tant que réponse (sortie). C'est le cœur technique du produit, qui est un moteur de traitement et de conversion de documents. Nous pouvons l'utiliser de deux manières différentes, sans que cela ne change quoi que ce soit, car les deux ont la même structure et les mêmes techniques de programmation :

  1. Autohébergé :

    Pour cette option, vous devez configurer votre serveur, et vous pouvez télécharger PrizmDoc Server puis l'installer. En savoir plus sur la façon d'installer PrizmDoc Server sur Windows.

    Note : Il nécessite au minimum 32 Go de RAM et un processeur 4 cœurs, sinon vous risquez de rencontrer une mauvaise expérience.

  2. Hébergé sur le cloud :

    C'est un service cloud de PrizmDoc Viewer et vous n'avez pas besoin de gérer votre serveur. Nous l'utiliserons pour notre comparaison. Pour ce faire, créez votre compte, puis la page d'accueil s'ouvrira. Vous pouvez copier la clé API depuis le menu Clé API, nous verrons plus tard comment l'utiliser.

    Tout d'abord, nous verrons la structure de base pour utiliser PrizmDoc Viewer afin de convertir les documents en fichier PDF, et nous interagirons directement avec Accusoft server en utilisant WebClient() dans une application de console C#.

    Remarque : L'exemple suivant est uniquement destiné à une compréhension conceptuelle de la manière dont PrizmDoc gère les fichiers PDF. Il est un peu long, donc pas de problème si vous passez cet exemple et passez directement à la comparaison.

    Structure de travail Accusoft

    Dans cet exemple, nous convertirons le fichier myWebpage.html en fichier sample.pdf.

Note : Nous devons installer la bibliothèque Newtonsoft et ajouter sa référence dans le projet.

Tout d'abord, ajoutez les bibliothèques suivantes à votre projet :

using System;
using System.IO;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;//install Newtonsoft
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;//install Newtonsoft
Imports System
Imports System.IO
Imports System.Net
Imports System.Text
Imports System.Threading.Tasks
Imports Newtonsoft.Json.Linq 'install Newtonsoft
$vbLabelText   $csharpLabel

Ensuite, créez une variable publique Accusoft API Key et collez votre clé API dedans comme suit :

static string ApiKey= "Your-API-KEY";
static string ApiKey= "Your-API-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Il y a 3 étapes pour traiter un fichier PDF avec PrizmDoc Viewer :

  1. Télécharger un fichier sur le serveur PrizmDoc.

  2. Convertir le fichier téléchargé.

  3. Télécharger le fichier converti depuis le serveur PrizmDoc.

    Nous allons donc créer une fonction distincte pour chaque étape.

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)convertResults.SelectToken("state");

    //---Continuously checking whether conversion completed or not until 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)convertResults.SelectToken("state");

    //---Continuously checking whether conversion completed or not until 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(convertResults.SelectToken("state"))

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

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

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

1. Télécharger le fichier sur le serveur :

public static async Task<JObject> UploadToServer(string fileToUpload)
{
    FileInfo input = new FileInfo(fileToUpload);
    if (input == null)
    {
        throw new ArgumentException("Missing parameter input", "input");
    }
    var fileName = input.Name;
    var endpoint = new Uri("https://api.accusoft.com/PCCIS/V1/WorkFile");
    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 = "";
            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", "input");
    }
    var fileName = input.Name;
    var endpoint = new Uri("https://api.accusoft.com/PCCIS/V1/WorkFile");
    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 = "";
            getResult = Encoding.ASCII.GetString(results);
            return JObject.Parse(getResult);
        }
    }
}
Public Shared Async Function UploadToServer(ByVal fileToUpload As String) As Task(Of JObject)
	Dim input As New FileInfo(fileToUpload)
	If input Is Nothing Then
		Throw New ArgumentException("Missing parameter input", "input")
	End If
	Dim fileName = input.Name
	Dim endpoint = New Uri("https://api.accusoft.com/PCCIS/V1/WorkFile")
	Using client = New WebClient()
		client.Headers.Add("acs-api-key", ApiKey)
		client.Headers.Add("Content-Type", "application/octet-stream")
		Using reader = New BinaryReader(input.OpenRead())
			Dim data = reader.ReadBytes(CInt(reader.BaseStream.Length))
			Dim results = Await client.UploadDataTaskAsync(endpoint, "POST", data)
			Dim getResult As String = ""
			getResult = Encoding.ASCII.GetString(results)
			Return JObject.Parse(getResult)
		End Using
	End Using
End Function
$vbLabelText   $csharpLabel

2. Convertir le fichier téléchargé en PDF :

public static async Task<JObject> Convert(string affinityToken, string fileID)
{
    var endpoint = new Uri("https://api.accusoft.com/v2/contentConverters");
    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("https://api.accusoft.com/v2/contentConverters");
    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(ByVal affinityToken As String, ByVal fileID As String) As Task(Of JObject)
	Dim endpoint = New Uri("https://api.accusoft.com/v2/contentConverters")
	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 New JObject(New JProperty("input", New JObject(New JProperty("sources", New JArray(New JObject(New JProperty("fileId", fileID)))), New JProperty("dest", New JObject(New JProperty("format", "pdf"))))))
			Dim results As String = Await client.UploadStringTaskAsync(endpoint, "POST", myJson.ToString())
			Return JObject.Parse(results)
	End Using
End Function
$vbLabelText   $csharpLabel

Le JSON suivant est la valeur résultante de l'objet myJson :

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

Vérifiez si la conversion est terminée ou non

public static async Task<JObject> ConvertStatus(string processId, string affinityToken)
{
    string endpoint = "https://api.accusoft.com/v2/contentConverters/" + 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 = "https://api.accusoft.com/v2/contentConverters/" + 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(ByVal processId As String, ByVal affinityToken As String) As Task(Of JObject)
	Dim endpoint As String = "https://api.accusoft.com/v2/contentConverters/" & processId
	Using client = New WebClient()
		client.BaseAddress = endpoint
		client.Headers.Add("acs-api-key", ApiKey)
		client.Headers.Add("Accusoft-Affinity-Token", affinityToken)
		Dim results As String = Await client.DownloadStringTaskAsync(endpoint)
		Return JObject.Parse(results)
	End Using
End Function
$vbLabelText   $csharpLabel

3. Téléchargez le fichier converti depuis le serveur

public static async Task DownloadFromServer(string affinityToken, string fileId, string outfile)
{
    var endpoint = new Uri("https://api.accusoft.com/PCCIS/V1/WorkFile/" + 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("https://api.accusoft.com/PCCIS/V1/WorkFile/" + 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(ByVal affinityToken As String, ByVal fileId As String, ByVal outfile As String) As Task
	Dim endpoint = New Uri("https://api.accusoft.com/PCCIS/V1/WorkFile/" & fileId)

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

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

L'exemple ci-dessus demande beaucoup d'efforts ! Pour minimiser la charge de travail, Accusoft a introduit une bibliothèque .NET nommée Accusoft.PrizmDocServerSDK, qui est un wrapper autour de l'API REST PrizmDoc Server. Voyons comment installer et utiliser cette bibliothèque dans notre projet .NET

Installer le Accusoft.PrizmDocServerSDK

Il y a deux façons d'installer le wrapper.

  • Console du gestionnaire de paquets :

    Si vous utilisez la console du gestionnaire de paquets, exécutez la commande suivante :

    :InstallCmd install-package Accusoft.PrizmDocServerSDK
  • Gérer les paquets pour la solution :

    Si vous utilisez l'interface graphique du gestionnaire de packages NuGet, recherchez Accusoft.PrizmDocServerSDK dans la barre de recherche et installez-le.

    Vous pouvez maintenant facilement accéder à l'espace de noms Accusoft.PrizmDocServer et l'utiliser en accédant à :

    using Accusoft.PrizmDocServer;


    Tutoriels

2. Comparaison du code de la visionneuse IronPDF vs PrizmDoc

Après avoir lu l'introduction et l'installation des deux composants, il est maintenant temps de travailler avec les deux composants. Pour cela, nous allons prendre quelques cas d'utilisation et les mettre en œuvre en utilisant les deux composants. Nous espérons que cela vous permettra de comprendre facilement les deux structures de programmation et de déterminer celle qui convient le mieux à votre projet.


3. Convertir HTML en fichier PDF

Dans notre première comparaison, prenons le cas d'utilisation où nous avons une page Web nommée myWebPage.html et voulons créer un fichier PDF à partir de celle-ci, puis le sauvegarder à l'emplacement cible.

3.1. IronPDF HTML en PDF

/**
HTML to PDF
anchor-ironpdf-html-to-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");
}
/**
HTML to PDF
anchor-ironpdf-html-to-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");
}
'''
'''HTML to PDF
'''anchor-ironpdf-html-to-pdf
'''*
Imports IronPdf
Shared Sub Main(ByVal args() As String)
	'create rendering converter
	Dim converter = New ChromePdfRenderer()
	'render html file to pdf
	Dim PDF = converter.RenderHTMLFileAsPdf("myWebPage.html")
	'save to target location
	PDF.SaveAs("sample.pdf")
End Sub
$vbLabelText   $csharpLabel

Le code ci-dessus créera un fichier sample.pdf et le sauvegardera dans le dossier bin>debug du projet.

Vous pouvez également spécifier n'importe quel chemin comme ceci : PDF.SaveAs("E:/sample.pdf");

En savoir plus sur comment travailler avec IronPDF pour gérer les fichiers PDF.

Nous allons maintenant effectuer la même tâche en utilisant le PrizmDoc Viewer, afin de faciliter notre comparaison.

3.2. PrizmDoc Viewer HTML vers PDF

Dans l'installation du PrizmDoc Viewer, nous avons déjà discuté de la manière d'obtenir la Accusoft API Key, et maintenant nous allons voir comment l'utiliser.

Tout d'abord, nous envoyons une requête au serveur PrizmDoc et obtenons une réponse. Ce processus prendra un certain temps, c'est pourquoi nous devons utiliser la programmation asynchrone.

Remarque : Assurez-vous que votre système est connecté à Internet lors de la création de fichiers PDF en utilisant les services Cloud de 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("https://api.accusoft.com", "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("https://api.accusoft.com", "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
Shared Sub Main(ByVal args() As String)
	ChromePdfRenderer().GetAwaiter().GetResult()
End Sub
Private Shared Async Function ChromePdfRenderer() As Task
	'instantiate PrizmDocServerClient object
	Dim prizmDocServer = New PrizmDocServerClient("https://api.accusoft.com", "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
$vbLabelText   $csharpLabel

En savoir plus sur comment travailler avec PrizmDoc Viewer.

3.3. Comparaison des codes HTML et PDF

Ces exemples montrent qu'IronPDF est une approche plus simple de la création de fichiers PDF et qu'elle ne demande pas autant de temps.


4. Image vers PDF

Dans cette comparaison, nous prenons un cas d'utilisation où nous devons créer un fichier PDF par l'Image, et il se trouve dans notre dossier debug du projet. Commençons par IronPDF.

4.1. IronPDF Image en PDF

/**
Image to PDF
anchor-ironpdf-image-to-pdf
**/
using IronPdf;
static void Main(string [] args)
{
    //specify the image to be convert
    using var converted = ImageToPdfConverter.ImageToPdf("google.png");
    //save PDF file to the target location
    converted.SaveAs("sample.pdf");
}
/**
Image to PDF
anchor-ironpdf-image-to-pdf
**/
using IronPdf;
static void Main(string [] args)
{
    //specify the image to be convert
    using var converted = ImageToPdfConverter.ImageToPdf("google.png");
    //save PDF file to the target location
    converted.SaveAs("sample.pdf");
}
'''
'''Image to PDF
'''anchor-ironpdf-image-to-pdf
'''*
Imports IronPdf
Shared Sub Main(ByVal args() As String)
	'specify the image to be convert
	Dim converted = ImageToPdfConverter.ImageToPdf("google.png")
	'save PDF file to the target location
	converted.SaveAs("sample.pdf")
End Sub
$vbLabelText   $csharpLabel

Sortie :

Cette capture d'écran est d'un fichier PDF nouvellement créé sample.pdf en utilisant le code ci-dessus :

Iron 2 related to 4.1. IronPDF Image en PDF

Nous pouvons voir à quel point il est facile de créer un fichier PDF à partir d'une image à l'aide d'IronPDF. Nous allons maintenant effectuer la même tâche en utilisant PrizmDoc Viewer et voir le fichier PDF généré.

4.2. PrizmDoc Viewer Image vers PDF

static void Main(string [] args)
{
    ImageToPDF().GetAwaiter().GetResult();
}
private static async Task ImageToPDF()
{
    //instantiate PrizmDocServerClient object
    var prizmDocServer = new PrizmDocServerClient("https://api.accusoft.com", "Your-API-KEY");
    //specify the image to be convert
    ConversionResult results = await prizmDocServer.ConvertToPdfAsync("google.png");
    //save pdf file to the target location
    await results.RemoteWorkFile.SaveAsync("sample.pdf");
}
static void Main(string [] args)
{
    ImageToPDF().GetAwaiter().GetResult();
}
private static async Task ImageToPDF()
{
    //instantiate PrizmDocServerClient object
    var prizmDocServer = new PrizmDocServerClient("https://api.accusoft.com", "Your-API-KEY");
    //specify the image to be convert
    ConversionResult results = await prizmDocServer.ConvertToPdfAsync("google.png");
    //save pdf file to the target location
    await results.RemoteWorkFile.SaveAsync("sample.pdf");
}
Shared Sub Main(ByVal args() As String)
	ImageToPDF().GetAwaiter().GetResult()
End Sub
Private Shared Async Function ImageToPDF() As Task
	'instantiate PrizmDocServerClient object
	Dim prizmDocServer = New PrizmDocServerClient("https://api.accusoft.com", "Your-API-KEY")
	'specify the image to be convert
	Dim results As ConversionResult = Await prizmDocServer.ConvertToPdfAsync("google.png")
	'save pdf file to the target location
	Await results.RemoteWorkFile.SaveAsync("sample.pdf")
End Function
$vbLabelText   $csharpLabel

Sortie : Cette capture d'écran est d'un fichier PDF nouvellement créé sample.pdf à partir du code ci-dessus :

Prizm 2 related to 4.2. PrizmDoc Viewer Image vers PDF

4.3. Comparaison des codes de conversion d'images en PDF

Nous pouvons voir qu'il nous suffit d'écrire 2 lignes de code simples en utilisant IronPDF. D'autre part, en utilisant le serveur PrizmDoc, nous devons écrire de nombreuses lignes de code avec la programmation asynchrone. La sortie d'IronPDF fournit aussi automatiquement un document pleine page utilisable.


5. Fusionner des fichiers PDF

Dans cette comparaison, supposons que nous avons trois fichiers PDF nommés A.pdf, B.pdf, et C.pdf. Nous voulons les fusionner en un seul fichier PDF, et nous pouvons effectuer cette tâche à l'aide des deux composants. Nous verrons tout d'abord comment effectuer cette tâche avec IronPDF.

5.1. IronPDF fusionne des fichiers PDF

/**
Merge PDF Files
anchor-ironpdf-merge-pdf-files
**/
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();
    }
}
/**
Merge PDF Files
anchor-ironpdf-merge-pdf-files
**/
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();
    }
}
'''
'''Merge PDF Files
'''anchor-ironpdf-merge-pdf-files
'''*
Imports IronPdf
Imports System.Collections.Generic
Shared Sub Main(ByVal args() As String)
	'create rendering converter  
	Dim Renderer = New IronPdf.ChromePdfRenderer()
	'create a list of pdf files
	Dim PDFs = New List(Of PdfDocument)()
	PDFs.Add(PdfDocument.FromFile("A.pdf"))
	PDFs.Add(PdfDocument.FromFile("B.pdf"))
	PDFs.Add(PdfDocument.FromFile("C.pdf"))
	'merge the list of pdf file
	Using PDF As PdfDocument = PdfDocument.Merge(PDFs)
		'save merged file to the target location
		PDF.SaveAs("sample.pdf")
	
'INSTANT VB NOTE: The variable pdf was renamed since Visual Basic will not allow local variables with the same name as parameters or other local variables:
		For Each .pdf_Conflict In PDFs
			.pdf_Conflict.Dispose()
		Next pdf_Conflict
	End Using
End Sub
$vbLabelText   $csharpLabel

Le code ci-dessus créera un fichier sample.pdf, qui est la combinaison de A.pdf, B.pdf et C.pdf.

Nous allons maintenant effectuer la même tâche en utilisant PrizmDoc Viewer.

5.2. PrizmDoc Viewer Fusionner des fichiers 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("https://api.accusoft.com", "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("https://api.accusoft.com", "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

Shared Sub Main(ByVal args() As String)
	PdfMerge().GetAwaiter().GetResult()
End Sub
Private Shared Async Function PdfMerge() As Task
	'instantiate PrizmDocServerClient object
	Dim prizmDocServer = New PrizmDocServerClient("https://api.accusoft.com", "Your-API-KEY")
	'pass the list of pdf files to PrizmDoc Server
	Dim result As ConversionResult = Await prizmDocServer.CombineToPdfAsync({
		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
$vbLabelText   $csharpLabel

Le code ci-dessus créera également un fichier sample.pdf, qui est la combinaison des fichiers A.pdf, B.pdf, et C.pdf.


6. En-tête et pied de page du PDF

Dans cette comparaison, supposons que nous ayons une simple page Web nommée myWebPage.html qui contient le HTML et le CSS suivants :

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

Nous voulons convertir cette page Web en fichier PDF, en définissant les propriétés suivantes pour l'en-tête et le pied de page :

  • Titre de la page sur le côté gauche de l'en-tête,
  • DateTime sur le côté droit de l'en-tête
  • Numéro de Page sur Nombre Total de Pages sur le côté droit du Pied de page.

    Tout d'abord, nous verrons comment utiliser IronPDF pour définir l'en-tête et le pied de page.

6.1. IronPDF PDF En-tête et pied de page

Pour gérer l'en-tête et le pied de page d'un fichier PDF, IronPDF offre une propriété dans la classe ChromePdfRenderer nommée RenderingOptions, qui peut être utilisée comme suit :

  • Pour l'en-tête :

    C# ChromePdfRenderer_Obj.RenderingOptions.TextHeader=new TextHeaderFooter()

  • Pour le pied de page :

    C# ChromePdfRenderer_Obj.RenderingOptions.TextFooter=new TextHeaderFooter()

    Nous pouvons définir les propriétés suivantes lors de l'initialisation de TextHeaderFooter() :

  • CenterText pour imprimer le texte au centre de l'en-tête ou du pied de page.
  • LeftText pour imprimer le texte sur le côté gauche de l'en-tête ou du pied de page.
  • RightText pour imprimer le texte sur le côté droit de l'en-tête ou du pied de page.
  • DrawDividerLine dessine une ligne qui sépare le contenu de la page de l'en-tête ou du pied de page.
  • FontFamily pour spécifier la famille de polices de l'en-tête ou du pied de page.
  • FontSize pour spécifier la taille de la police de l'en-tête ou du pied de page.
  • Espacement il ajuste l'espace entre le contenu de la page et l'en-tête ou le pied de page.

    Certains attributs prédéfinis sont très utiles pour définir le contenu de l'en-tête ou du pied de page. Il peut être écrit entre accolades { } comme suit :

  • {page} imprime le numéro de page actuel dans l'en-tête ou le pied de page.
  • {total-pages} il imprime le nombre total de pages dans l'en-tête ou le pied de page.
  • {url} il était utilisé pour imprimer l'URL de la page rendue.
  • {date} il imprime la date actuelle dans l'en-tête ou le pied de page.
  • {time} il imprime l'heure actuelle dans l'en-tête ou le pied de page.
  • {html-title} imprime le titre de la page web rendue dans l'en-tête ou le pied de page
  • {pdf-title} imprime le titre du document dans l'en-tête ou le pied de page.

    En savoir plus en détail sur comment travailler avec l'en-tête et le pied de page en utilisant IronPDF.

    Voyons l'exemple suivant pour mettre en œuvre le cas d'utilisation et démontrer comment utiliser les propriétés ci-dessus pour définir l'en-tête et le pied de page d'un fichier PDF.

/**
Set Header and Footer
anchor-ironpdf-pdf-header-and-footer
**/
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");
}
/**
Set Header and Footer
anchor-ironpdf-pdf-header-and-footer
**/
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");
}
'''
'''Set Header and Footer
'''anchor-ironpdf-pdf-header-and-footer
'''*
Imports IronPdf
Shared Sub Main(ByVal args() As String)
	'create rendering converter
	Dim converter = New ChromePdfRenderer()
	'setting Header properties
	converter.RenderingOptions.TextHeader = New TextHeaderFooter() With {
		.DrawDividerLine = True,
		.LeftText = "Page Title",
		.RightText = "{date} {time}",
		.FontSize = 13
	}
	'setting footer properties
	converter.RenderingOptions.TextFooter = New TextHeaderFooter() With {
		.RightText = "Page {page} of {total-pages}",
		.FontSize = 12
	}
	'specify the file to be converted
	Dim PDF = converter.RenderHTMLFileAsPdf("myWebPage.html")
	'save to target location
	PDF.SaveAs("sample.pdf")
End Sub
$vbLabelText   $csharpLabel

Sortie : La capture d'écran du fichier PDF nouvellement créé sample.pdf par le code ci-dessus :

Iron Hdr Ftr related to 6.1. IronPDF PDF En-tête et pied de page

Nous pouvons voir à quel point il est simple de travailler avec l'en-tête et le pied de page en utilisant un langage intuitif lors de la création d'un fichier PDF à l'aide d'IronPDF. Nous allons maintenant voir comment utiliser PrizmDoc Viewer pour définir l'en-tête et le pied de page.

6.2. PrizmDoc Viewer PDF En-tête et pied de page

PrizmDoc Viewer fournit la classe HeaderFooterOptions pour gérer l'en-tête et le pied de page, avec les propriétés suivantes :

  • Lignes spécifie la ou les lignes pour l'en-tête et le pied de page (plus clair lorsque vous comprenez l'exemple suivant), chaque ligne a les propriétés suivantes :

    • Gauche imprime le texte sur le côté gauche de la ligne d'En-tête ou de Pied de page.

    • Center imprime le texte sur le côté gauche de la ligne d'en-tête ou de pied de page.
  • Right imprime le texte sur le côté droit de la ligne d'en-tête ou de pied de page.
  • FontFamily pour spécifier la famille de polices du texte de l'en-tête ou du pied de page.
  • FontSize pour spécifier la taille de police du texte de l'en-tête ou du pied de page.
  • Couleur pour spécifier la couleur du texte de l'en-tête ou du pied de page.

    En savoir plus sur la façon de définir l'en-tête et le pied de page d'une page PDF en utilisant le serveur PrizmDoc.

    Voyons comment mettre en œuvre notre cas d'utilisation à l'aide des propriétés ci-dessus.

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("https://api.accusoft.com", "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("https://api.accusoft.com", "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
Shared Sub Main(ByVal args() As String)
	SetHeaderFooter().GetAwaiter().GetResult()
End Sub
Private Shared Async Function SetHeaderFooter() As Task
	'instantiate PrizmDocServerClient object with Header and footer properties
	Dim prizmDocServer = New PrizmDocServerClient("https://api.accusoft.com", "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
$vbLabelText   $csharpLabel

Sortie :

La capture d'écran du fichier PDF nouvellement créé par le code ci-dessus :

Prizm Hdr Ftr related to 6.2. PrizmDoc Viewer PDF En-tête et pied de page

6.3. Comparaison des codes d'en-tête et de pied de page des PDF

Nous pouvons constater qu'IronPDF offre plus de fonctions pour définir les propriétés de l'en-tête et du pied de page avec une structure de programmation simple que PrizmDoc Viewer. Il est également suggéré que le fichier PDF généré par IronPDF est plus lisible et plus attrayant que le fichier généré par PrizmDoc Viewer.


7. Convertir des pages PDF en images

Examinons un autre cas d'utilisation : nous avons un fichier PDF simple nommé Sample_PDF.pdf qui contient seulement 2 pages.

Page1Page2
Page 1 related to 7. Convertir des pages PDF en images
Page 1 related to 7. Convertir des pages PDF en images

Et nous devons créer une image de chaque page. Nous verrons tout d'abord comment effectuer cette tâche avec IronPDF.

7.1. IronPDF Convertir PDF en Image

/**
PDF to Image
anchor-ironpdf-convert-pdf-to-image
**/
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");
}
/**
PDF to Image
anchor-ironpdf-convert-pdf-to-image
**/
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");
}
'''
'''PDF to Image
'''anchor-ironpdf-convert-pdf-to-image
'''*
Imports IronPdf
Shared Sub Main(ByVal args() As String)
	'specify file to be converted
	Dim pdf = PdfDocument.FromFile("Sample_PDF.pdf")
	'save images to the target location
	pdf.RasterizeToImageFiles("image_*.png")
End Sub
$vbLabelText   $csharpLabel

Sortie :

Le code ci-dessus créera les deux images .png suivantes :

Page1 ImagePage2 Image
Iron Generated Image1 related to 7.1. IronPDF Convertir PDF en Image
Iron Generated Image2 related to 7.1. IronPDF Convertir PDF en Image

Nous pouvons voir à quel point il est simple de créer une image de chaque page PDF à l'aide d'IronPDF. Nous allons maintenant effectuer la même tâche en utilisant PrizmDoc Viewer.

7.2. PrizmDoc Viewer PDF vers Image

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("https://api.accusoft.com", "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("https://api.accusoft.com", "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
Shared Sub Main(ByVal args() As String)
	PdfToImage().GetAwaiter().GetResult()
End Sub
Private Shared Async Function PdfToImage() As Task
	'instantiate PrizmDocServerClient object
	Dim prizmDocServer = New PrizmDocServerClient("https://api.accusoft.com", "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 i
End Function
$vbLabelText   $csharpLabel

Sortie :

Le code ci-dessus créera également les deux images .png suivantes :

Page1Page2
Prizm Generated Image1 related to 7.2. PrizmDoc Viewer PDF vers Image
Prizm Generated Image2 related to 7.2. PrizmDoc Viewer PDF vers Image

7.3. Comparaison du code de conversion des PDF en images

Par rapport à PrizmDoc Viewer, IronPDF nous permet de créer facilement l'image de chaque page avec le moins de lignes de code possible, même sans itérer les pages.


8. Prix des licences

Les comparaisons ci-dessus montrent la structure technique et les fonctions des deux composants. Nous allons maintenant examiner les prix des licences des deux composants. C'est très important car nous faisons toujours de notre mieux pour répondre à nos besoins en utilisant le budget minimum.

8.1. Options de licence d'IronPDF

La licence IronPDF commence à partir de $749 pour un seul projet avec un développeur.

Si vous êtes ingénieur dans une entreprise ou une agence qui fournit du travail à plusieurs clients, les licences commencent à 699 $ et peuvent être ajustées en fonction de la taille de l'équipe et du nombre de projets.

La licence suivante ne nécessite qu'un paiement unique.

Number of DevelopersPrice
1-5$699
6-10$799
11-20$899
21-50$999
Unlimited$1,199
  • Pour les entreprises ayant plusieurs sites, la licence commence à partir de 1 199 $.
  • Pour les services SaaS, les licences commencent à partir de $1099.
  • Pour la redistribution OEM libre de droits, les licences commencent à partir de 1599 $.

    Note : Tous les packs de licence ci-dessus sont accompagnés d'1 an de support et de mises à jour.

    En savoir plus sur tous les forfaits de licence proposés d'IronPDF.

8.2. Options de licence de PrizmDoc Viewer

Option d'auto-hébergement

Si vous gérez votre propre serveur, le prix de la licence est de 7 900 $/An avec le support standard.

En savoir plus sur toutes les informations fournies concernant les packages de PrizmDoc Viewer.

Option basée sur l'informatique en nuage

Cette licence couvre les services de PrizmDoc Viewer basés sur le cloud, qui sont mis à l'échelle sur la base du nombre de transactions.

Terminologies :

Transaction signifie que nous atteignons le serveur PrizmDoc Viewer et obtenons le résultat (document résultant).

Prepaid Buckets signifie que vous payez une fois et obtenez les transactions, qui n'expirent pas.

$liteLicense

Tutoriel Accès rapide

Html To Pdf Icon related to Tutoriel Accès rapide

Obtenez le manuel de démarrage rapide d'IronPDF C#

Nous avons créé un guide de ressources PDF gratuit pour faciliter le développement de PDF pour .NET, avec des présentations de fonctions courantes et des exemples de manipulation, d'édition, de génération et d'enregistrement de PDF en C# et VB.NET pour votre projet.

Télécharger le guide

Explorer la référence de l'API IronPDF

Explorez la référence API de la bibliothèque C# d'IronPDF, y compris les détails de toutes les fonctionnalités, classes, champs de méthodes, espaces de noms et enums d'IronPDF.

Voir la Référence de l'API
Documentation related to Tutoriel Accès rapide
Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.
< PRÉCÉDENT
Comparaison d'exemples et de tutoriels PDFSharp HTML vers PDF
SUIVANT >
Comparaison entre IronPDF et PDFCrowd