1. 产品
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for .NET

Aspose.PDF FOSS for .NET

从 .NET 创建和操作 PDF 文档 — 包含注释、表单字段、文本提取、页面管理、加密以及 HTML/SVG/Markdown 导入。MIT 许可证。

免费 MIT 许可证的 .NET 库,用于 PDF 创建和操作

Aspose.PDF FOSS for .NET 是一个 MIT 许可证的库,用于在 C# 和 .NET 中创建和处理 PDF 文档。核心入口点是 Document 类,它支持从文件路径、字节数组、流或受密码保护的来源构造,并公开 OpenSaveMergeEncryptDecryptConvert 操作,覆盖完整的 PDF 规范。

该库公开了 805 个类,涵盖通过 DocumentPagePageCollection 的文档结构;通过 AnnotationCollection(包括 AddTextAnnotationAddLinkAnnotationAddHighlightAnnotationAddWatermarkAnnotationAddRedactAnnotation)实现丰富的批注;使用 FormButtonFieldCheckboxFieldRadioButtonFieldChoiceField 的交互式表单;通过 TextFragmentAbsorberTextFragment 进行文本提取和搜索;使用 AbsorbedTableAbsorbedRowAbsorbedCell 检测表格;以及通过 Document.EncryptDocument.Decrypt 实现文档安全。格式转换支持 HTML、SVG 和 Markdown 导入,同时支持 PDF 导出。

从 NuGet 安装 Aspose.PDF FOSS 用于 .NET: dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha。该库完全采用 MIT 许可证,无运行时费用或使用限制。有关企业功能和支持,请参阅 Aspose.PDF for .NET — Enterprise Product

文档结构与页面管理

  • Document API: 使用 Document() 创建新 PDF,或通过 Document.Open(path)Document.Open(data)Document.Open(stream) 打开现有文件。
  • 页面管理: 通过 PageCollection 添加、访问和重新排序页面。每个 Page 都公开 WidthHeightMediaBox、旋转和 Annotations
  • 合并和拆分: 使用 Document.Merge(documents)Document.MergeDocuments(files) 合并多个文件。使用 Document.ImportPageDocument.ImportPages 导入特定页面。
  • Metadata: 通过 DocumentInfoDocument.GetOrCreateMetadata() 读取和写入文档元数据。
  • Serialization: 使用 Document.Save(filename)Document.Save(stream, format)Document.ToArray() 持久化文档。

常见文档处理场景

  • PDF generation: 通过创建一个 Document 实例并向页面填充内容,以编程方式构建文档。
  • 文档分析: 打开现有文件以进行元数据检查、页面尺寸测量或表单字段枚举。
  • 页面操作: 使用 Document.ImportPagePage API 调整大小、旋转或重新排序页面。
  • 批量合并: 使用 Document.MergeDocuments 将报告章节或发票页面合并为单个 PDF。

注释与表单字段

  • Rich annotation API: AnnotationCollection 提供用于文本、链接、突出显示、下划线、删除线、方形、圆形、线条、墨迹、印章、插入符号、编辑遮蔽、水印、多边形和折线注释的方法。
  • 链接操作: 使用 AddLinkAnnotation(rect, uri) 添加 URI 链接,或使用 AddLinkAnnotation(rect, destinationPage, destRect) 添加内部页面跳转链接。
  • 交互式表单: 通过 Document.Form 访问文档表单,以枚举或创建 ButtonFieldCheckboxFieldRadioButtonFieldChoiceField 实例。
  • 注释选择: 使用 AnnotationSelector 在跨页面中按类型过滤注释,并使用每种类型的 Visit 重载。
  • 注释标志: 通过 AnnotationFlags 控制可见性、打印和锁定行为。

文档审阅与协作场景

  • Markup review: 为文档审阅工作流添加高亮、下划线或自由文本批注。
  • Redaction: 永久删除使用 AddRedactAnnotation 的敏感内容区域。
  • 水印: 使用 AddWatermarkAnnotationAddStampAnnotation 在页面上添加 CONFIDENTIAL 或 APPROVED 文本。
  • 交互式表单: 构建带有单选按钮、复选框和选择列表的可填写文档,以用于数据捕获管道。

