产品比较 Accusoft Prizmdoc PDF 查看器教程和比较 Curtis Chau 已更新:八月 20, 2025 Download IronPDF NuGet 下载 DLL 下载 Windows 安装程序 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article Accusoft PDF Viewer 为 .NET 提供 HTML 转 PDF 功能以及其他 PDF 编辑和操作任务。 IronPDF 还能以编程方式完成这些相同的任务,为您的 C# 项目节省时间和精力。 让我们比较一下这两种翻译,看看哪种最适合您的项目。 IronPDF 与 Accusoft PDF Viewer 的比较 将 HTML 转换为 PDF 为 PDF 设置页眉和页脚将 PDF 转换为图像文件比较许可、免费试用选项等 。 概述关于 IronPdf. [IronPDF](/tutorials/html-to-pdf/) 是一个 C# HTML 转 PDF 库。 它使工程师能够完成的任务包括从 HTML 字符串、WebPage、URL 等来源创建 PDF 文件,以及设置水印、书签、页眉和页脚等属性。我们还可以将多个 PDF 文件合并为一个文件,或将 PDF 页面转换为图像,反之亦然。 它可免费用于开发,并提供 30 天的部署试用期,以便您的项目上线。 You can download a file project from this link. 关于 Accusoft PrizmDoc Viewer [PrizmDoc Viewer](https://www.accusoft.com/products/prizmdoc-suite/prizmdoc-viewer-pdf/) 是一个 REST API,用于远程处理 PDF 文件并将其转换为其他格式。 PrizmDoc 可以将 100 多种不同格式的文件转换为 PDF,并将 PDF 转换为 PNG、JPG、TIFF 和 SVG。 它还可用于在应用程序中加入不同类型的电子签名选项。 比较表 IronPdf。 PrizmDoc Viewer 以编程方式处理 PDF 文件。 以编程方式处理 PDF 文件。 以编程方式处理 PDF 文件。 支持 Windows、Mac 或 Linux 的 .NET Core。 支持使用 Windows、Mac 或 Linux 的 .NET Core。 在本地工作 在本地工作 将文档发送到远程服务器。 将文档发送到远程服务器。 使用或不使用异步编程。 必须使用 "System.Threading.Tasks "进行异步编程。 一旦我们在系统中安装 IronPdf,即可轻松实现脱机工作。 必须连接互联网才能向 PrizmDoc Viewer 服务器(云托管或自托管)发送请求。 提供许多预定义功能。 提供一些预定义函数。 提供一些预定义函数。 通常只需要最少行代码。 通常需要多行代码。 通常需要多行代码。 在每个许可计划中,每个项目的转换次数不受限制。 每个云托管许可计划中的事务数量有限。 免费用于开发,无时间限制。 仅试用 300 次交易。 第 1 步:安装。 ## 1.安装 IronPdf 库。 在您的项目中安装 IronPDF 有两种方法,采用哪种方法都一样。 ### 1.1.下载 IronPdf DLL. [下载 IronPDF.dll](download-modal),并将其引用添加到您的项目中。 之后,您可以通过以下方式轻松访问命名空间 `IronPdf` : ```csharp using IronPdf; ``` 现在,您可以轻松访问 IronPdf 提供的功能和类。 1.2 通过 NuGet 软件包管理器安装 从 Accusoft 安装 PrizmDoc Viewer PrizmDoc Viewer 分为两部分,一部分是服务器端,称为 `PrizmDoc Server`,其行为类似于 Restful API。 另一个是我们的项目,通过该项目,我们点击 API 并获得响应。 访问 PrizmDoc 服务器 正如我们从其名称中看到的,它是一个服务器端应用程序,以请求(输入)的形式获取文档的基本信息,并将文档转换为 PDF 文件,然后以响应(输出)的形式将转换后的 PDF 文件发送给客户端。 它是产品的技术核心,是一个文档处理和转换引擎。我们可以通过两种不同的方式使用它,采用哪种方式并无区别,因为两者具有相同的编程结构和技术: 1.自行托管:云托管: Accusoft 工作结构 在本示例中,我们将把 `myWebpage.html` 文件转换为 `sample.pdf` 文件。 **注意:**我们必须安装 `Newtonsoft.Json` 库,并在项目中添加其引用。 首先,将以下库添加到您的项目中: ```csharp 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 ``` 然后创建一个公共变量 `Accusoft API Key`,并将您的 API Key 粘贴到其中,如下所示: ```csharp static string ApiKey = "Your-API-KEY"; ``` 使用 PrizmDoc Viewer 处理 PDF 文件有 3 个步骤: 1.将文件上传到 PrizmDoc 服务器。 2.转换上传的文件。 3.从 PrizmDoc 服务器下载转换后的文件。 因此,我们将为每个步骤制作一个单独的功能。 ```csharp static void Main(string[] args) { //---Upload file to Server--- JObject uploadResults = UploadToServer("myWebpage.html").Result; string fileID = (string)uploadResults.SelectToken("fileId"); string affinityToken = (string)uploadResults.SelectToken("affinityToken"); //---Convert the uploaded file to PDF--- JObject convertResults = Convert(affinityToken, fileID).Result; string processId = (string)convertResults.SelectToken("processId"); affinityToken = (string)convertResults.SelectToken("affinityToken"); //---Check the status that conversion is completed--- JObject convertStatusResults = ConvertStatus(processId, affinityToken).Result; string convertStatus = (string)convertStatusResults.SelectToken("state"); //---Continuously checking whether conversion completed--- while (!(convertStatus.Equals("complete"))) { System.Threading.Thread.Sleep(30000); convertStatusResults = ConvertStatus(processId, affinityToken).Result; convertStatus = (string)convertStatusResults.SelectToken("state"); } //---Download the converted file from server--- string newFileID = (string)convertStatusResults.SelectToken("output.results[0].fileId"); DownloadFromServer(affinityToken, newFileID, "sample.pdf").Wait(); Console.WriteLine("PDF file created successfully...!"); Console.ReadKey(); } ``` **1.将文件上传到服务器:** 2. ```csharp public static async Task 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("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 = Encoding.ASCII.GetString(results); return JObject.Parse(getResult); } } } ``` 2.将上传的文件转换为 PDF: 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); } } ``` 下面的 JSON 是 `myJson` 对象的结果值: ```json { "input": { "sources": [ {"fileId": "Auto Generated FileId Value"} ], "dest": { "format": "pdf" } } } ``` **检查转换是否完成**。 ```csharp public static async Task 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); } } ``` 3.从服务器下载转换后的文件安装 Accusoft.PrizmDocServerSDK. 有两种安装包装器的方法。 * 软件包管理器控制台: 如果您使用的是软件包管理器控制台,请运行以下命令: ```shell Install-Package Accusoft.PrizmDocServerSDK ``` * 管理解决方案的软件包: 如果您使用的是 NuGet Package Manager 的图形用户界面,那么请在搜索栏中浏览 `Accusoft.PrizmDocServerSDK` 并进行安装。 现在,您可以轻松访问 `Accusoft.PrizmDocServer` 命名空间,并通过访问来使用它: ```csharp using Accusoft.PrizmDocServer; ``` 如何使用教程。 2.IronPDF 与 PrizmDoc Viewer 代码对比 3.将 HTML 转换为 PDF 文件debug`* 文件夹中。 您也可以像这样指定任何路径:<代码>PDF.SaveAs("E:/sample.pdf");代码 [Read>3.3.HTML 到 PDF 代码比较 ## 4.图像到 PDF. 在本对比中,我们以需要通过 [Image](https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png) 创建 PDF 文件为例,该文件存在于项目的 `debug` 文件夹中。 让我们从 IronPdf 开始。 ### 4.1.IronPDF Image to PDF. ```csharp 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"); } ``` 输出: 输出: 4.3.图像到 PDF 代码比较 5.合并 PDF 文件5.1.IronPDF 合并 PDF 文件(); 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(); } } ``` 上述代码将创建一个 `sample.pdf` 文件,它是 `A.pdf`, `B.pdf` 和 `C.pdf` 的组合。 现在,我们将使用 PrizmDoc Viewer 完成同样的任务。 5.2.PrizmDoc Viewer 合并 PDF 文件 6.PDF页眉和页脚 Hello World..! Main Menu SubMenu 1 SubMenu 2 SubMenu 3 SubMenu 4 SubMenu 5