在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
如果你想将 HTML 网站转换成其他格式,那你就找对地方了。本文将讨论如何将 HTML、CSS 和 JS 转换为 PDF。如今,一切都以技术为基础,而这些技术的工程师需要省时的解决方案--使用最常用的编程语言之一,.NET 的 C#。在 C# 中,处理和操作 PDF 文件的传统方法既复杂又耗时。PDF 文件最常见的用途有
人们开发了许多工具来处理这些 PDF 转换和出现的任何问题。本文将比较开发人员最推崇的两个用于 PDF 转换的 C# 库。相关工具如下:
IronPDF 是.NET 和 .NET core 开发中转换 HTML 网站的理想工具。它不仅能转换 HTML,还能提供许多其他功能。在 .NET Core 和框架项目中,IronPDF 允许开发人员生成、修改和提取 PDF 文档。开发人员可以使用 IronPDF 库从 HTML 文档快速创建或转换 PDF。
IronPDF 允许您自动读取 PDF 文件中的信息,并将其注入到您的 .NET 应用程序和数据存储系统中。旧的 PDF 文档存储中的内容可以导入、迁移和索引到您的文档管理和业务流程应用程序中。
__2.1.1.PDF 转换___
该功能包括从 HTML、HTML 字符串、MVC 视图、Web 表单和 URL 等不同格式创建 PDF。
__2.1.2.PDF 成像___
它允许用户从 PDF 和 创建 PDF 从图像中提取。它包括图像提取、支持不同的图像扩展名和 PDF 打印。
2.1.3.PDF 文件 IO
IronPDF 还为 PDF 提供 128 位加密、用密码锁定 PDF 和对 PDF 进行数字签名等功能。
__2.1.4.编辑 PDF 文件___
IronPDF 的这一功能提供所有类型的 PDF 格式化,如添加水印、添加页面、删除页面、背景、前景等。简而言之,IronPDF 提供了所有你能想到的 PDF 处理功能。
__2.1.5.PDF 内容提取___
在许多情况下,您可以直接提取 PDF 中的嵌入文本。如果这不起作用,那么你的阅读器很可能实际上是嵌入在图像中的。使用 IronOCR 库扫描文档以获取可视文本,而不是纯文本。
__2.1.6.页眉和页脚___
创建 PDF 时可以添加页眉和页脚,也可以添加到现有的 PDF 中。打印选项属性允许您为每个文档页面制作页眉和页脚。访问 Chrome PDF 渲染器对象上的这些选项。本示例在 .NET Core 控制台应用程序中运行。
__2.1.7.兼容性___
IronPDF 支持几乎所有与 C# 兼容的操作系统和框架,例如
支持Windows, Azure
.NET Core 2.1、3.0、3.1、.NET 6 & 5
符合 .NET 标准 2.0,具有普遍兼容性
Azure
AWS
Docker
DocRaptor 是一款专业的文档转换解决方案,但与 IronPDF 不同的是,它为多种编程词典提供的功能有限。它是一款基于 API 的工具,可与任何语言集成。它质量高、速度快,从而节省了你的时间。它还提供将 XML 文件转换为 XLSX 的功能。
DocRaptor 可为你托管文档。它支持 CSS 和 JS。对于没有自己服务器的小型企业来说,这些都是极好的功能。
__3.1.1.HTML 到 PDF 的生成___
DocRaptor 可将 HTML、CSS 和 JS 快速直接地生成 PDF 和 XLS 文档。只需将 HTML 内容和所需参数以表单编码文本或 JSON 对象的形式发布到 Docs API。
__3.1.2 HTML 转换为 Excel 格式___
许多报告和数据导出都需要 PDF 和 Excel 的支持。DocRaptor 基于 HTML 的工具可以轻松做到这一点!
__3.1.3.文件托管___
文档将保存在无品牌 URL 上,任何人都可以从任何地方访问。您可以将其无限期保存在那里,也可以在特定日期或下载量之后将其删除。
注:
根据从 NuGet 另一方面,DocRaptor 的总下载量仅为 114.9 K 次,日均下载量为 51 次。
打开 Visual Studio 软件,进入文件菜单。选择 "新建项目",然后选择控制台应用程序。在本文中,我们将使用控制台应用程序生成 PDF 文档。
在相应的文本框中输入项目名称并选择路径。然后点击创建按钮。选择所需的 .NET 框架,如下图所示:
Visual Studio 项目现在将为所选应用程序生成结构,如果您选择了控制台、Windows 和 Web 应用程序,它将打开 program.cs 文件,您可以在其中输入代码并构建/运行应用程序。
现在我们可以添加库并测试程序了。
IronPDF 库可以通过四种不同方式下载和安装。它们是
Visual Studio 软件提供了 NuGet 包管理器选项,可直接将软件包安装到解决方案中。下面的截图显示了如何打开 NuGet 包管理器。
它提供了一个搜索框,显示 NuGet 网站上可用的软件包库列表。在软件包管理器中,我们需要搜索关键字 "IronPDF",如下图所示:
从上图中,我们将看到相关软件包的搜索列表。我们需要选择 IronPDF 选项并安装该软件包。
Install-Package IronPdf
现在,软件包将下载/安装到当前项目,并可随时使用。
第三种方法是直接从网页下载 NuGet 软件包。
点击 链接 这里直接从网页下载最新软件包。下载完成后,请按照以下步骤将软件包添加到项目中。
DocRaptor 团队提供几乎所有相同的方法来集成 API。这些方法是
与之前对 IronPDF 的解释一样,打开 NuGet 包管理器的步骤也是一样的。
打开软件包管理器后,只需在搜索栏中写入 DocRaptor 即可。
如上图所示,DocRaptor 有三个结果。选择所需的选项。
在 Visual Studio 菜单中,转到 Tools-> NuGet Package manager -> Package manager Console。在软件包管理器控制台选项卡中输入以下一行:install-Package DocRaptor。现在,软件包将下载/安装到当前项目并准备就绪。
第三种方法是直接从网页上下载 NuGet 软件包。
这两款工具都包含 HTML 转换功能,只是转换方式略有不同。
使用 IronPDF 转换页面不需要使用 JSON 和加密技术,实际上非常简单。IronPDF 允许使用多种不同的方法。例如
var Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").SaveAs("pixel-perfect.pdf");
var Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").SaveAs("pixel-perfect.pdf");
Dim Renderer = New IronPdf.ChromePdfRenderer()
Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").SaveAs("pixel-perfect.pdf")
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
Pdf.SaveAs("url.pdf");
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
Pdf.SaveAs("url.pdf");
Dim Renderer As New IronPdf.ChromePdfRenderer()
Dim Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/")
Pdf.SaveAs("url.pdf")
private void Form1_Load(object sender, EventArgs e)
{
IronPdf.AspxToPdf.RenderThisPageAsPdf();
//Changes the ASPX output into a pdf instead of HTML
}
private void Form1_Load(object sender, EventArgs e)
{
IronPdf.AspxToPdf.RenderThisPageAsPdf();
//Changes the ASPX output into a pdf instead of HTML
}
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
IronPdf.AspxToPdf.RenderThisPageAsPdf()
'Changes the ASPX output into a pdf instead of HTML
End Sub
DocRaptor 使用支持 JSON 的 HTTP post 请求处理转换,但只提供将 URL 和 HTML 文件转换为 PDF 的功能。
using DocRaptor.Client;
using DocRaptor.Model;
using DocRaptor.Api;
using System.IO;
class Example {
tatic void Main(string [] args) {
DocApi docraptor = new DocApi();
docraptor.Configuration.Username = "YOUR_API_KEY_HERE";
Doc doc = new Doc(
test: true,
//documentContent: System.IO.File.ReadAllText(@"custom-fonts- content.html"),
documentUrl: "http://www.docraptor.com/examples/invoice.html",
name: "docraptor-csharp.pdf",
documentType: Doc.DocumentTypeEnum.Pdf
);
yte [] createResponse = docraptor.CreateDoc(doc);
}
using DocRaptor.Client;
using DocRaptor.Model;
using DocRaptor.Api;
using System.IO;
class Example {
tatic void Main(string [] args) {
DocApi docraptor = new DocApi();
docraptor.Configuration.Username = "YOUR_API_KEY_HERE";
Doc doc = new Doc(
test: true,
//documentContent: System.IO.File.ReadAllText(@"custom-fonts- content.html"),
documentUrl: "http://www.docraptor.com/examples/invoice.html",
name: "docraptor-csharp.pdf",
documentType: Doc.DocumentTypeEnum.Pdf
);
yte [] createResponse = docraptor.CreateDoc(doc);
}
Imports DocRaptor.Client
Imports DocRaptor.Model
Imports DocRaptor.Api
Imports System.IO
Friend Class Example
Private tatic Sub Main(ByVal args() As String)
Dim docraptor As New DocApi()
docraptor.Configuration.Username = "YOUR_API_KEY_HERE"
Dim doc As New Doc(test:= True, documentUrl:= "http://www.docraptor.com/examples/invoice.html", name:= "docraptor-csharp.pdf", documentType:= Doc.DocumentTypeEnum.Pdf)
Dim createResponse() As yte = docraptor.CreateDoc(doc)
End Sub
IronPDF 和 DocRaptor 都支持 PDF 格式化。不过,IronPDF 支持单个文件,而 DocRaptor 支持多个文件。
为了确保输出 PDF 的预期行为,我们在文章中使用了不同的格式样式,我们将讨论其中一些样式,并与 DocRaptor 进行比较。
IronPDF 支持 WebFonts,包括令人难以置信的 Google 字体库。这样,开发人员就可以完全控制字体,而无需依赖系统字体。
using IronPdf;
ChromePdfRenderer myChromePdfRenderer = new IronPdf.ChromePdfRenderer();
var Renderer = new IronPdf.ChromePdfRenderer();
var html = @"<link href=""https://fonts.googleapis.com/css?family=Lobster""
rel=""stylesheet""><p style=""font-family: 'Lobster', serif; font-size:30px;"" > Hello Google Fonts</p>";
Renderer.RenderingOptions.RenderDelay = 500;
var doc = Renderer.RenderHtmlAsPdf(html);
doc.SaveAs("font.pdf");
using IronPdf;
ChromePdfRenderer myChromePdfRenderer = new IronPdf.ChromePdfRenderer();
var Renderer = new IronPdf.ChromePdfRenderer();
var html = @"<link href=""https://fonts.googleapis.com/css?family=Lobster""
rel=""stylesheet""><p style=""font-family: 'Lobster', serif; font-size:30px;"" > Hello Google Fonts</p>";
Renderer.RenderingOptions.RenderDelay = 500;
var doc = Renderer.RenderHtmlAsPdf(html);
doc.SaveAs("font.pdf");
Imports IronPdf
Private myChromePdfRenderer As ChromePdfRenderer = New IronPdf.ChromePdfRenderer()
Private Renderer = New IronPdf.ChromePdfRenderer()
Private html = "<link href=""https://fonts.googleapis.com/css?family=Lobster""
rel=""stylesheet""><p style=""font-family: 'Lobster', serif; font-size:30px;"" > Hello Google Fonts</p>"
Renderer.RenderingOptions.RenderDelay = 500
Dim doc = Renderer.RenderHtmlAsPdf(html)
doc.SaveAs("font.pdf")
IronPDF 提供了用 HTML 为 PDF 文档添加 "水印 "的方法。水印可设置在现有内容的上方或下方,并具有不透明度、旋转和超链接等内置功能。
using IronPdf;
// Stamps a watermark onto a new or existing PDF
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
var Pdf = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>", ronPdf.Editing.WaterMarkLocation.MiddleCenter, 50, -45, "https://www.nuget.org/packages/IronPdf");
Pdf.SaveAs(@"C:\Path\To\Watermarked.pdf
using IronPdf;
// Stamps a watermark onto a new or existing PDF
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
var Pdf = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>", ronPdf.Editing.WaterMarkLocation.MiddleCenter, 50, -45, "https://www.nuget.org/packages/IronPdf");
Pdf.SaveAs(@"C:\Path\To\Watermarked.pdf
Imports IronPdf
' Stamps a watermark onto a new or existing PDF
Private Renderer As New IronPdf.ChromePdfRenderer()
Private Pdf = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>", ronPdf.Editing.WaterMarkLocation.MiddleCenter, 50, -45, "https://www.nuget.org/packages/IronPdf")
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Pdf.SaveAs("TangibleTempVerbatimOpenTagC:\Path\To\Watermarked.pdf
IronPDF 的 "页眉和页脚 "功能允许我们合并有关页码的信息。
// PM> Install-Package IronPdf
using IronPdf;
var html = @"
<p> Hello Iron</p>
<p> This is 1st Page </p>
<div style = 'page-break-after: always;' ></div>
<p> This is 2nd Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 3rd Page</p>";
var Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderingOptions.HtmlFooter = new IronPdf.HtmlHeaderFooter()
{
MaxHeight = 15, //millimeters
HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
DrawDividerLine = true
};
var pdfdoc = Renderer.RenderHtmlAsPdf(html);
pdfdoc.SaveAs("pageNumber.pdf");
// PM> Install-Package IronPdf
using IronPdf;
var html = @"
<p> Hello Iron</p>
<p> This is 1st Page </p>
<div style = 'page-break-after: always;' ></div>
<p> This is 2nd Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 3rd Page</p>";
var Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderingOptions.HtmlFooter = new IronPdf.HtmlHeaderFooter()
{
MaxHeight = 15, //millimeters
HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
DrawDividerLine = true
};
var pdfdoc = Renderer.RenderHtmlAsPdf(html);
pdfdoc.SaveAs("pageNumber.pdf");
' PM> Install-Package IronPdf
Imports IronPdf
Private html = "
<p> Hello Iron</p>
<p> This is 1st Page </p>
<div style = 'page-break-after: always;' ></div>
<p> This is 2nd Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 3rd Page</p>"
Private Renderer = New IronPdf.ChromePdfRenderer()
Renderer.RenderingOptions.HtmlFooter = New IronPdf.HtmlHeaderFooter() With {
.MaxHeight = 15,
.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
.DrawDividerLine = True
}
Dim pdfdoc = Renderer.RenderHtmlAsPdf(html)
pdfdoc.SaveAs("pageNumber.pdf")
DocRaptor 在 .NET API 中支持 PDF 格式化,但处理起来相当困难。让我们看看之前的三个格式化示例:
在 DocRaptor 中使用自定义字体非常简单。使用方法与标准网页相同。下面是一个使用 Google 字体的 CSS 示例:
CSS 编码:
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
src: local('Open Sans Light'), local('OpenSans-Light'), url(http://themes.googleusercontent.com/static/fonts/opensans/v8/DXI1ORHCpsQm3Vp6mXoaTaRDOzjiPcYnFooOUGCOsRk.woff) format('woff');
}
p {
font-family: Arial, Helvetica, sans-serif;
}
p.custom-font {
font-family: 'Open Sans', sans-serif;
}
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
src: local('Open Sans Light'), local('OpenSans-Light'), url(http://themes.googleusercontent.com/static/fonts/opensans/v8/DXI1ORHCpsQm3Vp6mXoaTaRDOzjiPcYnFooOUGCOsRk.woff) format('woff');
}
p {
font-family: Arial, Helvetica, sans-serif;
}
p.custom-font {
font-family: 'Open Sans', sans-serif;
}
HTML 编码:
<h2>Custom Fonts</h2>
<p>Hi, my name is Arial.</p>
<p class='custom-font'>I like to walk on the beach on warm Open Sans.</p>
<h2>Custom Fonts</h2>
<p>Hi, my name is Arial.</p>
<p class='custom-font'>I like to walk on the beach on warm Open Sans.</p>
C# 编码:
class Example
{
static void Main(string [] args)
{
DocApi docraptor = new DocApi();
docraptor.Configuration.Username = "YOUR_API_KEY_HERE";
try
{
Doc doc = new Doc(
name: "custom-fonts",
test: true, // test documents are free but watermarked
documentContent: System.IO.File.ReadAllText(@"custom-fonts-content.html"),
/ documentUrl: "http://docraptor.com/examples/invoice.html", // or use a url
documentType: Doc.DocumentTypeEnum.Pdf
// javascript: false, // enables rocessing
);
byte [] create_response = docraptor.CreateDoc(doc);
File.WriteAllBytes("custom-fonts.pdf", create_response);
} catch (DocRaptor.Client.ApiException error) {
Console.Write(error.ErrorContent);
}
}
}
class Example
{
static void Main(string [] args)
{
DocApi docraptor = new DocApi();
docraptor.Configuration.Username = "YOUR_API_KEY_HERE";
try
{
Doc doc = new Doc(
name: "custom-fonts",
test: true, // test documents are free but watermarked
documentContent: System.IO.File.ReadAllText(@"custom-fonts-content.html"),
/ documentUrl: "http://docraptor.com/examples/invoice.html", // or use a url
documentType: Doc.DocumentTypeEnum.Pdf
// javascript: false, // enables rocessing
);
byte [] create_response = docraptor.CreateDoc(doc);
File.WriteAllBytes("custom-fonts.pdf", create_response);
} catch (DocRaptor.Client.ApiException error) {
Console.Write(error.ErrorContent);
}
}
}
Friend Class Example
Shared Sub Main(ByVal args() As String)
Dim docraptor As New DocApi()
docraptor.Configuration.Username = "YOUR_API_KEY_HERE"
Try
Dim doc As New Doc(name:= "custom-fonts", test:= True, documentContent:= System.IO.File.ReadAllText("custom-fonts-content.html"), / documentUrl:= "http://docraptor.com/examples/invoice.html", documentType:= Doc.DocumentTypeEnum.Pdf)
Dim create_response() As Byte = docraptor.CreateDoc(doc)
File.WriteAllBytes("custom-fonts.pdf", create_response)
Catch [error] As DocRaptor.Client.ApiException
Console.Write([error].ErrorContent)
End Try
End Sub
End Class
输出
很多 PDF 文件上都可能有水印。幸运的是,DocRaptor 的 HTML-PDF 工具有助于轻松创建动态生成的水印文档!
CSS 编码:
#watermark {
flow: static(watermarkflow);
font-size: 120px;
opacity: 0.5;
transform: rotate(-30deg);
text-align: center;
}
#watermark {
flow: static(watermarkflow);
font-size: 120px;
opacity: 0.5;
transform: rotate(-30deg);
text-align: center;
}
HTML 编码:
<body><div id="watermark">PREVIEW</div>
<div style="page-break-after: always;">Page 1</div>
<div style="page-break-after: always;">Page 2</div>
<div style="page-break-after: always;">Page 3</div>
</body>
<body><div id="watermark">PREVIEW</div>
<div style="page-break-after: always;">Page 1</div>
<div style="page-break-after: always;">Page 2</div>
<div style="page-break-after: always;">Page 3</div>
</body>
C# 编码:
class Example
{
static void Main(string [] args)
{
DocApi docraptor = new DocApi();
docraptor.Configuration.Username = "YOUR_API_KEY_HERE";
try
{
Doc doc = new Doc(
name: "text-based-watermark",
test: false, // test documents are free but watermarked
documentContent: System.IO.File.ReadAllText(@"text-based-watermark-content.html"),
// documentUrl: "http://docraptor.com/examples/invoice.html", // or use a url
documentType: Doc.DocumentTypeEnum.Pdf
// javascript: false, // enables processing
);
byte [] create_response = docraptor.CreateDoc(doc);
File.WriteAllBytes("text-based-watermark.pdf", create_response);
} catch (DocRaptor.Client.ApiException error) {
Console.Write(error.ErrorContent);
}
}
class Example
{
static void Main(string [] args)
{
DocApi docraptor = new DocApi();
docraptor.Configuration.Username = "YOUR_API_KEY_HERE";
try
{
Doc doc = new Doc(
name: "text-based-watermark",
test: false, // test documents are free but watermarked
documentContent: System.IO.File.ReadAllText(@"text-based-watermark-content.html"),
// documentUrl: "http://docraptor.com/examples/invoice.html", // or use a url
documentType: Doc.DocumentTypeEnum.Pdf
// javascript: false, // enables processing
);
byte [] create_response = docraptor.CreateDoc(doc);
File.WriteAllBytes("text-based-watermark.pdf", create_response);
} catch (DocRaptor.Client.ApiException error) {
Console.Write(error.ErrorContent);
}
}
Friend Class Example
Shared Sub Main(ByVal args() As String)
Dim docraptor As New DocApi()
docraptor.Configuration.Username = "YOUR_API_KEY_HERE"
Try
Dim doc As New Doc(name:= "text-based-watermark", test:= False, documentContent:= System.IO.File.ReadAllText("text-based-watermark-content.html"), documentType:= Doc.DocumentTypeEnum.Pdf)
Dim create_response() As Byte = docraptor.CreateDoc(doc)
File.WriteAllBytes("text-based-watermark.pdf", create_response)
Catch [error] As DocRaptor.Client.ApiException
Console.Write([error].ErrorContent)
End Try
End Sub
使用开源 HTML 转 PDF 工具,在 PDF 文档中添加页码很困难,有时甚至几乎不可能,但 DocRaptor 可让这一切变得轻而易举!
CSS 编码:
@page {
@bottom {
content: "Page " counter(page, upper-alpha) " of " counter(pages, decimal);
} }
@page {
@bottom {
content: "Page " counter(page, upper-alpha) " of " counter(pages, decimal);
} }
HTML 编码:
<body>
<div style="page-break-after: always;">Page1</div>
<div style="page-break-after: always;">Page2</div>
<div style="page-break-after: always;">Page3</div>
<div id="page4" style="page-break-after: always;">Page4, with reset page counter</div>
</body>
<body>
<div style="page-break-after: always;">Page1</div>
<div style="page-break-after: always;">Page2</div>
<div style="page-break-after: always;">Page3</div>
<div id="page4" style="page-break-after: always;">Page4, with reset page counter</div>
</body>
C# 编码:
class Example
{
static void Main(string [] args)
{
DocApi docraptor = new DocApi();
docraptor.Configuration.Username = "YOUR_API_KEY_HERE";
try
{
Doc doc = new Doc(
name: "page-numbers",
test: true, // test documents are but watermarked
documentContent: System.IO.File.ReadAllText(@"page-numbers-content.html"),
// documentUrl: "http://docraptor.com/examples/invoice.html", // or use a url
documentType: Doc.DocumentTypeEnum.Pdf
// javascript: false, // enables processing
);
byte [] create_response = docraptor.CreateDoc(doc);
File.WriteAllBytes("page-numbers.pdf", create_response);
} catch (DocRaptor.Client.ApiException error) {
Console.Write(error.ErrorContent);
}
}
}
class Example
{
static void Main(string [] args)
{
DocApi docraptor = new DocApi();
docraptor.Configuration.Username = "YOUR_API_KEY_HERE";
try
{
Doc doc = new Doc(
name: "page-numbers",
test: true, // test documents are but watermarked
documentContent: System.IO.File.ReadAllText(@"page-numbers-content.html"),
// documentUrl: "http://docraptor.com/examples/invoice.html", // or use a url
documentType: Doc.DocumentTypeEnum.Pdf
// javascript: false, // enables processing
);
byte [] create_response = docraptor.CreateDoc(doc);
File.WriteAllBytes("page-numbers.pdf", create_response);
} catch (DocRaptor.Client.ApiException error) {
Console.Write(error.ErrorContent);
}
}
}
Friend Class Example
Shared Sub Main(ByVal args() As String)
Dim docraptor As New DocApi()
docraptor.Configuration.Username = "YOUR_API_KEY_HERE"
Try
Dim doc As New Doc(name:= "page-numbers", test:= True, documentContent:= System.IO.File.ReadAllText("page-numbers-content.html"), documentType:= Doc.DocumentTypeEnum.Pdf)
Dim create_response() As Byte = docraptor.CreateDoc(doc)
File.WriteAllBytes("page-numbers.pdf", create_response)
Catch [error] As DocRaptor.Client.ApiException
Console.Write([error].ErrorContent)
End Try
End Sub
End Class
DocRaptor 是一款基于 API 的文档转换器,可将 HTML 文件和 URL 转换为 PDF,以及将 XML 转换为 XLSX 文件。它支持八种不同的编程语言。不过,它只提供有文档限制的月度许可,从每月有 5 份文档限制的免费许可,到包括 40,000 份文档限制的银色套餐,每月标价为 1000 美元。DocRaptor 非常适合小型机构使用,它提供的专业套餐规模较小,文档上限为 325 份,售价为 29 美元。 链接 了解更多价格。
注:
DocRaptor 不提供一次性购买或基于项目的许可证。
IronPDF 是一个免费提供开发者许可证的库。IronPDF 还具有独特的定价结构:简装版起价为 $749,没有任何隐藏费用。SaaS 和 OEM 产品也可以再分发。所有许可证均附带 30 天退款保证、一年的软件支持和升级、开发/分期/生产有效性以及永久许可证。 (一次性购买).要查看 IronPDF 的整个价格结构和许可证,请访问 这里.
注:___
IronPDF 提供将两个或多个 PDF 文件连接在一起的选项。它还提供提取页面、复制页面、移除特定页面和多线程生成 PDF 的选项,这是其竞争对手所不具备的。
在远程服务器上,IronPDF 不会将 HTML 生成 PDF。在幕后,它会启动一个真正符合标准的浏览器实例 (无需安装任何其他软件).HTML 将以完全准确的方式呈现,并采用适合商业印刷的矢量格式,达到最高标准。最终生成清晰、高质量的 PDF 文件。网页上有许可证和价格信息。
DocRaptor 还能将任何格式的 HTML 转换为 PDF,而且准确性最高,停机时间最短,这要归功于它在众多云服务器上运行的事实。DocRaptor 是一个基于网络的 API,提供在线 PDF 转换服务。DocRaptor HTML to PDF API 的使用非常简单,这要归功于服务器端 API 客户端库。这些库可以在许多著名的服务器端编程语言中找到。网页上有价格信息。
在上面的文章中,我们比较了这两种工具,并得出结论:对于.NET或C#文档转换,开发人员更喜欢IronPDF而不是DocRaptor,原因有很多。IronPDF 比 DocRaptor 提供更多功能。DocRaptor 为小型企业提供了很好的软件包,但价格昂贵,而且不提供长期的持续许可证。另一方面,IronPDF 提供的功能更多,而且一次性购买许可证的价格更低。无论是小型企业还是大型基础设施企业,IronPDF 都是首选。DocRaptor 在处理不同服务器端平台上的 PDF 时非常有用。此外,IronPDF 软件包提供终身许可证,没有持续成本,而 DocRaptor 则有持续成本。