在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
作为 C# 开发人员,与 PDF 打交道是我们工作中常见的一部分,尤其是在构建需要生成、编辑或显示文档的应用程序时。这就是为什么拥有一个好的 PDF 库至关重要。这些库为转换文档、编辑文本和处理 PDF 中的图像等复杂任务提供内置功能,从而节省了我们的时间和麻烦。如果没有这些库,我们就必须从头开始编写所有代码,这不仅耗时,而且容易出错。
在这次比较中,我们将看到两个流行的 PDF 库: IronPDF 和 C#.IronPDF 以其强大的功能而著称,从将 HTML 转换为 PDF 到高级文档编辑,它都能在 .NET 环境中轻而易举地处理 PDF。Apryse C# 则提供了一种简化的 PDF 操作方法,注重易用性和效率。我们将深入探讨每个库提供的具体功能,帮助您决定哪个库最适合您的项目。
C# 是一个适用于 .NET 应用程序的综合性 PDF 库,旨在简化 C# 环境中的 PDF 操作流程。它的前身是 PDFTron SDK。其广泛的功能和工具使其成为开发人员精确、轻松处理 PDF 的宝贵资产。
IronPDF 作为一款为.NET 开发人员量身定做的多功能、功能强大的 PDF 库,它脱颖而出。它简化了复杂的 PDF 操作过程,允许直接在 C# 应用程序中创建、编辑和转换 PDF 文档。IronPDF 支持不同的编程语言,如 Java、Python 和 C#。IronPDF 设计用于满足广泛的 PDF 处理需求,使其成为追求高效和可靠的开发人员的首选解决方案。
在 Visual Studio 中创建控制台应用程序是一个简单明了的过程,它为任何 .NET 开发项目(包括使用 IronPDF 或 Apryse C# 等库进行 PDF 操作的项目)奠定了基础。下面介绍如何开始:
在电脑上打开 Visual Studio。如果尚未安装 Visual Studio,请从微软官方网站下载并安装,选择适合自己需要的版本。
打开 Visual Studio 后,从初始仪表板中选择 "创建新项目 "选项。
在 "创建新项目 "窗口中,你会看到各种项目模板。在搜索框中键入 "控制台",或从列表中找到 "控制台应用程序 "模板。确保选择 C# 专用模板,而不是其他语言。
选择 "控制台应用程序 "模板后,点击 "下一步 "按钮。系统会提示你配置新项目:
位置: 选择要在计算机上保存项目的位置。
配置项目设置后,单击 "创建 "按钮。Visual Studio 将建立一个新的控制台应用程序项目,其中包含一个默认的 Program.cs 文件。
请在 "解决方案资源管理器 "窗格中查看生成的项目结构。您将主要处理控制台应用程序的 Program.cs 文件,并在其中编写 C# 代码。
将 IronPDF 库集成到您的 .NET 项目中,您就可以利用其全面的 PDF 操作功能。有几种安装 IronPDF 的方法,可确保根据您偏好的工作流程或开发环境设置灵活安装。
Visual Studio 中的 NuGet 包管理器为管理库和依赖关系提供了一个用户友好界面。
1.在 Visual Studio 中打开项目。
2.导航到 "解决方案资源管理器",右键单击项目,然后选择 "管理 NuGet 包"。
3.单击 "浏览 "选项卡并搜索 "IronPdf"。
4.在搜索结果中找到 IronPDF,选择它,然后点击 "安装"。Visual Studio 会处理剩下的工作,将 IronPDF 添加到你的项目中。
对于喜欢使用命令行的用户,Visual Studio 中的软件包管理器控制台提供了一种直接安装软件包的方法。
1.打开 Visual Studio,进入项目。
2.导航至工具 > NuGet 包管理器 > 包管理器控制台.。
3.在控制台中,键入以下命令并按 Enter:
Install-Package IronPdf
该命令将下载最新版本的 IronPDF 并安装到项目中。
如果您希望在将软件包集成到项目之前手动下载,可以从 NuGet 网站下载。
1.访问 NuGet 网站 并搜索 "IronPdf"。
2.在 铁页找到 "下载软件包 "链接并点击,下载 .nupkg 文件。
3.下载完成后,可以手动将软件包添加到项目中。在 Visual Studio 中,导航到 "解决方案资源管理器",右键单击项目,然后选择 "添加 > 引用"。导航到下载的 .nupkg 文件位置,选择该文件并将其添加到项目中。
上述每种方法都能将 IronPDF 成功集成到您的 .NET 项目中,让您开始使用其强大的 PDF 处理功能。
要将 Apryse C# 集成到 C# 项目中,您有几种选择,具体取决于您使用的是 .NET Framework 还是 .NET Core,以及您的开发环境偏好。以下是根据 Apryse 文档和设置指南中的信息归纳的步骤:
解压缩 SDK:下载后,将 SDK 解压缩到系统中的已知位置。
获取 Apryse 试用密钥:在 Apryse 平台上注册,获取试用密钥,用于激活 SDK 的试用功能。
设置项目:在 Visual Studio 中创建一个新的 .NET Framework 控制台应用程序。然后,将提取的 SDK 中的 Lib 文件夹添加到项目目录中。
添加引用:右键单击项目中的 "引用",选择 "添加引用",然后导航到Lib文件夹,在该文件夹中复制了PDFNetLoader.dll和适用于您体系结构的PDFNet.dll。 (x86 或 x64).确保将 PDFNet.dll 的 "复制本地 "属性设置为 false。
SDK 中有示例文件夹。您可以直接打开并运行这些示例解决方案。
IronPDF 擅长将 HTML 转换为 PDF 文档。对于需要将报告、发票或网页快照生成 PDF 文件的网络应用程序来说,这一功能至关重要。该库能准确渲染 HTML、CSS 和 JavaScript,在生成的 PDF 中捕捉网页内容的布局和样式。
将 HTML 字符串直接转换为 PDF,可从应用程序中生成或存储在变量中的 HTML 内容动态创建 PDF。这对于根据用户输入或应用程序数据生成定制报告、收据或文档特别有用。
using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
IronPdf.License.LicenseKey = "License-Key goes here";
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a different HTML string
string htmlContent = @"
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8'>
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<title>My PDF</title>
<style>
body {
font-family: Arial, sans-serif;
}
h1 {
color: #333;
text-align: center;
}
p {
color: #666;
text-align: justify;
}
</style>
</head>
<body>
<h1>Welcome to My PDF</h1>
<p>This is a sample paragraph demonstrating how to create a PDF from HTML using IronPdf in C#.</p>
<p>You can add more content here as needed.</p>
</body>
</html>";
// Create a PDF from the HTML string using C#
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Export to a file or Stream
pdf.SaveAs("output.pdf");
using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
IronPdf.License.LicenseKey = "License-Key goes here";
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a different HTML string
string htmlContent = @"
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8'>
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<title>My PDF</title>
<style>
body {
font-family: Arial, sans-serif;
}
h1 {
color: #333;
text-align: center;
}
p {
color: #666;
text-align: justify;
}
</style>
</head>
<body>
<h1>Welcome to My PDF</h1>
<p>This is a sample paragraph demonstrating how to create a PDF from HTML using IronPdf in C#.</p>
<p>You can add more content here as needed.</p>
</body>
</html>";
// Create a PDF from the HTML string using C#
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Export to a file or Stream
pdf.SaveAs("output.pdf");
Imports IronPdf
' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
IronPdf.License.LicenseKey = "License-Key goes here"
' Instantiate Renderer
Dim renderer = New ChromePdfRenderer()
' Create a different HTML string
Dim htmlContent As String = "
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8'>
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<title>My PDF</title>
<style>
body {
font-family: Arial, sans-serif;
}
h1 {
color: #333;
text-align: center;
}
p {
color: #666;
text-align: justify;
}
</style>
</head>
<body>
<h1>Welcome to My PDF</h1>
<p>This is a sample paragraph demonstrating how to create a PDF from HTML using IronPdf in C#.</p>
<p>You can add more content here as needed.</p>
</body>
</html>"
' Create a PDF from the HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
' Export to a file or Stream
pdf.SaveAs("output.pdf")
当磁盘上存储有 HTML 文件时,IronPDF 可将该文件转换为 PDF 文档。这种方法非常适合转换保存在项目或服务器中的现有 HTML 文档、模板或报告。
using IronPdf;
IronPdf.License.LicenseKey = "License-Key goes here";
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from the HTML string using C#
var pdf = renderer.RenderHtmlFileAsPdf("invoice.html");
// Export to a file or Stream
pdf.SaveAs("file.pdf");
using IronPdf;
IronPdf.License.LicenseKey = "License-Key goes here";
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from the HTML string using C#
var pdf = renderer.RenderHtmlFileAsPdf("invoice.html");
// Export to a file or Stream
pdf.SaveAs("file.pdf");
Imports IronPdf
IronPdf.License.LicenseKey = "License-Key goes here"
' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
' Instantiate Renderer
Dim renderer = New ChromePdfRenderer()
' Create a PDF from the HTML string using C#
Dim pdf = renderer.RenderHtmlFileAsPdf("invoice.html")
' Export to a file or Stream
pdf.SaveAs("file.pdf")
IronPDF 可通过提供 URL 将实时网页转换为 PDF 文档。该功能对于捕捉网页的当前状态非常有用,包括复杂的布局、CSS 和 JavaScript 生成的内容。
using IronPdf;
IronPdf.License.LicenseKey = "License-Key goes here";
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from the HTML string using C#
var pdf = renderer.RenderUrlAsPdf("https://dotnet.microsoft.com/en-us/download/dotnet-framework");
// Export to a file or Stream
pdf.SaveAs("url.pdf");
using IronPdf;
IronPdf.License.LicenseKey = "License-Key goes here";
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from the HTML string using C#
var pdf = renderer.RenderUrlAsPdf("https://dotnet.microsoft.com/en-us/download/dotnet-framework");
// Export to a file or Stream
pdf.SaveAs("url.pdf");
Imports IronPdf
IronPdf.License.LicenseKey = "License-Key goes here"
' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
' Instantiate Renderer
Dim renderer = New ChromePdfRenderer()
' Create a PDF from the HTML string using C#
Dim pdf = renderer.RenderUrlAsPdf("https://dotnet.microsoft.com/en-us/download/dotnet-framework")
' Export to a file or Stream
pdf.SaveAs("url.pdf")
使用 IronPDF,可直接将多个 PDF 文档合并为一个文件,或将一个 PDF 分成多个较小的文档。该功能对于需要组织和结构化 PDF 内容的文档管理系统至关重要。
using IronPdf;
IronPdf.License.LicenseKey = "License-Key goes here";
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
var html_a = @"
<h1>PDF A</h1>
<p>This is the content of PDF A.</p>
<p>This is the first page of PDF A.</p>
<div style='page-break-after: always;'></div>
<p>This is the second page of PDF A.</p>";
var html_b = @"
<h1>PDF B</h1>
<p>This is the content of PDF B.</p>
<p>This is the first page of PDF B.</p>
<div style='page-break-after: always;'></div>
<p>This is the second page of PDF B.</p>";
var renderer = new ChromePdfRenderer();
var pdfdoc_a = renderer.RenderHtmlAsPdf(html_a);
var pdfdoc_b = renderer.RenderHtmlAsPdf(html_b);
var merged = PdfDocument.Merge(pdfdoc_a, pdfdoc_b);
merged.SaveAs("Merged.pdf");
using IronPdf;
IronPdf.License.LicenseKey = "License-Key goes here";
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
var html_a = @"
<h1>PDF A</h1>
<p>This is the content of PDF A.</p>
<p>This is the first page of PDF A.</p>
<div style='page-break-after: always;'></div>
<p>This is the second page of PDF A.</p>";
var html_b = @"
<h1>PDF B</h1>
<p>This is the content of PDF B.</p>
<p>This is the first page of PDF B.</p>
<div style='page-break-after: always;'></div>
<p>This is the second page of PDF B.</p>";
var renderer = new ChromePdfRenderer();
var pdfdoc_a = renderer.RenderHtmlAsPdf(html_a);
var pdfdoc_b = renderer.RenderHtmlAsPdf(html_b);
var merged = PdfDocument.Merge(pdfdoc_a, pdfdoc_b);
merged.SaveAs("Merged.pdf");
Imports IronPdf
IronPdf.License.LicenseKey = "License-Key goes here"
' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
Dim html_a = "
<h1>PDF A</h1>
<p>This is the content of PDF A.</p>
<p>This is the first page of PDF A.</p>
<div style='page-break-after: always;'></div>
<p>This is the second page of PDF A.</p>"
Dim html_b = "
<h1>PDF B</h1>
<p>This is the content of PDF B.</p>
<p>This is the first page of PDF B.</p>
<div style='page-break-after: always;'></div>
<p>This is the second page of PDF B.</p>"
Dim renderer = New ChromePdfRenderer()
Dim pdfdoc_a = renderer.RenderHtmlAsPdf(html_a)
Dim pdfdoc_b = renderer.RenderHtmlAsPdf(html_b)
Dim merged = PdfDocument.Merge(pdfdoc_a, pdfdoc_b)
merged.SaveAs("Merged.pdf")
IronPDF 允许您在 PDF 页面上添加水印,这对于创建品牌或将文档标记为机密文档非常有用。该功能支持文本和图像水印,可灵活应用和显示水印。
using IronPdf;
IronPdf.License.LicenseKey = "License-Key goes here";
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs("Watermarked.pdf");
using IronPdf;
IronPdf.License.LicenseKey = "License-Key goes here";
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs("Watermarked.pdf");
Imports IronPdf
IronPdf.License.LicenseKey = "License-Key goes here"
' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
' Stamps a Watermark onto a new or existing PDF
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center)
pdf.SaveAs("Watermarked.pdf")
IronPDF 支持使用交互式 PDF 表单。它能以编程方式创建、填写和提交 PDF 表单。这对于需要将表单处理自动化或将表单数据收集集成到工作流程中的应用程序尤其有用。
using IronPdf;
IronPdf.License.LicenseKey = "License-Key goes here";
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
const string differentFormHtml = @"
<html>
<body>
<h2>Employee Information Form</h2>
<form>
First name: <br>
Last name: <br>
<br>
<p>Please select your department:</p>
<select name='department'>
<option value='HR'>HR</option>
<option value='Finance'>Finance</option>
<option value='IT'>IT</option>
<option value='Marketing'>Marketing</option>
</select>
<br>
<br>
<p>Please select your employment status:</p>
<label for='fulltime'>Full-time</label> <br>
<label for='parttime'>Part-time</label> <br>
<br>
<p>Please select your skills:</p>
<label for='skill1'> Programming</label><br>
<label for='skill2'> Design</label><br>
<label for='skill3'> Marketing</label><br>
</form>
</body>
</html>";
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
renderer.RenderHtmlAsPdf(differentFormHtml).SaveAs("EmployeeInfoForm.pdf");
using IronPdf;
IronPdf.License.LicenseKey = "License-Key goes here";
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
const string differentFormHtml = @"
<html>
<body>
<h2>Employee Information Form</h2>
<form>
First name: <br>
Last name: <br>
<br>
<p>Please select your department:</p>
<select name='department'>
<option value='HR'>HR</option>
<option value='Finance'>Finance</option>
<option value='IT'>IT</option>
<option value='Marketing'>Marketing</option>
</select>
<br>
<br>
<p>Please select your employment status:</p>
<label for='fulltime'>Full-time</label> <br>
<label for='parttime'>Part-time</label> <br>
<br>
<p>Please select your skills:</p>
<label for='skill1'> Programming</label><br>
<label for='skill2'> Design</label><br>
<label for='skill3'> Marketing</label><br>
</form>
</body>
</html>";
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
renderer.RenderHtmlAsPdf(differentFormHtml).SaveAs("EmployeeInfoForm.pdf");
Imports IronPdf
IronPdf.License.LicenseKey = "License-Key goes here"
' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
Const differentFormHtml As String = "
<html>
<body>
<h2>Employee Information Form</h2>
<form>
First name: <br>
Last name: <br>
<br>
<p>Please select your department:</p>
<select name='department'>
<option value='HR'>HR</option>
<option value='Finance'>Finance</option>
<option value='IT'>IT</option>
<option value='Marketing'>Marketing</option>
</select>
<br>
<br>
<p>Please select your employment status:</p>
<label for='fulltime'>Full-time</label> <br>
<label for='parttime'>Part-time</label> <br>
<br>
<p>Please select your skills:</p>
<label for='skill1'> Programming</label><br>
<label for='skill2'> Design</label><br>
<label for='skill3'> Marketing</label><br>
</form>
</body>
</html>"
' Instantiate Renderer
Dim renderer = New ChromePdfRenderer()
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
renderer.RenderHtmlAsPdf(differentFormHtml).SaveAs("EmployeeInfoForm.pdf")
IronPDF 提供保护 PDF 文档安全的功能,包括加密 PDF 文件、设置权限和添加数字签名。这可确保 PDF 文档中的敏感信息受到保护,并保持文档的完整性。
using IronPdf;
IronPdf.License.LicenseKey = "License-Key" goes here;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
var pdf = PdfDocument.FromFile("invoice.pdf");
// Change or set the document encryption password
pdf.SecuritySettings.OwnerPassword = "top-secret"; // password to edit the pdf
pdf.SecuritySettings.UserPassword = "sharable"; // password to open the pdf
pdf.SaveAs("secured.pdf");
using IronPdf;
IronPdf.License.LicenseKey = "License-Key" goes here;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
var pdf = PdfDocument.FromFile("invoice.pdf");
// Change or set the document encryption password
pdf.SecuritySettings.OwnerPassword = "top-secret"; // password to edit the pdf
pdf.SecuritySettings.UserPassword = "sharable"; // password to open the pdf
pdf.SaveAs("secured.pdf");
Imports IronPdf
IronPdf.License.LicenseKey = "License-Key" goes here
' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
Dim pdf = PdfDocument.FromFile("invoice.pdf")
' Change or set the document encryption password
pdf.SecuritySettings.OwnerPassword = "top-secret" ' password to edit the pdf
pdf.SecuritySettings.UserPassword = "sharable" ' password to open the pdf
pdf.SaveAs("secured.pdf")
IronPDF 通过提供高级编辑功能,超越了基本的 PDF 编辑功能。这包括添加页眉和页脚、自定义页面布局和设计以及嵌入图像和字体。这些功能允许动态生成 PDF,并根据特定应用要求进行定制。
using IronPdf;
IronPdf.License.LicenseKey = "License-Key goes here";
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new IronPdf.ChromePdfRenderer();
var multi_page_html = @"
<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>
<div style = 'page-break-after: always;' ></div>
<p> This is 4th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 5th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 6th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 7th Page</p>";
// Create a PDF or Load an existing PDF using IronPdf.PdfDocument.Load()
var pdfdoc = renderer.RenderHtmlAsPdf(multi_page_html);
// Create a Header for the first page only
var firstPageHeader = new HtmlHeaderFooter();
firstPageHeader.HtmlFragment = "This is the First Page Header";
pdfdoc.AddHtmlHeaders(firstPageHeader, 1);
pdfdoc.SaveAs("PagesWithHeaders.pdf");
using IronPdf;
IronPdf.License.LicenseKey = "License-Key goes here";
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new IronPdf.ChromePdfRenderer();
var multi_page_html = @"
<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>
<div style = 'page-break-after: always;' ></div>
<p> This is 4th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 5th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 6th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 7th Page</p>";
// Create a PDF or Load an existing PDF using IronPdf.PdfDocument.Load()
var pdfdoc = renderer.RenderHtmlAsPdf(multi_page_html);
// Create a Header for the first page only
var firstPageHeader = new HtmlHeaderFooter();
firstPageHeader.HtmlFragment = "This is the First Page Header";
pdfdoc.AddHtmlHeaders(firstPageHeader, 1);
pdfdoc.SaveAs("PagesWithHeaders.pdf");
Imports IronPdf
IronPdf.License.LicenseKey = "License-Key goes here"
' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
' Instantiate Renderer
Dim renderer = New IronPdf.ChromePdfRenderer()
Dim multi_page_html = "
<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>
<div style = 'page-break-after: always;' ></div>
<p> This is 4th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 5th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 6th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 7th Page</p>"
' Create a PDF or Load an existing PDF using IronPdf.PdfDocument.Load()
Dim pdfdoc = renderer.RenderHtmlAsPdf(multi_page_html)
' Create a Header for the first page only
Dim firstPageHeader = New HtmlHeaderFooter()
firstPageHeader.HtmlFragment = "This is the First Page Header"
pdfdoc.AddHtmlHeaders(firstPageHeader, 1)
pdfdoc.SaveAs("PagesWithHeaders.pdf")
Apryse C# 使开发人员能够以编程方式向 PDF 文档添加注释和标记。这包括文本注释、高亮显示、下划线和形状,这些对于文档审核流程或向 PDF 添加补充信息至关重要。
using pdftron;
using pdftron.PDF;
using pdftron.SDF;
class Program
{
static void Main()
{
PDFNet.Initialize("License");
using (PDFDoc doc = new PDFDoc("input.pdf"))
{
Page page = doc.GetPage(1);
Text txt = Text.Create(doc, new Rect(10, 20, 30, 40));
txt.SetIcon("UserIcon");
txt.SetContents("It's an annotation!");
page.AnnotPushBack(txt);
page.AnnotPushBack(annot);
doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
}
using pdftron;
using pdftron.PDF;
using pdftron.SDF;
class Program
{
static void Main()
{
PDFNet.Initialize("License");
using (PDFDoc doc = new PDFDoc("input.pdf"))
{
Page page = doc.GetPage(1);
Text txt = Text.Create(doc, new Rect(10, 20, 30, 40));
txt.SetIcon("UserIcon");
txt.SetContents("It's an annotation!");
page.AnnotPushBack(txt);
page.AnnotPushBack(annot);
doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
}
Imports pdftron
Imports pdftron.PDF
Imports pdftron.SDF
Friend Class Program
Shared Sub Main()
PDFNet.Initialize("License")
Using doc As New PDFDoc("input.pdf")
Dim page As Page = doc.GetPage(1)
Dim txt As Text = Text.Create(doc, New Rect(10, 20, 30, 40))
txt.SetIcon("UserIcon")
txt.SetContents("It's an annotation!")
page.AnnotPushBack(txt)
page.AnnotPushBack(annot)
doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized)
End Using
End Sub
End Class
使用 Apryse C#,开发人员可以将各种文档格式转换为 PDF,包括 Office 文档、图像和 HTML。这一功能对于需要统一文档格式进行归档、共享或显示的应用程序来说至关重要。
using pdftron;
using pdftron.PDF;
class Program
{
static void Main()
{
PDFNet.Initialize();
PDFDoc pdfdoc = new PDFDoc();
Convert.ToPdf(pdfdoc, "input.docx");
pdfdoc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
using pdftron;
using pdftron.PDF;
class Program
{
static void Main()
{
PDFNet.Initialize();
PDFDoc pdfdoc = new PDFDoc();
Convert.ToPdf(pdfdoc, "input.docx");
pdfdoc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
Imports pdftron
Imports pdftron.PDF
Friend Class Program
Shared Sub Main()
PDFNet.Initialize()
Dim pdfdoc As New PDFDoc()
Convert.ToPdf(pdfdoc, "input.docx")
pdfdoc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized)
End Sub
End Class
Apryse C# 擅长从 PDF 文档中提取文本、图像和其他内容。这一功能对于内容分析、数据提取和信息检索应用程序来说至关重要,可实现各种目的的 PDF 内容处理。
using pdftron;
using pdftron.PDF;
using pdftron.SDF;
class Program
{
static void Main()
{
PDFNet.Initialize();
using (PDFDoc doc = new PDFDoc("input.pdf"))
{
PageIterator itr = doc.GetPageIterator();
for (; itr.HasNext(); itr.Next())
{
Page page = itr.Current();
TextExtractor txt = new TextExtractor();
txt.Begin(page);
Console.WriteLine(txt.GetAsText());
}
}
}
}
using pdftron;
using pdftron.PDF;
using pdftron.SDF;
class Program
{
static void Main()
{
PDFNet.Initialize();
using (PDFDoc doc = new PDFDoc("input.pdf"))
{
PageIterator itr = doc.GetPageIterator();
for (; itr.HasNext(); itr.Next())
{
Page page = itr.Current();
TextExtractor txt = new TextExtractor();
txt.Begin(page);
Console.WriteLine(txt.GetAsText());
}
}
}
}
Imports pdftron
Imports pdftron.PDF
Imports pdftron.SDF
Friend Class Program
Shared Sub Main()
PDFNet.Initialize()
Using doc As New PDFDoc("input.pdf")
Dim itr As PageIterator = doc.GetPageIterator()
Do While itr.HasNext()
Dim page As Page = itr.Current()
Dim txt As New TextExtractor()
txt.Begin(page)
Console.WriteLine(txt.GetAsText())
itr.Next()
Loop
End Using
End Sub
End Class
Apryse C# 为保护 PDF 文档提供了全面的工具。开发人员可以应用密码保护、加密文档和管理用户权限,确保敏感信息得到保护。
using pdftron;
using pdftron.SDF;
using pdftron.PDF;
class Program
{
static void Main()
{
PDFNet.Initialize();
using (PDFDoc doc = new PDFDoc("input.pdf"))
{
doc.InitSecurityHandler();
SecurityHandler newHandler = new SecurityHandler();
newHandler.ChangeUserPassword("new_password");
newHandler.SetPermission(SecurityHandler.Permission.e_print, true);
doc.SetSecurityHandler(newHandler);
doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
}
using pdftron;
using pdftron.SDF;
using pdftron.PDF;
class Program
{
static void Main()
{
PDFNet.Initialize();
using (PDFDoc doc = new PDFDoc("input.pdf"))
{
doc.InitSecurityHandler();
SecurityHandler newHandler = new SecurityHandler();
newHandler.ChangeUserPassword("new_password");
newHandler.SetPermission(SecurityHandler.Permission.e_print, true);
doc.SetSecurityHandler(newHandler);
doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
}
Imports pdftron
Imports pdftron.SDF
Imports pdftron.PDF
Friend Class Program
Shared Sub Main()
PDFNet.Initialize()
Using doc As New PDFDoc("input.pdf")
doc.InitSecurityHandler()
Dim newHandler As New SecurityHandler()
newHandler.ChangeUserPassword("new_password")
newHandler.SetPermission(SecurityHandler.Permission.e_print, True)
doc.SetSecurityHandler(newHandler)
doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized)
End Using
End Sub
End Class
Apryse C# 还支持对 PDF 文档中的敏感信息进行编辑,这是合规性和隐私保护方面的一项基本功能。这使开发人员能够永久删除或隐藏 PDF 中的文本和图像。
using pdftron;
using pdftron.PDF;
using pdftron.SDF;
class Program
{
static void Main()
{
PDFNet.Initialize();
using (PDFDoc doc = new PDFDoc("input.pdf"))
{
Redactor.Redaction [] redactions = {
new Redactor.Redaction(1, new Rect(100, 100, 200, 200), false, "redacted"),
};
Redactor.Redact(doc, redactions);
doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
}
using pdftron;
using pdftron.PDF;
using pdftron.SDF;
class Program
{
static void Main()
{
PDFNet.Initialize();
using (PDFDoc doc = new PDFDoc("input.pdf"))
{
Redactor.Redaction [] redactions = {
new Redactor.Redaction(1, new Rect(100, 100, 200, 200), false, "redacted"),
};
Redactor.Redact(doc, redactions);
doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
}
Imports pdftron
Imports pdftron.PDF
Imports pdftron.SDF
Friend Class Program
Shared Sub Main()
PDFNet.Initialize()
Using doc As New PDFDoc("input.pdf")
Dim redactions() As Redactor.Redaction = { New Redactor.Redaction(1, New Rect(100, 100, 200, 200), False, "redacted")}
Redactor.Redact(doc, redactions)
doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized)
End Using
End Sub
End Class
文档: IronPDF提供了全面的文档,涵盖了从入门指南到高级功能(如HTML到PDF的转换、PDF编辑、合并、分割和安全)等广泛的主题。文档的设计简单易懂,通过大量的代码示例和解释,指导开发人员在其.NET应用程序中实现各种与PDF相关的功能。
支持: 对于需要帮助的开发人员,IronPDF 通过各种渠道提供支持。其中包括电子邮件支持、票据支持和实时工程支持聊天,您可以在聊天中与技术支持团队取得联系,寻求特定问题的帮助。您还可以使用支持系统提供反馈。
文档: Apryse C# (前称 PDFTron for .NET) 拥有详细的文档,其中包括全面的 API 参考、开发人员指南和用于各种 PDF 操作任务的示例代码。
支持: Apryse为开发人员提供支持系统,其技术团队可直接通过电子邮件为开发人员提供故障排除和实施问题帮助。您还可以在 stack overflow 上提问。
IronPDF 针对不同的项目需求提供了多种许可选项,包括精简版、增强版和专业版许可,精简版许可的起价为 $749。这些许可证根据开发人员、地点和项目的数量而有所不同。此外,IronPDF 还提供免版税再分发、扩展支持和更新等选项,这些附加功能的具体费用另议。
IronPDF 为开发人员提供一系列永久许可证选项:
他们还提供每月 500 美元的包月套餐,包括 10,000 次 API 调用,额外调用每次 0.02 美元。对于无限制使用,IronPDF 提供企业解决方案,并要求报价。该解决方案包括无限永久许可和无限 API 调用等功能。
Apryse C# 提供可定制的定价模式,可根据具体项目要求(包括功能、文档量和部署方案)进行调整。您必须联系他们的销售团队才能获得 定价信息.
总之,IronPDF 和 Apryse C# 都为处理 PDF 的 .NET 开发人员带来了强大的功能。不过,IronPDF 凭借其广泛的 PDF 操作功能而更具优势。它能够处理全面的任务,如广泛的编辑、 merging PDFs 这增加了它的吸引力。有了 Iron Suite 软件包,开发人员就能以极具成本效益的价格获得一整套工具,并配备一套强大的实用程序来满足各种开发需求。
IronPDF 因其在大多数 PDF 处理方案中的整体多功能性和价值主张而脱颖而出。最终决定最好基于项目要求和开发人员所需的特定功能。