Aspose.PDF FOSS for .NET 是一个免费、MIT 许可证的 .NET 库,用于读取、创建和操作 PDF 文档。该库在宽松的开源许可证下发布,消除了企业级 PDF 功能的传统障碍——库中的每个功能都无需购买商业许可证即可使用。

Aspose.PDF FOSS for .NET 是什么?

该库面向 .NET 8 及更高版本。它已发布到 NuGet,包 ID 为 Aspose.Pdf.Foss,可以通过一条命令将其添加到任何 .NET 8+ 项目中:

dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha

主要命名空间是 Aspose.Pdf,相关命名空间包括 Aspose.Pdf.TextAspose.Pdf.FormsAspose.Pdf.Facades。该库公开了 805 个公共 API 类,支持 7,488 条已记录的声明以及直接从测试套件中提取的 100 段代码片段。

核心功能

API 覆盖 PDF 文档的完整生命周期:

  • 文档创建和加载Document.Create() 生成一个空白文档;Document.Open(data) 从字节数组或流加载现有 PDF。
  • 页面和内容访问Pages 集合提供基于 1 的索引访问单个页面,每个页面都公开注释、操作符和内容流。
  • 文本提取TextFragmentAbsorber 访问页面并收集每个文本片段,支持可选的搜索短语过滤和正则表达式。
  • 交互操作PdfAction.CreateUriPdfAction.CreateGoToPdfAction.CreateJavaScriptPdfAction.CreateLaunch 覆盖标准 PDF 操作类型。
  • 注释AnnotationCollection.AddLinkAnnotation 将带有关联操作的链接注释附加到页面上的任意矩形区域。
  • 表单Aspose.Pdf.Forms 命名空间和 Aspose.Pdf.Facades 提供对 AcroForm 字段、外观格式以及字段级 JavaScript 扩展的访问。

打开文档并添加链接

以下示例演示了往返模式:创建一个新的 PDF 文档,在首页添加 URI 动作链接注释,将其保存到流中,然后重新加载以验证注释是否仍然存在。

using var doc = Document.Create();
doc.Pages.Add();
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 MemoryStream();
doc.Save(ms);
ms.Position = 0;
using var doc2 = Document.Open(ms.ToArray());
var annot = (LinkAnnotation)doc2.Pages[1].Annotations[1];
Console.WriteLine(annot.Uri); // https://aspose.com

Document.Open 静态方法接受 byte[] 或流。doc.Pages[1] 通过基于 1 的索引访问第一页——这与整个库使用的索引约定相同。保存到 MemoryStream 后,文档可以重新加载,所有注释都将被保留。


在页面上搜索文本

TextFragmentAbsorber 提供对任意页面内容流的关键字搜索。向构造函数传入搜索短语以限制结果,或使用无参数重载来收集所有片段:

using var doc = Document.Open("path/to/document.pdf");
var absorber = new TextFragmentAbsorber("Hello");
absorber.Visit(doc.Pages[1]);
foreach (var fragment in absorber.TextFragments)
{
    Console.WriteLine($"Found: {fragment.Text}");
}

结果集合中的每个 TextFragment 都公开了包括 TextFontSize 和位置信息在内的属性,使得在提取的片段之上构建搜索、突出显示或编辑工作流变得直观简便。


MIT 许可证和开放开发

所有源代码均发布在 GitHub 上,并在 MIT 许可证下分发。没有评估水印、使用限制,也没有需要管理的单独许可证文件。在 FOSS 构建中,Document.IsLicensed 属性始终返回 true

该软件包当前版本为 0.1.0-alpha,表明仍在积极开发中。API 表面已经相当庞大——805 个类,7,488 条声明——且 alpha 标识表明在 1.0 版发布之前,API 签名可能会发生变化。


入门

相关资源