文本提取与搜索

  • 文本搜索: 使用 TextFragmentAbsorber 在页面上或跨文档定位所有文本片段,可选短语匹配。
  • 片段属性: 每个 TextFragment 暴露 TextPositionTextState(字体、大小、颜色),以及边界矩形。
  • Text state control: TextFragmentState 提供对 FontFontSizeForegroundColorBackgroundColor 以及渲染模式的访问。
  • 表格检测: 通过 AbsorbedTableAbsorbedRowAbsorbedCell 识别并提取表格内容,每个提供 RectTextFragments

文本和数据提取场景

  • 内容索引: 提取所有页面文本以用于全文搜索管道。
  • 表单数据提取: 读取已提交的字段值以进行服务器端处理。
  • Invoice parsing: 使用 AbsorbedTable 从财务 PDF 中解析表格行列数据。
  • 红线比较: 定位特定文本片段,以进行精确的基于位置的注释或替换。

安全与加密

  • AES 和 RC4 加密: 使用 Algorithm.AESx128AESx256RC4x128Document.Encrypt(userPassword, ownerPassword, permissions, algorithm) 加密文档。
  • 权限控制: 通过 DocumentPrivilege 限制打印、复制和可访问性。
  • 密码管理: 使用 Document.ChangePasswords 更改用户和所有者密码。
  • 解密: 使用 Document.Decrypt() 移除保护。
  • 数字签名: 通过 SignatureAlgorithm 类型访问签名字段和 PKCS#7 数据。

文档安全场景

  • 机密分发: 在交付之前使用针对每个收件人的密码加密 PDF。
  • 仅打印合同: 应用仅打印的所有者密码 DocumentPrivilege 以防止复制。
  • 合规归档: 在安全审查后从内部归档中剥除加密。
  • 签名验证: 检查接收的 PDF 中嵌入的数字签名以进行真实性验证。

打开 PDF,添加链接批注并保存

打开现有的 PDF,在第 1 页附加 URI 链接注释,并持久化结果。

using Aspose.Pdf;

var data = System.IO.File.ReadAllBytes("input.pdf");
using var doc = Document.Open(data);
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(
    new Rectangle(50, 700, 200, 720), action);
using var ms = new System.IO.MemoryStream();
doc.Save(ms);
System.IO.File.WriteAllBytes("output.pdf", ms.ToArray());

添加水印批注

在现有文档的第 1 页上加上水印,并通过序列化进行往返。

using Aspose.Pdf;
var input = System.IO.File.ReadAllBytes("report.pdf");
using var doc = Document.Open(input);
doc.Pages[1].Annotations.AddWatermarkAnnotation(
    new Rectangle(0, 0, 612, 792), "CONFIDENTIAL");
var saved = doc.ToArray();
System.IO.File.WriteAllBytes("watermarked.pdf", saved);

从页面提取文本片段

使用 TextFragmentAbsorber 来枚举第一页上的所有文本片段。

using Aspose.Pdf;
using Aspose.Pdf.Text;

var data = System.IO.File.ReadAllBytes("document.pdf");
using var doc = Document.Open(data);
var absorber = new TextFragmentAbsorber();
absorber.Visit(doc.Pages[1]);
foreach (var fragment in absorber.TextFragments)
{
    Console.WriteLine(fragment.Text);
}

常见问题

Aspose.PDF FOSS for .NET 的许可模式是什么?

Aspose.PDF FOSS for .NET 在 MIT 许可证下发布,允许在商业产品中免费使用且无需运行时费用。源代码已在 GitHub 上公开。

我该如何安装 Aspose.PDF FOSS for .NET?

使用 dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha 从 NuGet 安装。该库面向 .NET 8 及更高版本,无原生依赖。

Aspose.PDF FOSS for .NET 支持哪些文件格式?

该库支持读取和写入 PDF,并支持导入 HTML、SVG 和 Markdown。还提供光栅导出——PDF 页面可渲染为 BMP、JPEG、PNG 和 TIFF。

我该如何创建一个新的 PDF 文档?

使用 Document.Create() 创建空文档,然后添加页面,并使用 Document.Save(stream)Document.ToArray() 保存。

使用 Aspose.PDF FOSS for .NET 是否需要许可证密钥?

无需许可证密钥或激活步骤。该库在 MIT 许可证下免费运行,无需任何费用。

  

支持和学习资源

 中文