在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
便携式文件格式 (PDF) 是一种最受欢迎的文档格式,用于在单一文档中表示文本、链接、按钮、图形等内容。 在 C# 编程语言中操作 PDF 几乎不可能,除非使用 C# 的 PDF API。 在本文中,我们将探讨如何使用两种不同的API来交互和操作PDF文档,并比较这两种API在性能、功能和许可方面的差异。
我们将在本文中讨论的PDF API包括:
IronPDF是一个强大的HTML到PDF转换API。 IronPDF是在.NET和.NET Core开发中转换HTML站点的理想解决方案。 它不仅转换HTML,还具有多种附加功能。 IronPDF允许开发人员在.NET Core和.NET Framework项目中创建、修改和检索PDF文档。 使用 IronPDF 包,开发者可以轻松地从 HTML 页面生成或修改 PDF 文件。
PDF可以轻松编辑、加盖印章以及添加页眉和页脚。 它还极大地简化了阅读PDF文本和提取图片的过程。 IronPDF 使用 .NET Chromium 引擎将 HTML 页面渲染为 PDF 文件。
该功能包括从 HTML、HTML 字符串、MVC 视图、Web 表单和 URL 等不同格式创建 PDF。
这使用户能够从PDF文件创建图像,也能从图像创建PDF文件。 它包括图像提取、支持不同的图像扩展名和 PDF 打印。
IronPDF还提供了128位加密、密码锁定和数字签名的功能。
IronPDF 的此功能提供了所有类型的 PDF 格式设置,例如添加水印、添加页面、删除页面、添加背景、添加前景等等。 简而言之,IronPDF 为您提供操作 PDF 所需的所有功能。
在许多情况下,您可以直接从 PDF 中提取嵌入的文本。 如果那不起作用,您的文本可能实际上嵌入在图像中。 使用 IronOCR 库扫描文档中的视觉文本,而非纯文本。
在创建PDF时或向现有PDF添加内容时,可以添加页眉和页脚。 打印选项 "属性允许您为每个文档页面制作页眉和页脚。 访问 Chrome PDF 渲染器对象上的这些选项。 该示例在 .NET Core 控制台应用程序中运行。
IronPDF 支持几乎所有与 C# 兼容的操作系统和框架,包括以下系统:
PDFShift是一个HTML到PDF的转换API工具,使组织能够在几秒钟内将HTML页面转换为PDF。 通过基于云服务器的API工具,可提供并行转换、异步查询、原始HTML支持等功能。 PDFShift是一个易于使用的解决方案,支持包括Ruby、Python、JavaScript、Node和PHP在内的多种开发语言,以简化转换过程。
PDFShift允许客户设置自定义的页眉和页脚、应用自定义CSS、加密文件等,从而让企业完全控制他们的转换。
PDFShift支持并行转换,允许用户同时转换多个文档以提高转换速度。
创建自定义页眉和页脚,并添加页码,使用自定义CSS和JavaScript,加密您的文档等。
PDFShift支持将原始HTML转换为PDF,无需将页面公开。
PDFShift能在几秒钟内将HTML转换为高保真PDF文档。
要在转换完成时获得提醒,请使用我们的先进实时系统。 使用功能强大的PDFShift API将HTML转换为PDF,并仅用三行代码集成系统。
打开 Visual Studio 软件,进入 "文件 "菜单。 选择 "新项目",然后选择控制台应用程序。 在本文中,我们将使用控制台应用程序生成 PDF 文档。
在相应文本框中输入项目名称并选择路径。 然后,点击创建按钮。 选择所需的 .NET Framework,如下图所示:
Visual Studio 项目现在将为所选应用程序生成结构,如果您选择了控制台、Windows 和 Web 应用程序,它将打开 program.cs 文件,您可以在其中输入代码并构建/运行应用程序。
现在我们可以添加库并测试程序了。
IronPDF 库可以通过四种不同的方式下载和安装。 它们是
Visual Studio 软件提供了 NuGet 软件包管理器选项,可直接将软件包安装到解决方案中。 下面的截图显示了如何打开 NuGet 包管理器。
它提供了一个搜索框,显示 NuGet 网站上可用的软件包库列表。在软件包管理器中,我们需要搜索关键字 "IronPDF",如下截图所示
在上图中,我们可以看到搜索到的相关软件包列表。 我们需要选择 IronPDF 选项,并将软件包安装到我们的解决方案中。
在 Visual Studio 菜单中,依次选择 工具 > NuGet 包管理器 > 包管理控制台
在软件包管理器控制台选项卡中输入以下一行:
Install-Package IronPdf
现在,软件包将下载/安装到当前项目,并可随时使用。
第三种方法是直接从网页上下载 NuGet 软件包。
点击 链接 在此直接从网页下载最新软件包。 下载完成后,请按照以下步骤将软件包添加到项目中。
PDFShift 无法集成到项目中 — 它只能远程工作。 您需要使用 C# 的 RestClient 包,通过简单认证中的用户参数提供您的 API 密钥,以向 PDFShift 的 API 提交一个 POST 请求。 服务器接收您的请求,处理它,并返回输出文件,PDF 转换 API 的工作通过 HTTP POST 请求完成。PDFShift 提供多种语言的 API,并为所有这些语言提供远程工作支持。
这两种工具都包含 HTML 转换功能,只是转换方式略有不同。
使用 URL 在 C# 中创建 PDF 文件和上面的示例一样简单,只需这三行代码。 以下代码将演示如何从URL创建PDF文件。
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
// Create a PDF from a URL or local file path
using var pdf = Renderer.RenderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20");
// Export to a file or Stream
pdf.SaveAs("url.pdf");
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
// Create a PDF from a URL or local file path
using var pdf = Renderer.RenderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20");
// Export to a file or Stream
pdf.SaveAs("url.pdf");
Imports IronPdf
Private Renderer = New IronPdf.ChromePdfRenderer()
' Create a PDF from a URL or local file path
Private pdf = Renderer.RenderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20")
' Export to a file or Stream
pdf.SaveAs("url.pdf")
以下是上述代码的输出结果。
使用 IronPDF C# .NET 库将 HTML 转换为 PDF 非常简单。
var pdf = new ChromePdfRenderer();
PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>");
mypdf.SaveAs("FirstPDFDocument.pdf");
var pdf = new ChromePdfRenderer();
PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>");
mypdf.SaveAs("FirstPDFDocument.pdf");
Dim pdf = New ChromePdfRenderer()
Dim doc As PdfDocument = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>")
mypdf.SaveAs("FirstPDFDocument.pdf")
使用 PDFShift 转换 URL 非常容易。 您只需发送一个POST请求,并将source参数设置为URL,如下所示:
using System;
using RestSharp;
using Newtonsoft.Json;
using System.IO;
using RestSharp.Authenticators;
using RestSharp.Serialization;
using System.Net.Mail;
using System.Net;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
namespace PDFShiftExample
{
class Program
{
static void Main(string [] args)
{
IRestClient client = new RestClient("https://api.pdfshift.io/v3/convert/pdf");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
IRestRequest request = new RestRequest(Method.POST);
var json = new
{
source = "https://www.example.com"
};
request.AddJsonBody(json);
IRestResponse response = client.Execute(request);
if (!response.IsSuccessful)
{
// Check why status is not int 2xx.
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
using System;
using RestSharp;
using Newtonsoft.Json;
using System.IO;
using RestSharp.Authenticators;
using RestSharp.Serialization;
using System.Net.Mail;
using System.Net;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
namespace PDFShiftExample
{
class Program
{
static void Main(string [] args)
{
IRestClient client = new RestClient("https://api.pdfshift.io/v3/convert/pdf");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
IRestRequest request = new RestRequest(Method.POST);
var json = new
{
source = "https://www.example.com"
};
request.AddJsonBody(json);
IRestResponse response = client.Execute(request);
if (!response.IsSuccessful)
{
// Check why status is not int 2xx.
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
PDFShift 同样提供 HTML 到 PDF 的直接转换功能,但是从 HTML 文件中读取 HTML 内容。
namespace PDFShiftExample
{
class Program
{
static void Main(string [] args)
{
IRestClient client = new RestClient("https://api.pdfshift.io/v3/convert/pdf");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
IRestRequest request = new RestRequest(Method.POST);
string documentContent = File.ReadAllText("document.html");
var json = new
{
source = documentContent
};
request.AddJsonBody(json);
IRestResponse response = client.Execute(request);
if (!response.IsSuccessful)
{
// Check why status is not int 2xx.
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
namespace PDFShiftExample
{
class Program
{
static void Main(string [] args)
{
IRestClient client = new RestClient("https://api.pdfshift.io/v3/convert/pdf");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
IRestRequest request = new RestRequest(Method.POST);
string documentContent = File.ReadAllText("document.html");
var json = new
{
source = documentContent
};
request.AddJsonBody(json);
IRestResponse response = client.Execute(request);
if (!response.IsSuccessful)
{
// Check why status is not int 2xx.
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
在处理PDF文件时,添加页眉和页脚是必需的。 讨论中的两种工具都支持这个选项。
使用 IronPDF,您可以通过两种不同的方式添加页眉和页脚。
TextHeaderFooter 允许添加基于文本的页眉,可以选择合并动态数据。
HtmlHeaderFooter 允许开发者将 HTML 头部和尾部渲染到 PDF 文件中,同时也支持动态数据的模板化。 它更灵活但更难使用。
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a coverpage will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
Renderer.RenderingOptions.TextHeader.FontSize = 12;
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a coverpage will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
Renderer.RenderingOptions.TextHeader.FontSize = 12;
Imports IronPdf
Private Renderer = New IronPdf.ChromePdfRenderer()
Renderer.RenderingOptions.FirstPageNumber = 1 ' use 2 if a coverpage will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = True
Renderer.RenderingOptions.TextHeader.CenterText = "{url}"
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica
Renderer.RenderingOptions.TextHeader.FontSize = 12
您可以通过添加自定义页眉或页脚来定制生成的文档。 这些常用于标识当前页面或在每个页面上显示您公司的标志。
using System;
using RestSharp;
using Newtonsoft.Json;
using System.IO;
using RestSharp.Authenticators;
using RestSharp.Serialization;
using System.Net.Mail;
using System.Net;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
namespace PDFShiftExample
{
class Program
{
static void Main(string [] args)
{
IRestClient client = new RestClient("https://api.pdfshift.io/v3/convert/pdf");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
IRestRequest request = new RestRequest(Method.POST);
var json = new
{
source = "https://quillbot.com/",
footer = new { source = "<div style=\"font-size: 12px\">Page {{page}} of {{total}}</div>", spacing = "50px" }
};
request.AddJsonBody(json);
IRestResponse response = client.Execute(request);
if (!response.IsSuccessful)
{
// Check why status is not int 2xx.
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
using System;
using RestSharp;
using Newtonsoft.Json;
using System.IO;
using RestSharp.Authenticators;
using RestSharp.Serialization;
using System.Net.Mail;
using System.Net;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
namespace PDFShiftExample
{
class Program
{
static void Main(string [] args)
{
IRestClient client = new RestClient("https://api.pdfshift.io/v3/convert/pdf");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
IRestRequest request = new RestRequest(Method.POST);
var json = new
{
source = "https://quillbot.com/",
footer = new { source = "<div style=\"font-size: 12px\">Page {{page}} of {{total}}</div>", spacing = "50px" }
};
request.AddJsonBody(json);
IRestResponse response = client.Execute(request);
if (!response.IsSuccessful)
{
// Check why status is not int 2xx.
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
使用编程语言对PDF文件加水印是一项相当困难的任务。 IronPDF 和 PDFShift 都支持为 PDF 文件添加水印。
IronPDF 提供用 HTML 给 PDF 文档 "加水印 "的方法。 水印可设置为在现有内容的上方或下方呈现,并具有内置的不透明度、旋转和超链接功能。
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>", IronPdf.Editing.WaterMarkLocation.MiddleCenter, 50, -45, "https://www.nuget.org/packages/IronPdf");
Pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>", IronPdf.Editing.WaterMarkLocation.MiddleCenter, 50, -45, "https://www.nuget.org/packages/IronPdf");
Pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
Imports IronPdf
Private Renderer = New IronPdf.ChromePdfRenderer()
Private Pdf = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>", IronPdf.Editing.WaterMarkLocation.MiddleCenter, 50, -45, "https://www.nuget.org/packages/IronPdf")
Pdf.SaveAs("C:\Path\To\Watermarked.pdf")
用户需要在PDF上清晰地标识水印。
using System;
using RestSharp;
using Newtonsoft.Json;
using System.IO;
using RestSharp.Authenticators;
using RestSharp.Serialization;
using System.Net.Mail;
using System.Net;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
namespace PDFShiftExample
{
class Program
{
static void Main(string [] args)
{
IRestClient client = new RestClient("https://api.pdfshift.io/v3/convert/pdf");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
IRestRequest request = new RestRequest(Method.POST);
var json = new
{
source = "https://www.example.com",
watermark = new { image = "https://pdfshift-dev.netlify.com/images/logo/logo-violet.png", offset_x = 50, offset_y = "100px", rotate = 45 }
};
request.AddJsonBody(json);
IRestResponse response = client.Execute(request);
if (!response.IsSuccessful)
{
// Check why status is not int 2xx.
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
using System;
using RestSharp;
using Newtonsoft.Json;
using System.IO;
using RestSharp.Authenticators;
using RestSharp.Serialization;
using System.Net.Mail;
using System.Net;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
namespace PDFShiftExample
{
class Program
{
static void Main(string [] args)
{
IRestClient client = new RestClient("https://api.pdfshift.io/v3/convert/pdf");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
IRestRequest request = new RestRequest(Method.POST);
var json = new
{
source = "https://www.example.com",
watermark = new { image = "https://pdfshift-dev.netlify.com/images/logo/logo-violet.png", offset_x = 50, offset_y = "100px", rotate = 45 }
};
request.AddJsonBody(json);
IRestResponse response = client.Execute(request);
if (!response.IsSuccessful)
{
// Check why status is not int 2xx.
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}
Imports System
Imports RestSharp
Imports Newtonsoft.Json
Imports System.IO
Imports RestSharp.Authenticators
Imports RestSharp.Serialization
Imports System.Net.Mail
Imports System.Net
Imports System.Collections.Generic
Imports Newtonsoft.Json.Linq
Namespace PDFShiftExample
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim client As IRestClient = New RestClient("https://api.pdfshift.io/v3/convert/pdf")
client.Authenticator = New HttpBasicAuthenticator("api", "your_api_key")
Dim request As IRestRequest = New RestRequest(Method.POST)
Dim json = New With {
Key .source = "https://www.example.com",
Key .watermark = New With {
Key .image = "https://pdfshift-dev.netlify.com/images/logo/logo-violet.png",
Key .offset_x = 50,
Key .offset_y = "100px",
Key .rotate = 45
}
}
request.AddJsonBody(json)
Dim response As IRestResponse = client.Execute(request)
If Not response.IsSuccessful Then
' Check why status is not int 2xx.
Else
File.WriteAllBytes("result.pdf", response.RawBytes)
End If
End Sub
End Class
End Namespace
IronPDF是一个提供免费开发者许可的库。 IronPDF 还提供特别的价格结构:轻型套餐从 $749 开始,没有隐藏费用。 也可以重新分配 SaaS 和 OEM 产品。 所有许可证包括30天退款保证、一年的软件支持和升级服务、开发/测试/分期/生产环境的有效性,以及永久许可证。 (一次性购买). IronPDF 许可证为用户需求提供最大化的性能。 访问此链接查看 IronPDF 的完整定价结构和许可信息。
PDFShift PDF转换API提供五种不同的许可包,分别基于每月和每年的方式。 用于购买各种包的系统称为“积分”,具体细节如下:
商业 (每月 25,000 点数,收费 99 美元)
还有文件大小限制:免费套餐的每个文件限制为1MB,而其他套餐的每个文件限制为5MB。
欲了解更多信息和价格,请访问以下网站 链接.
IronPDF 是一款面向独立开发者的免费应用程序,提供多种功能和修改 PDF 文件以及将其转换为其他格式的能力。 IronPDF提供了最佳的PDF处理编辑和格式化工具。 它将HTML转换为PDF的结果转换为适用于高质量商业打印的矢量文件。 因此,您将获得一个清晰且高质量的PDF文件。 此网页包含许可和定价信息。
PDFShift 是一个将 HTML 转换为 PDF 的 API,具有高质量、高保真和强大的功能。 它提供了一个易于学习的端点,并配备了一系列工具,几乎包含了一整套功能,以及为多种语言设计的软件包。 PDFShift 使用 postMessage 向服务器发送请求,该服务器可以处理文档的并行转换 —— 这意味着您可以同时转换多个文档。
IronPDF的许可证是基于开发者的,这意味着您应该根据将使用该产品的开发者数量购买许可证。 PDFShift许可证是基于每月和每年的积分制的,这意味着根据您订阅的套餐,每月将获得特定的积分。 IronPDF 支持 OME 和 SaaS 分发,而 PDFShift 则不支持。 IronPDF 许可证是一次性购买,您可以终身使用,而 PDFShift 提供每月和每年的许可证。
在快速比较了这两个工具之后,我们可以得出结论,IronPDF库提供的功能远比PDFShift多。 PDFShift仅提供了少量用于操作PDF的功能。 IronPDF仅需三行代码即可将URL转换为PDF,但PDFShift需要更多行代码才能执行相同的任务。 集成 IronPDF 非常简单,只需几分钟即可完成。 PDFShift采用基于云的系统运行,无需集成; 然而,它确实依赖于其他API,例如Rest Sharp,因此,实际上这是一个复杂的过程。
此外,Iron Software 目前仅以两件套的价格提供五件工具包。Iron Suite 中包括的工具有:
IronWebScraper
请访问此链接以探索 铁匠套房.