文档化版本发布

提示

要开始使用 Documentize SDK,您可以通过多种方式将二进制文件下载到您的系统上。请根据您的具体需求选择最符合您要求的方法。

警告

通过以任何形式下载 Documentize SDK,您同意遵守 Smallize EULA

从 NuGet 获取

启动 Documentize 的最简单方法是直接从 NuGet 安装 .NET 包。以下是几种快速的方法。有关更多详细信息,请访问 NuGet 安装指南

dotnet add package Documentize
NuGet\Install-Package Documentize
<PackageReference Include="Documentize" Version="24.x.x" />

下载 MSI 安装程序

获取 Documentize 的另一种选择是下载 MSI 包,该包会安装所需的程序集(DLL)。只需单击以下下载按钮,或在 MSI 安装指南 中了解更多关于此安装方法的信息。

下载最新版本 v26.09 MSI

下载 ZIP

您也可以下载只包含 DLL 文件的 ZIP 包,您可以根据您的需求将其存储。有关更多信息,请参见 ZIP 安装指南

下载最新版本 v26.09 ZIP
2024年12月28日

文档化版本发布 的子部分

关于 Documentize

什么是 Documentize?

Documentize 是一个强大的 .NET 组件,使开发者能够程序化地创建专业和多功能的 PDF 文档,消除对 Adobe Acrobat 等外部工具的需求。

为什么使用 Documentize?

以下是 Documentize 脱颖而出的原因:

  • 轻松创建 PDF: 即时生成简单或复杂的 PDF,融入表格、图表、图像、超链接和自定义字体等元素。
  • 增强安全性: 集成强大的安全功能,以保护您的敏感 PDF 文档。
  • 灵活的开发选择: 可以选择使用用户友好的 API 或 XML 模板来创建 PDF,以简化工作流程。
  • 简化集成: Documentize 无缝集成到各种 .NET 应用程序中,包括用 C#、VB.NET 和 J# 等语言编写的 ASP.NET Web 应用程序和 Windows 应用程序。
  • 快速高效: 轻量级组件高效生成 PDF,优化您的应用程序性能。
  • 具成本效益且有支持: 享受具有竞争力的价格、卓越的性能以及全面支持,以确保顺利的开发体验。

主要特征

  • 丰富的内容支持: 向您的 PDF 添加表格、图表、图像、超链接、自定义字体等。
  • 压缩功能: 减小 PDF 文件的大小,以便于存储和分发。
  • 高级安全性: 实施安全功能,以保护 PDF 文档中的机密信息。
  • 双重创建方法: 通过程序 API 或 XML 模板创建 PDF,以提供更多灵活性。
  • 跨平台兼容性: 与各种 .NET 语言和应用程序类型无缝协作。
  • 多线程支持: 能够在不同线程上安全并发创建多个 PDF。
  • 学习资源: 访问全面的演示和 C# 工作示例,以加速您的开发过程。

适合多种行业的理想选择

Documentize 面向 PDF 生成起着关键作用的广泛行业。包括:

  • 金融和会计: 生成发票、收据、财务报告和其他重要文件。
  • 医疗: 以安全和标准化格式创建病人记录、处方和实验室报告。
  • 制造: 生成产品规格、质量控制报告和运输文件。
  • 政府和法律: 生成具有增强安全功能的许可证、执照、合同和法庭文件。
  • 教育: 创建证书、成绩单、报告和其他学术文档。

Documentize 使各行各业的开发者能够简化 PDF 创建工作流程,确保效率、安全性和灵活性。

2024年12月28日

Evaluate

您可以轻松下载用于评估目的的 Documentize SDK。评估版本与购买的版本完全相同,唯一的区别在于您如何应用许可证。

评估版本的限制

Documentize 的评估版本(未指定许可证)提供完整的产品功能,但有两个限制:它在页面顶部插入评估水印,并且只能查看/编辑四个页面。

更多关于评估和许可证的信息在这里

2025年8月15日

安装

Documentize SDK 的安装

Documentize 可以通过多种方法安装,每种方法都针对不同的开发环境和偏好。以下是安装 Documentize 的推荐方式:

1. NuGet(首选方法)

NuGet 是安装 Documentize 最直接和首选的方法,确保您始终在开发环境中获得最新版本和更新。有关此安装方法的更多详细信息,请查看 如何使用 NuGet 安装 Documentize SDK

2. MSI 安装程序

如果您希望将 Documentize DLL 直接安装到系统中,MSI 安装程序是一个方便的选择。这种方法非常适合希望在多个项目中使用 Documentize 的开发人员,无需手动管理 DLL 文件。有关此安装方法的更多详细信息,请查看 如何使用 MSI 安装 Documentize SDK

3. ZIP 压缩包

对于喜欢手动操作的开发人员,ZIP 压缩包包含 Documentize DLL,您可以直接提取并添加到您的项目中。有关此安装方法的更多详细信息,请查看 如何使用 ZIP 安装 Documentize SDK

2024年12月28日

安装 的子部分

通过 NuGet 安装 Documentize


提示

NuGet 是一个免费的开源包管理器,旨在简化 .NET 中库的添加、删除和更新,如在 Visual Studio 项目中。它自动管理库文件、引用和配置更改。

如何通过 NuGet 包管理器控制台安装

  1. 打开项目:

    • 启动 Visual Studio 并打开你的 .NET 应用程序。
  2. 访问包管理器控制台:

    • 导航至 工具 > NuGet 包管理器 > 包管理器控制台
  3. 安装包:

    • 要安装最新的完整版本,输入命令 Install-Package Documentize
    • 要安装最新的版本,包括热修复,使用 Install-Package Documentize -prerelease
    • Enter 执行命令。

如何通过 NuGet 包管理器控制台更新包

如果你已经通过 NuGet 安装了 Documentize,并希望更新到最新版本:

  1. 打开项目:

    • 启动 Visual Studio 并打开你的 .NET 应用程序。
  2. 访问包管理器控制台:

    • 导航至 工具 > NuGet 包管理器 > 包管理器控制台
  3. 更新包:

    • 要更新到最新的完整版本,输入 Update-Package Documentize
    • 要更新到最新版本,包括热修复,使用 Update-Package Documentize -prerelease
    • Enter 执行命令。

如何通过 NuGet 包管理器 GUI 安装

  1. 打开项目:

    • 启动 Visual Studio 并打开你的 .NET 应用程序。
  2. 导航到管理 NuGet 包:

    • 项目 菜单中,选择 管理 NuGet 包
  3. 搜索 Documentize:

    • 进入 浏览 标签,在搜索框中输入 Documentize
  4. 安装包:

    • 点击 Documentize 最新版本旁边的 安装/更新
    • 在弹出窗口中点击 接受 确认。

使用 NuGet 的优点

  • 自动依赖管理:

    • NuGet 自动处理依赖项,确保所有所需库都包含在内并正确更新。这减少了缺失或不兼容依赖项的风险。
  • 简化更新:

    • 通过 NuGet 更新包非常简单,无论是通过包管理器控制台还是 GUI。这使得保持库更新至最新功能和错误修复变得轻而易举。
  • 与 Visual Studio 集成:

    • NuGet 与 Visual Studio 无缝集成,提供用户友好的界面,在开发环境中管理包而无需离开。
  • 版本管理:

    • NuGet 允许你指定和管理不同版本的库,使你可以轻松回退到先前版本或者测试新版本,而不破坏你的开发。

使用 NuGet 的缺点

  • 仅限于 Visual Studio:

    • NuGet 主要设计用于 Visual Studio 中使用。虽然可以在其他环境中使用,但集成在 Visual Studio 中最为强大。
  • 版本冲突的潜在可能:

    • 在有许多依赖项的大型项目中,管理版本和解决冲突可能变得复杂。NuGet 提供工具来管理此事,但需要仔细关注。
  • 网络依赖性:

    • 安装和更新包需要互联网连接。如果你在一个限制或没有互联网接入的环境中工作,你可能需要使用离线方法或预先下载包。
  • 大型项目的复杂性:

    • 对于具有大量依赖树的非常大型项目,通过 NuGet 管理包的开销可能变得烦琐。在这种情况下,可能需要额外的工具或策略来有效管理依赖项。

通过 MSI 安装 Documentize

提示

MSI 安装程序是安装 Documentize 的便捷且用户友好的选项,特别是如果您希望将 DLL 安装到系统范围内。这种方法通过自动化许多步骤简化了安装过程。

如何通过 MSI 安装程序安装

  1. 下载 MSI 安装程序:

    • 点击 v26.09 MSI 下载最新版本 Documentize 的 MSI 安装程序。
  2. 运行安装程序:

    • 双击下载的 MSI 文件以启动安装向导。
  3. 按照安装向导进行操作:

    • 按照安装程序提供的屏幕说明进行操作。您可能需要同意许可协议并选择安装选项。
  4. 完成安装:

    • 安装完成后,Documentize 的 DLL 将安装到您的系统的全局程序集缓存 (GAC) 或其他指定位置。
  5. 验证安装:

    • 通过验证指定安装目录或 GAC 中是否存在 DLL 来检查其是否正确安装。

使用 MSI 安装程序的优点

  • 易于使用:

    • MSI 安装程序提供简单且指导性的安装过程。它处理所有必要的配置,并将 DLL 放置在中心位置,使您能够在多个项目中轻松使用 Documentize。
  • 系统范围安装:

    • MSI 方法将 Documentize 安装到系统的全局程序集缓存 (GAC) 或其他中心位置。这允许系统上的任何应用程序访问 DLL,而无需在每个项目中单独引用它们。
  • 自动更新:

    • 如果 Documentize 提供了更新的安装程序,您可以通过运行新的 MSI 文件轻松更新安装,通常更新过程会顺利进行。
  • 一致性:

    • 使用 MSI 安装程序可确保所有所需文件在不同环境中正确且一致地安装,从而减少缺失或放错 DLL 的风险。

使用 MSI 安装程序的缺点

  • 灵活性有限:

    • MSI 安装程序将 Documentize 安装到系统范围位置,这可能不适合所有开发环境。它可能缺乏适应项目特定配置或版本的灵活性。
  • 潜在开销:

    • 将 DLL 安装到 GAC 可能会引入开销和复杂性,特别是在需要同时使用多个版本的 Documentize 的情况下。
  • 手动卸载:

    • 如果需要卸载 Documentize,必须使用 MSI 提供的卸载程序,如果未正确管理,可能会留下残余文件或配置。
  • 版本冲突:

    • 系统范围的安装如果不同项目需要不同版本的 Documentize,可能会导致版本冲突。管理这些冲突可能需要额外的配置或清理。

通过 ZIP 安装 Documentize

提示

ZIP 存档非常适合喜欢手动管理库的开发者。这种方法允许你直接下载并提取所需的 DLL 文件,而无需依赖包管理器或安装程序。

如何通过 ZIP 存档安装

  1. 下载 ZIP 存档

    • 点击 v26.09 ZIP 下载最新版本的 Documentize 以存档格式。
  2. 提取内容

    • 下载后,将 ZIP 文件的内容提取到你选择的目录。你可以选择将这些文件保留在共享目录或项目结构内。
  3. 将引用添加到项目中

    • 在你的 IDE 中打开项目(例如 Visual Studio)。
    • 转到 项目 > 添加引用 > 浏览,导航到你提取 DLL 的目录。
    • 选择相关的 DLL 文件并将其添加为项目的引用。
  4. 手动更新

    • 如果发布了新版本的 Documentize,你需要手动下载更新的 ZIP 存档,并用新的 DLL 文件替换项目中的旧文件。

使用 ZIP 存档的优点

  • 完全控制

    • 你可以完全控制 DLL 的存储位置和引用方式。如果你更喜欢自定义设置或需要手动管理依赖关系,这可能是有益的。
  • 不依赖包管理器

    • 与 NuGet 不同,你不依赖包管理器来处理安装。在包管理器不可用或不受欢迎的环境中,这可能是有利的。
  • 可移植性

    • ZIP 存档可以轻松分享并在不同系统之间移动,非常适合需要可移植性或分发而不依赖于外部工具的项目。

使用 ZIP 存档的缺点

  • 手动管理

    • 与 NuGet 不同,更新和依赖管理是自动化的,对于 ZIP 存档,你必须手动管理更新并确保所有所需的 DLL 都被正确引用。
  • 版本冲突的风险

    • 如果你正在管理多个项目或在团队中工作,如果不同的项目使用不同版本的 DLL,就会有版本冲突的风险。这需要仔细跟踪项目间的版本。
  • 没有自动更新

    • 当有新版本可用时,你不会收到自动更新或通知。这可能导致使用过时库的风险,除非你定期检查更新。

非Windows环境

在非Windows环境中使用.NET Core DLL

由于Documentize for .NET支持.NET Standard 2.0 (.NET Core 2.0),因此可以在Linux类操作系统中运行的Core应用程序中使用。我们一直在努力改善我们API中的.NET Core支持。然而,我们建议客户在使用Documentize for .NET的功能时执行一些操作以获得更好的效果。请安装:

  • libgdiplus包
  • 与Microsoft兼容的字体包: ttf-mscorefonts-installer(例如,sudo apt-get install ttf-mscorefonts-installer)。这些字体应该放置在/usr/share/fonts/truetype/msttcorefonts目录下,因为Documentize for .NET在Linux类操作系统中扫描此文件夹。如果操作系统有其他默认的字体文件夹/目录,则在使用Documentize执行任何操作之前,您应该使用以下代码行:
    Documentize.Pdf.Text.FontRepository.Sources.Add(new FolderFontSource("<用户的ms字体路径>"));

最新动态

v26.9

  • 已移除类 FormFlattener
  • GetFieldNamesOptions 类已重新设计
  • 其他修复

v26.8

  • SignOptions 类已重新设计
  • 已移除类 Signature
  • 已移除类 FormExporter
  • 改进类 FileData
  • 其他修复

v26.7

  • 已删除 类 ImageExtractor
  • 已删除 类 ImageExtractor
  • 其他修复

v26.6

  • PdfSecurity:新增在没有 PFX 的情况下为 PDF 添加时间戳的功能
  • 已删除 Class TextExtractor
  • 为新实体添加更多信息和提示
  • 在文档和产品中添加了关于 Sanitization 的信息
  • 修复了 HTML 转 PDF 时的异常
  • 其他修复

v26.5

  • PDF 安全的新功能:Sanitize
  • 新类 OptionsWithInputAndOutput
  • 改进 PDF 转 JPEG 的转换性能
  • 更新站点的产品页 “FAQs”
  • 其他修复

v26.4

  • 修复 PdfExtractor.Extract 异常
  • 改进 PDF 转 TIFF 渲染性能
  • 为本站点创建 “PDF Converter” 产品页面
  • 其他修复

v26.3

  • 将 IDataSource 重命名为 IData
  • 将 FileDataSource 重命名为 FileData
  • 将 StreamDataSource 重命名为 StreamData
  • 将 DirectoryDataSource 重命名为 DirectoryData
  • 将 Feature ExtractFormDataToDsvOptions 的属性 Delimiter 重命名
  • 为本站点创建了 “PDF Manager” 产品页面
  • 为本站点创建了 “PDF Form” 产品页面
  • 已修复的问题

v26.2

  • 改进的 PDF 提取器属性提取功能
  • 改进的 PDF 提取器文本提取功能
  • 已修复的错误

v26.1

  • 新特性:PDF 提取器的属性抽取
  • 增强功能
  • 已修复的错误

v25.12

  • 新插件 PDF 表单
  • PDF 提取器的更改
  • 增强功能
  • 已修复的错误

v25.11

  • 新插件 PDF Converter
  • 新插件 PDF Security
  • 插件 PdfChatGpt 集成到 PdfManager
  • 新增用于 ChatGpt 的选项
  • 增强功能
  • 已修复的错误

v25.10

  • 新插件 PDF Extractor
  • 新插件 PDF Manager
  • TableGenerator 可用性改进
  • PdfChatGpt 可用性改进
  • 已修复的错误

v25.9

  • 改进了 DocConverter 的可用性并添加了额外模式
  • 改进了 PdfAConverter 的可用性
  • 改进了 Timestamp 的可用性
  • 更新的文档
  • 已修复的错误

v25.8

  • 改进了 JpegConverter 的可用性
  • 改进了 PngConverter 的可用性
  • 改进了 XlsConverter 的可用性
  • 改进了 Signature 的可用性
  • 修改了 PdfToHtmlOptions 的构造函数
  • 修改了 TextExtractor 的评估标记
  • 更新了文档
  • 修复的错误

v25.7

  • 改进了 Text Extractor 的可用性
  • 改进了 Html Converter 的可用性
  • 改进了 Image Extractor 的可用性

v25.6

  • 改进了 Tiff 转换器的可用性

v25.5

  • 新增插件:Form Exporter
  • 改进了 Security 的可用性

v25.4

  • 改进了 Optimizer 的可用性
  • 改进了 Plugin Splitter 的可用性
  • 改进了 Plugin Merger 的可用性

v25.3

  • 新增插件:Form Flattener

v25.2

  • 新增插件:TOC Generator

v25.1

  • 改进的插件:ImageExtractor

v24.12

  • 新增插件:PDF 转 PNG 转换器
  • 新增插件:PDF 转 TIFF 转换器
  • 新增插件:PDF 表格生成器
  • 将类 PdfDoc 重命名为 DocConverter

v24.11

  • 新增插件:PDF 转 JPEG 转换器
  • 新增类 DirectoryDataSource
  • 新增类 PdfToJpegOptions

v24.10

  • 新增插件:PDF/A 转换器

v24.9

  • 已发布
2024年12月28日

最新动态 的子部分

v26.9

已移除类 FormFlattener

  • 之前的插件实现正逐步淘汰。该类的功能已被 PdfForm 类取代。
  • Class FormFlattener:已移除,请使用 PdfForm

示例用法:

以下示例演示如何在 PDF 文件中将字段扁平化。

// Create FlattenFieldsOptions object to set instructions
var options = new FlattenFieldsOptions();
// Add input file path
options.AddInput(new FileData("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileData("path_to_result_pdf_file.pdf"));
// Perform the process
PdfForm.Flatten(options);

示例用法:

以下示例演示如何在 PDF 文件中扁平化字段并跳过第一个字段。

// Get Fields Names
var fieldNames = PdfForm.GetNames(new GetFieldNamesOptions("path_to_your_pdf_file.pdf"));
// Create FlattenFieldsOptions object to set instructions
var options = new FlattenFieldsOptions();
options.AddInput(new FileData("path_to_your_pdf_file.pdf"));
options.AddOutput(new FileData("path_to_result_pdf_file.pdf"));
// Skip 1 field.
options.SkipFields.Add(fieldNames[0]);
// Perform the process
PdfForm.Flatten(options);

GetFieldNamesOptions 类已重新设计

  • 继承自 OptionsWithInput 类。
  • 新增属性 Input

示例用法:

以下示例演示如何从 PDF 文件获取字段名称。

// Get Field Names
var fieldNames = PdfForm.GetNames(new GetFieldNamesOptions("path_to_your_pdf_file.pdf"));

示例用法:

以下示例演示如何从 PDF 流获取字段名称。

// Prepare input stream
using var inputStream = File.OpenRead("path_to_your_pdf_file.pdf");
// Get Field Names
var fieldNames = PdfForm.GetNames(new GetFieldNamesOptions(inputStream));

其他修复

📄 PDF 转 DOC

  • 修复 PDF 转 DOC 时抛出 OutOfMemoryException 的问题
  • 修复 PDF 转 HTML 时脚注徽标显示错误的问题

🖼️ PDF 转 JPEG

  • 修复 PDF 转 JPEG 时抛出 OutOfMemoryException 的问题
  • 修复 PDF 转 PNG 时抛出 InvalidOperationException 的问题
  • 修复 PDF 转 TIFF 输出缺失信息的问题

📑 PDF 转 PDF/A

  • 修复 PDF 转 PDF/A 输出不符合 PDF/A-1b 或 PDF/A-3b 标准的问题
  • 修复 PDF/A-2b 转换时抛出 InvalidCastException 的问题
2026年9月7日

v26.8

SignOptions 类已重新设计

  • 现在更易于使用。
  • 继承自 OptionsWithInputAndOutput 类。
  • 属性 InputsOutputs 改为 InputOutput。现在只有 1 个输入和 1 个输出。
  • 如果输出是文件,其流会自动关闭;如果是 Stream,则保持打开,以便后续使用。
  • 移除方法 AddInputAddOutput
  • 添加了多个更方便的构造函数:
    • SignOptions(IData inputData, IData outputData, IData pfxData, string password)
    • SignOptions(string inputFile, string outputFile, string pfxFile, string pfxPassword)
    • SignOptions(Stream inputStream, Stream outputStream, Stream pfxStream, string pfxPassword)
  • 新增可修改属性:
    • Stream Pfx
    • string PfxPassword
    • IData Input
    • IData Output

示例用法

使用 SignOptions 的示例。

using var pfxStream = File.OpenRead(@"path_to_your_pfx_file.pfx");
var options = new SignOptions(pfxStream, "password_of_your_pfx_file");

// 设置输入和输出文件路径
options.Input = new FileData("path_to_your_pdf_file.pdf");
options.Output = new FileData("path_to_result_pdf_file.pdf");

示例用法

演示如何以最简方式对 PDF 文件进行签名。

PdfSecurity.Sign(new SignOptions("path_to_your_pdf_file.pdf", "path_to_result_pdf_file.pdf", "path_to_your_pfx_file.pfx", "password_of_your_pfx_file"));

示例用法

演示如何使用流对 PDF 文档进行签名。

// 准备流
using var pdfStreamInput = File.OpenRead(@"path_to_your_pdf_file.pdf");
using var pfxStreamInput = File.OpenRead(@"path_to_your_pfx_file.pfx");
using var pdfStreamOutput = new MemoryStream();

// 创建 SignOptions 对象以设置指令
var options = new SignOptions(pdfStreamInput, pdfStreamOutput, pfxStreamInput, "password_of_your_pfx_file");

// 执行处理
PdfSecurity.Sign(options);

已移除类 Signature

  • 以前的插件实现正逐步淘汰。此类的功能已被 PdfSecurity 类取代。
  • Class Signature:已移除,请使用 PdfSecurity

示例用法

演示如何对 PDF 文档进行签名。

// 创建 SignOptions 对象以设置指令
var options = new SignOptions("path_to_your_pdf_file.pdf", "path_to_result_pdf_file.pdf", "path_to_your_pfx_file.pfx", "password_of_your_pfx_file");

// 执行处理
PdfSecurity.Sign(options);

已移除类 FormExporter

  • 以前的插件实现正逐步淘汰。此类的功能已被 PdfExtractorPdfForm 类取代。
  • Class FormExporter:已移除,请使用 PdfExtractorPdfForm

示例用法

演示如何使用 PdfExtractor 将表单值导出为 CSV 文件。

// 创建 ExtractFormDataToDsvOptions 对象以设置指令
var options = new ExtractFormDataToDsvOptions(',', true);

// 添加输入文件路径
options.AddInput(new FileData("path_to_your_pdf_file.pdf"));

// 设置输出文件路径
options.AddOutput(new FileData("path_to_result_csv_file.csv"));

// 执行处理
PdfExtractor.Extract(options);

示例用法

演示如何使用 PdfForm 将表单值导出为 TSV 文件并设置属性。

// 创建 ExtractFormDataToDsvOptions 对象以设置指令
var options = new ExtractFormDataToDsvOptions();

// 设置分隔符
options.Delimiter = '\t';

// 添加字段名到结果
options.AddFieldName = true;

// 添加输入文件路径
options.AddInput(new FileData("path_to_your_pdf_file.pdf"));

// 设置输出文件路径
options.AddOutput(new FileData("path_to_result_csv_file.tsv"));

// 执行处理
PdfForm.Extract(options);

改进类 FileData

  • 重写了 ToString() 方法。

其他修复

📄 PDF 转 DOC

  • 修复 PDF 转 DOC 转换耗时过长的问题

🌐 PDF 转 HTML / HTML 转 PDF

  • 修复 PDF 转 HTML 时出现透明图像的问题
  • 修复 HTML 转 PDF 时内容重叠的问题
  • 修复 HTML 转 PDF 时表格宽度被忽略的问题

🖼️ PDF 转 PNG / TIFF

  • 修复 PDF 转 PNG 时占用过多内存的问题
  • 修复 PDF 转 PNG 时未保留嵌入字体的问题
  • 修复 PDF 转 TIFF 时抛出异常的问题

📑 PDF 转 PDF/A

  • 修复 PDF 转 PDF/A 时文档颜色丢失的问题
  • 修复 PDF 转 PDF/A 时输出文本重叠的问题
  • 修复 PDF/A Validate() 方法返回不正确结果的问题
  • 修复 PDF/A 验证产生不正确结果的问题

📂 其他操作

  • 修复验证 PDF 签名时抛出的 System.FormatException
  • 修复合并文档时抛出异常的问题
2026年8月13日

v26.7

已删除 类 ImageExtractor

  • 之前的插件实现正逐步退役。此类的功能已迁移至 PdfExtractor 类。
  • 类 ImageExtractor:已删除,请使用 PdfExtractor

示例用法:

该示例演示如何从 PDF 文档中提取图像。

// Create ExtractImagesOptions to set instructions
var options = new ExtractImagesOptions();
// Add input file path
options.AddInput(new FileData("path_to_your_pdf_file.pdf"));
// Set output Directory path
options.AddOutput(new DirectoryData("path_to_results_directory"));
// Perform the process
var results = PdfExtractor.Extract(options);
// Get path to image result
var imageExtracted = results.ResultCollection[0].ToFile();

已删除 类 ImageExtractor

  • 此类的功能已迁移至 PdfSecurity 类。
  • 类 Timestamp:已删除,请使用 PdfSecurity
  • 类 AddTimestampOptions:已删除,请使用 SignOptionsTimestampOptions

示例用法:

该示例演示如何使用时间戳对 PDF 文档进行签名。

// Create SignOptions object to set Timestamp
var options = new SignOptions(new TimestampOptions("server_url"));
// Add input file path
options.AddInput(new FileData("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileData("path_to_result_pdf_file.pdf"));
// Perform the process
PdfSecurity.Sign(options);

其他修复

🖥️ HTML 转 PDF

  • 修复了 HTML 转 PDF 时图像位置错误和文本覆盖的问题
  • 修复了 HTML 转 PDF 时页面内容未正确适配的问题
  • 修复了生成的 PDF 显示黑色条带的 issue

📑 PDF 转 PDF/A

  • 修复了 PDF 转 PDF/A API 抛出异常的问题
  • 修复了 PDF 转 PDF/A 转换生成的输出格式不正确的问题
  • 修复了 PDF 转 PDF/A 的内存泄漏问题
  • 修复了 PDF 转 PDF/A-3a 转换中的问题

⚙️ 其余

  • 修复了 PDF 转 PNG 和 HTML 时缺失文本内容的问题
  • 修复了扁平化后某些字段变为空白的问题
  • 修复了扁平化后 PDF 文档显示错误的问题
  • 修复了优化 PDF 时导致内容格式错乱的问题
2026年7月9日

v26.6

PdfSecurity:新增在没有 PFX 的情况下为 PDF 添加时间戳的功能

  • 现在可以在不指定 PFX 文件和密码的情况下为 PDF 文档添加时间戳。
  • Class SignOptions:构造函数接受 Class TimestampOptions

示例用法:

该示例演示如何使用时间戳签署 PDF 文档。

// 创建 SignOptions 对象以设置时间戳
var options = new SignOptions(new TimestampOptions("server_url"));
// 添加输入文件路径
options.AddInput(new FileData("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
options.AddOutput(new FileData("path_to_result_pdf_file.pdf"));
// 执行处理
PdfSecurity.Sign(options);

已删除 Class TextExtractor

  • 之前的插件实现正逐步淘汰。该类的功能已由 Class PdfExtractor 取代。
  • Class TextExtractor:已删除,请改用 PdfExtractor

为新实体添加更多信息和提示

  • OptionsWithInputAndOutputSanitizeOptions 添加了 XML 注释。
  • SanitizeOptions 中添加了默认值信息。

在文档和产品中添加了关于 Sanitization 的信息

  • 在文档中新增了 Sanitization 页面:https://docs.documentize.com/developers-guide/pdf-security/sanitize/。
  • 在 PDF Security 产品页面中添加了 Sanitization 信息:https://products.documentize.com/pdf-security/。

修复了 HTML 转 PDF 时的异常

其他修复

📄 通用 / 系统

  • 修复了合并损坏的 PDF 文档问题
  • 修复了处理损坏文件时的问题
  • 修复了打开 PDF 文件时的 System.StackOverflowException
  • 修复了特定 PDF 文件的文本抽取卡死问题

🌐 HTML → PDF

  • 修复了 HTML 转 PDF 时中文字符渲染错误的问题

📑 PDF → DOC

  • 修复了 PDF 转 DOC 时高亮注释仍遮挡文本的问题
  • 修复了 PDF 转 DOC 时图像渲染错误的问题
  • 修复了 PDF 转 DOC 的性能问题

📊 PDF → Excel

  • 修复了 PDF 转 Excel 时表格图像被忽略的问题

🖼️ PDF → PNG

  • 修复了 PDF 转 PNG 时转换耗时过长的问题

🛡️ PDF → PDF/A

  • 修复了 PDF/A-1A 合规性丢失以及保存后表单损坏的问题
  • 修复了 PDF 转 PDFA 时的转换时间问题
  • 修复了 PDF 转 PDFA 时半透明效果丢失的问题
  • 修复了 PDF 转 PDFA 时文本重叠的问题
  • 修复了 PDF 转 PDFA 时文本渲染问题
  • 修复了 PDF 转 PDFA3b 时文档损坏的问题
2026年9月7日

v26.5

PDF 安全的新功能:Sanitize

  • 对 PDF 文档进行隐藏数据清理,确保元数据、附件、批注、JavaScript、表单、图层、搜索索引或私人内容等敏感或不必要的信息被删除或转换。
  • Class PdfSecurity:新增方法 Sanitize 用于对 PDF 文档进行清理。
  • Class SanitizeOptions:表示 PdfSecurity 类在文档中清理隐藏数据的配置选项。
  • Property Input:获取或设置输入数据。
  • Property Output:获取或设置输出数据。
  • Property ConvertPagesToImages:获取或设置将页面转换为图像的选项。
  • Property ImageDpi:获取或设置在页面转图像过程中解析图像的 DPI。
  • Property RemoveAnnotations:获取或设置是否从文档中删除批注。
  • Property RemoveSearchIndexAndPrivateInfo:获取或设置是否应从文档中删除搜索索引和私人信息。
  • Property FlattenForms:获取或设置在清理过程中是否将文档中的表单扁平化。
  • Property FlattenLayers:获取或设置是否将 PDF 文档中的图层扁平化。
  • Property RemoveJavaScriptsAndActions:获取或设置是否应从文档中删除 JavaScript 及相关操作。
  • Property RemoveMetadata:获取或设置是否删除文档的元数据。
  • Property RemoveAttachments:获取或设置是否删除文档中的所有附件。

示例用法:

演示如何对 PDF 文档进行 Sanitize。

// Create SanitizeOptions object to set input and output files
var options = new SanitizeOptions("path_to_your_pdf_file.pdf", "path_to_result_pdf_file.pdf");
// Perform the process
PdfSecurity.Sanitize(options);

示例用法:

演示如何对流中的 PDF 进行 Sanitize(从流到流)。

// Prepare input and output streams
using var inputStream = File.OpenRead("path_to_your_pdf_file.pdf");
using var outputStream = new MemoryStream();
// Create SanitizeOptions object to set input and output streams
var options = new SanitizeOptions(inputStream, outputStream);
// Perform the process
PdfSecurity.Sanitize(options);

示例用法:

演示如何将文件中的 PDF Sanitize 为流。

// Prepare output stream
using var outputStream = new MemoryStream();
// Create SanitizeOptions object to set input file and output stream
var options = new SanitizeOptions("path_to_your_pdf_file.pdf", outputStream);
// Perform the process
PdfSecurity.Sanitize(options);

示例用法:

演示通过手动设置 Input 与 Output 属性来对 PDF 进行 Sanitize(从文件到流)。

// Create SanitizeOptions object
var options = new SanitizeOptions();
//Set Input file
options.Input = new FileData("path_to_your_pdf_file.pdf");
//Set Output file
options.Output = new FileData("path_to_result_pdf_file.pdf");
// Perform the process
PdfSecurity.Sanitize(options);

示例用法:

演示在不删除元数据的情况下对 PDF 进行 Sanitize。

// Create SanitizeOptions object to set input and output files
var options = new SanitizeOptions("path_to_your_pdf_file.pdf", "path_to_result_pdf_file.pdf");
options.RemoveMetadata = false;
// Perform the process
PdfSecurity.Sanitize(options);

示例用法:

演示在不删除附件的情况下对 PDF 进行 Sanitize。

// Create SanitizeOptions object to set input and output files
var options = new SanitizeOptions("path_to_your_pdf_file.pdf", "path_to_result_pdf_file.pdf");
options.RemoveAttachments = false;
// Perform the process
PdfSecurity.Sanitize(options);

示例用法:

演示在将所有页面转换为图像并设置结果 DPI 的情况下对 PDF 进行 Sanitize。

// Create SanitizeOptions object to set input and output files
var options = new SanitizeOptions("path_to_your_pdf_file.pdf", "path_to_result_pdf_file.pdf");
// Turn on conversion and set dpi
options.ConvertPagesToImages = true;
options.ImageDpi = 200;
// Perform the process
PdfSecurity.Sanitize(options);

示例用法:

演示在不删除 JavaScript 和 Action 的情况下对 PDF 进行 Sanitize。

// Create SanitizeOptions object to set input and output files
var options = new SanitizeOptions("path_to_your_pdf_file.pdf", "path_to_result_pdf_file.pdf");
options.RemoveJavaScriptsAndActions = false;
// Perform the process
PdfSecurity.Sanitize(options);

示例用法:

演示以最简方式对 PDF 文件进行 Sanitize。

PdfSecurity.Sanitize(new SanitizeOptions("path_to_your_pdf_file.pdf", "path_to_result_pdf_file.pdf"));

新类 OptionsWithInputAndOutput

  • 表示具有 1 个输入数据和 1 个输出数据的操作的基础 Options。
  • 基于 OptionsWithInput。
  • Property Input:获取或设置输入数据。
  • Property Output:获取或设置输出数据。

改进 PDF 转 JPEG 的转换性能

更新站点的产品页 “FAQs”

https://docs.documentize.com/faqs/

其他修复

  • 修复大尺寸 HTML 转 PDF 的转换速度问题
  • 修复 PDF 转 HTML 时出现的 OutOfMemoryException
  • 修复 PDF 转 PDFA 时页面内容被截断的问题
  • 修复 PDF 转 PDFA 时透明图像渲染问题
  • 修复 PDF 转 PDFA2b 时输出中注释丢失的问题
  • 修复 PDF 转 PDF/A 时图像在输出文件中倒置的问题
  • 修复 PDF 转 PDF/A 时生成的文件不符合 PDF/A_2a 标准
  • 修复 PDF 转 PDF/A 时生成的文件不符合合规性要求
  • 修复 PDF 转 PDF/A 时签名转换后变黑的问题
  • 修复 PDF 转 PDF/A 时文字对齐意外变化的问题
  • 修复 PDF 转 PNG 时转换时间过长的问题
  • 修复 PDF 转 PNG 时输出图像不正确的问题
  • 修复 PDF 转 PNG 时输出图像出现暗色条纹的问题
  • 修复无法验证文档的 PDF/A_1b 合规性的问题
2026年9月7日

v26.4

修复 PdfExtractor.Extract 异常

  • 方法 PdfExtractor.Extract:如果在输入文档中找不到创建日期和修改日期,则不再抛出异常。
  • 属性 PdfProperties.Created:如果在输入文档中未找到对应值,返回 null。数据类型由 DateTime 改为 DateTime?
  • 属性 PdfProperties.Modified:如果在输入文档中未找到对应值,返回 null。数据类型由 DateTime 改为 DateTime?

示例用法:

该示例演示如何提取 Created 和 Modified 属性

// 创建 ExtractPropertiesOptions 对象以设置输入文件
var options = new ExtractPropertiesOptions("path_to_your_pdf_file.pdf");
// 执行处理并获取属性
var pdfProperties = PdfExtractor.Extract(options);

var created = pdfProperties.Created;
var modified = pdfProperties.Modified;

改进 PDF 转 TIFF 渲染性能

为本站点创建 “PDF Converter” 产品页面

https://products.documentize.com/pdf-converter/

其他修复

  • 修复 HTML 转 PDF —— 大段 HTML 文本时性能非常慢
  • 修复 HTML 转 PDF —— 页眉页脚在后续页面不显示
  • 修复 HTML 转 PDF —— 工具提示渲染不正确
  • 修复 PDF 转 DOC —— 转换时触发 OutOfMemory 异常
  • 修复 PDF 转 XLS —— 合并的列被合并为单一列
  • 修复 PDF 转 HTML —— 背景图缺失
  • 修复 PDF 转 HTML —— 本地超链接未显示
  • 修复 PDF 转 JPEG —— 输出图像呈现全黑
  • 修复 PDF 转 PDF/A —— 生成文件的格式问题
  • 修复 PDF 转 PDF/A_1b —— 生成的文件不符合规范
  • 修复 PDF 转 PDF/A_3b —— 输出文件出现文本格式问题
  • 修复 PDF 转 PDF/A-2B —— 使用 OpenType MATH 字体时,转换会去除数学字符
2026年9月7日

v26.3

将 IDataSource 重命名为 IData

  • 接口 IDataSource:已重命名为 IData
  • 选项类现在更易于使用。

将 FileDataSource 重命名为 FileData

  • 类 FileDataSource:已重命名为 FileData
  • 选项类现在更易于使用。
  • 更新并修复了 XML 注释。
  • 所有涉及 Input 和 Output 的示例已更新。

示例用法:

该示例演示如何在 Input 和 Output 中使用 FileData。

// Create EncryptOptions object to set instructions
var options = new EncryptOptions("123456", "qwerty");
// Add input file path
options.AddInput(new FileData("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileData("path_to_result_pdf_file.pdf"));
// Perform the process
PdfSecurity.Encrypt(options);

将 StreamDataSource 重命名为 StreamData

  • 类 StreamDataSource:已重命名为 StreamData
  • 选项类现在更易于使用。
  • 更新并修复了 XML 注释。
  • 所有涉及 Input 和 Output 的示例已更新。

示例用法:

该示例演示如何在 Output 中使用 StreamData。

// Create TocOptions object to set instructions
var options = new TocOptions();
// Set the Title
options.Title = "My Table of Contents";
// Design Headings
options.Headings.Add(new TocHeading("Introduction", 2, false, 1));
// Add input file path
options.AddInput(new FileData("path_to_your_pdf_file.pdf"));
// Set output stream 
var outputStream = new MemoryStream();
options.AddOutput(new StreamData(outputStream));
options.CloseOutputStreams = false;
// Perform the process
PdfManager.AddTableOfContents(options);

将 DirectoryDataSource 重命名为 DirectoryData

  • 类 DirectoryDataSource:已重命名为 DirectoryData
  • 选项类现在更易于使用。
  • 所有涉及 Input 和 Output 的示例已更新。

示例用法:

该示例演示如何将表单值导出为 TSV 文件并设置属性。

// Create PdfToTiffOptions object to set instructions
var options = new PdfToTiffOptions();
// Add input file path
options.AddInput(new FileData("path_to_your_pdf_file.pdf"));
// Set output Directory path
options.AddOutput(new DirectoryData("path_to_output_directory"));
// Perform the process
PdfConverter.Convert(options);

将 Feature ExtractFormDataToDsvOptions 的属性 Delimiter 重命名

已纠正单词拼写错误。

示例用法:

该示例演示如何将表单值导出为 TSV 文件并设置属性。

// Create ExtractFormDataToDsvOptions object to set instructions
var options = new ExtractFormDataToDsvOptions();
//Set Delimiter
options.Delimiter = '\t';
//Add Field Names to result
options.AddFieldName = true;
// Add input file path
options.AddInput(new FileData("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileData("path_to_result_csv_file.tsv"));
// Perform the process
PdfExtractor.Extract(options);

为本站点创建了 “PDF Manager” 产品页面

https://products.documentize.com/pdf-manager/

为本站点创建了 “PDF Form” 产品页面

https://products.documentize.com/pdf-form/

已修复的问题

  • 修复了将 Image 转换为 PDF 时出现的内存不足异常
  • 修复了目录生成产生错误结果的问题
  • 修复了 OptimizeResources 的 UnembedFonts 属性触发异常的问题
  • 修复了 PDF 转 HTML 在 Internet Explorer 中查看时字体未正确应用的问题
  • 修复了 PDF 转 HTML 时元素错位和格式符号错误的问题
  • 修复了 PDF 转 PDF/A 转换过程卡死的问题
  • 修复了 PDF 转 PDF/A 时表单字段及其值被移除的问题
  • 修复了 PDF 转 PDF/A 输出不符合 PDF/A_1a 标准的问题
  • 修复了 PDF 转 PDF/A 输出不符合 PDF/A_2b 标准的问题
  • 修复了 PDF 转 PDF/A-3A 输出未通过 Preflight 合规检查的问题
  • 修复了 PDF 转 PDF/A-3B 输出未通过 Preflight 合规检查的问题
2026年9月7日

v26.2

改进的 PDF 提取器属性提取功能

  • Class Extractor:可以从 PDF 文档中提取新的元数据。
  • Class PdfProperties:新增属性:FileName、Created、Modified、Application、PdfProducer。

示例用法:

示例演示如何从 PDF 文件中提取属性(FileName、Title、Author、Subject、Keywords、Created、Modified、Application、PDF Producer、页面数量)。

// Create ExtractPropertiesOptions object to set input file
var options = new ExtractPropertiesOptions("path_to_your_pdf_file.pdf");
// Perform the process and get Properties
var pdfProperties = PdfExtractor.Extract(options);
var filename = pdfProperties.FileName;
var title = pdfProperties.Title;
var author = pdfProperties.Author;
var subject = pdfProperties.Subject;
var keywords = pdfProperties.Keywords;
var created = pdfProperties.Created;
var modified = pdfProperties.Modified;
var application = pdfProperties.Application;
var pdfProducer = pdfProperties.PdfProducer;
var numberOfPages = pdfProperties.NumberOfPages;

示例用法:

示例演示如何从 PDF 流中提取属性(Title、Author、Subject、Keywords、Created、Modified、Application、PDF Producer、页面数量)。

// Create ExtractPropertiesOptions object to set input stream
var stream = File.OpenRead("path_to_your_pdf_file.pdf");
var options = new ExtractPropertiesOptions(stream);
// Perform the process and get Properties
var pdfProperties = PdfExtractor.Extract(options);
var title = pdfProperties.Title;
var author = pdfProperties.Author;
var subject = pdfProperties.Subject;
var keywords = pdfProperties.Keywords;
var created = pdfProperties.Created;
var modified = pdfProperties.Modified;
var application = pdfProperties.Application;
var pdfProducer = pdfProperties.PdfProducer;
var numberOfPages = pdfProperties.NumberOfPages;

改进的 PDF 提取器文本提取功能

  • 文本提取和提取参数的使用更加简便:可以更容易地指定输入数据并获取结果。
  • Class ExtractTextOptions:实现 IHaveInput。仅使用 1 种输入数据。支持的数据类型:File 和 Stream。
  • Method Extract(ExtractTextOptions options):返回包含结果的字符串。
  • Object ResultContainer:已从 ExtractTextOptions 中移除。

示例用法:

示例演示如何从 PDF 文件中提取文本内容。

// Create ExtractTextOptions object to set input file path
var options = new ExtractTextOptions("path_to_your_pdf_file.pdf");
// Perform the process and get the extracted text
var textExtracted = PdfExtractor.Extract(options);

示例用法:

示例演示如何从 PDF 流中提取文本内容。

// Create ExtractTextOptions object to set input stream
var stream = File.OpenRead("path_to_your_pdf_file.pdf");
var options = new ExtractTextOptions(stream);
// Perform the process and get the extracted text
var textExtracted = PdfExtractor.Extract(options);

示例用法:

示例演示如何在指定 TextFormattingMode 的情况下提取 PDF 文档的文本内容。

// Create ExtractTextOptions object to set input file path and TextFormattingMode
var options = new ExtractTextOptions("path_to_your_pdf_file.pdf", TextFormattingMode.Pure);
// Perform the process and get the extracted text
var textExtracted = PdfExtractor.Extract(options);

示例用法:

示例演示如何以最简方式从 PDF 文件中提取文本。

// Perform the process and get the extracted text
var textExtracted = PdfExtractor.Extract(new ExtractTextOptions("path_to_your_pdf_file.pdf", TextFormattingMode.Pure));

已修复的错误

  • Jpeg2000 文件转换为 PDF 失败
  • PDF 合并问题
  • PDF 页面尺寸调整后输出为空白
  • PDF 转 HTML:高亮颜色可见但文本缺失
  • PDF 转 HTML:生成的 HTML 不正确
  • PDF 转 HTML:左侧竖排文字缺失
  • PDF 转 HTML:页眉中的文本消失
  • PDF 转 HTML:透明批注文本不可见
  • PDF 转 PNG:部分中文字符渲染失败
2026年9月7日

v26.1

新特性:PDF 提取器的属性抽取

  • 提取 PDF 属性:标题、作者、主题、关键字、页数。
  • Class PdfExtractor:新增方法 Extract 用于抽取 PDF 属性。
  • Class ExtractPropertiesOptions:表示 PdfExtractor 插件的 PDF 属性抽取选项。
  • Class PdfProperties:表示 PDF 文档的属性和元信息。
  • Interface IHaveInput:用于只有单一输入数据的选项。
  • Class OptionsWithInput:用于只有单一输入数据的选项。
  • Full Free functional.

示例用法:

该示例演示如何从 PDF 文件中抽取属性(标题、作者、主题、关键字、页数)。

// 创建 ExtractPropertiesOptions 对象并设置输入文件
var options = new ExtractPropertiesOptions("path_to_your_pdf_file.pdf");
// 执行过程并获取属性
var pdfProperties = PdfExtractor.Extract(options);
var title = pdfProperties.Title;
var author = pdfProperties.Author;
var subject = pdfProperties.Subject;
var keywords = pdfProperties.Keywords;
var numberOfPages = pdfProperties.NumberOfPages;

示例用法:

该示例演示如何从 PDF 流中抽取属性(标题、作者、主题、关键字、页数)。

// 创建 ExtractPropertiesOptions 对象并设置输入流
var stream = File.OpenRead("path_to_your_pdf_file.pdf");
var options = new ExtractPropertiesOptions(stream);
// 执行过程并获取属性
var pdfProperties = PdfExtractor.Extract(options);
var title = pdfProperties.Title;
var author = pdfProperties.Author;
var subject = pdfProperties.Subject;
var keywords = pdfProperties.Keywords;
var numberOfPages = pdfProperties.NumberOfPages;

示例用法:

该示例演示如何以最简的方式从 PDF 文件中抽取属性。

// 执行过程并获取属性
var pdfProperties = PdfExtractor.Extract(new ExtractPropertiesOptions("path_to_your_pdf_file.pdf"));

增强功能

  • HTML 转 PDF 增强支持图片的 alt 文本
  • PDF 转 PDFA1b 合规性提升

已修复的错误

  • 尝试优化 PDF 文件时出现错误
  • 表单字段垂直对齐问题
  • 修复表单字段中日文文本显示问题
  • HTML 转 PDF – 表格格式化问题
  • 在 PDF 转 PDF/A 之前进行 PDF 大小优化导致输出损坏的问题
  • PDF 转 DOC – 表格渲染不正确
  • PDF 转 Excel – 输出文件格式问题
  • PDF 转 HTML – 转换过程中出现 ArgumentException
  • PDF 转 HTML 转换时缺失部分链接
  • 将 PDF 转换为 HTML 时出现文字缺失
2026年9月7日

v25.12

新插件 PDF 表单

  • Class PdfForm:包含插件 FormFlattener、FormExporter 的所有功能。同时支持删除和获取字段。
  • Class FormFlattener:即将删除,请使用 PdfForm
  • Class FormFlattenerOptions:已重命名为 Class FlattenFieldsOptions
  • Class GetFieldNamesOptions:用于设置获取字段名称的选项。
  • Class RemoveFieldsOptions:用于设置删除字段的选项。
  • 请参阅 The New Plugin Architecture

示例用法:

示例演示如何在 PDF 文件中扁平化字段。

// 创建 FlattenFieldsOptions 对象以设置指令
var options = new FlattenFieldsOptions();
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// 执行处理
PdfForm.Flatten(options);

示例用法:

示例演示如何从 PDF 文件中获取字段名称。

var fieldNames = PdfForm.GetNames(new GetFieldNamesOptions("path_to_your_pdf_file.pdf"));

示例用法:

示例演示如何将表单值导出为 CSV 文件。

// 创建 ExtractFormDataToDsvOptions 对象以设置指令
var options = new ExtractFormDataToDsvOptions(',', true);
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_result_csv_file.csv"));
// 执行处理
PdfForm.Extract(options);

示例用法:

示例演示如何从 PDF 文件中删除字段。

// 创建 RemoveFieldsOptions 对象以设置指令
var options = new RemoveFieldsOptions();
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// 执行处理
PdfForm.Remove(options);

PDF 提取器的更改

  • Method ExtractText:已重命名为 Method Extract
  • Method ExtractImages:已重命名为 Method Extract
  • Method ExtractFormData:已重命名为 Method Extract

示例用法:

示例演示如何提取 PDF 文档的文本内容。

// 创建 ExtractTextOptions 对象以设置指令
var options = new ExtractTextOptions();
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 执行处理
var results = PdfExtractor.Extract(options);
// 从 ResultContainer 对象中获取提取的文本
var textExtracted = results.ResultCollection[0].ToString();

示例用法:

示例演示如何提取 PDF 文档中的图像。

// 创建 ExtractImagesOptions 以设置指令
var options = new ExtractImagesOptions();
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出目录路径
options.AddOutput(new DirectoryDataSource("path_to_results_directory"));
// 执行处理
var results = PdfExtractor.Extract(options);
// 获取图像结果的路径
var imageExtracted = results.ResultCollection[0].ToFile();

示例用法:

示例演示如何将表单值导出为 CSV 文件。

// 创建 ExtractFormDataToDsvOptions 对象以设置指令
var options = new ExtractFormDataToDsvOptions(',', true);
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_result_csv_file.csv"));
// 执行处理
PdfExtractor.Extract(options);

增强功能

  • Class PdfConverterOptions、PdfToXlsOptions - 使用 Class PluginBaseOptions
  • PDF/A-1b 转换
  • PDF/A-2b 转换

已修复的错误

  • 修复了 HTML 转 PDF 转换的格式问题
  • 修复了 PDF 转 HTML 转换时链接丢失的问题
2026年9月7日

v25.11

新插件 PDF Converter

  • Class PdfConverter:包含所有插件功能:DocConverter、XlsConverter、HtmlConverter、JpegConverter、PdfAConverter、PngConverter、TiffConverter。
  • Class DocConverter:即将删除,请使用 PdfConverter
  • Class XlsConverter:即将删除,请使用 PdfConverter
  • Class HtmlConverter:即将删除,请使用 PdfConverter
  • Class JpegConverter:即将删除,请使用 PdfConverter
  • Class PdfAConverter:即将删除,请使用 PdfConverter
  • Class PngConverter:即将删除,请使用 PdfConverter
  • Class TiffConverter:即将删除,请使用 PdfConverter
  • Class PdfAConvertOptions:已重命名为 Class PdfToPdfAOptions
  • 请参阅 新插件架构

示例用法:

此示例演示如何将 PDF 文档转换为 Doc 格式。

// Create PdfToDocOptions object to set instructions
var options = new PdfToDocOptions();
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_file.doc"));
// Perform the process
PdfConverter.Convert(options);

示例用法:

此示例演示如何将 PDF 转换为 XLSX 文档。

// Create PdfToXlsOptions object to set instructions
var options = new PdfToXlsOptions();
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_xlsx_file.xlsx"));
// Perform the process
PdfConverter.Convert(options);

示例用法:

此示例演示如何将 PDF 转换为 HTML 文档。

// Create PdfToHtmlOptions object to set output data type as file with embedded resources
var options = new PdfToHtmlOptions(PdfToHtmlOptions.SaveDataType.FileWithEmbeddedResources);
// Add input file path
options.AddInput(new FileDataSource("path_to_input.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_output.html"));
 //Perform the process
PdfConverter.Convert(options);

示例用法:

此示例演示如何将 HTML 转换为 PDF 文档。

// Create HtmlToPdfOptions
var options = new HtmlToPdfOptions();
// Add input file path
options.AddInput(new FileDataSource("path_to_input.html"));
 // Set output file path
options.AddOutput(new FileDataSource("path_to_output.pdf"));
 //Perform the process
PdfConverter.Convert(options);

示例用法:

此示例演示如何将 PDF 文档转换为 JPEG 格式。

// Create PdfToJpegOptions object to set instructions
var options = new PdfToJpegOptions();
// Add input File path
options.AddInput(new FileDataSource("path_to_input.pdf"));
// Set output Directory path
options.AddOutput(new DirectoryDataSource("path_to_output_directory"));
// Perform the process
PdfConverter.Convert(options);

示例用法:

此示例演示如何将 PDF 文档转换为 PNG 格式。

// Create PdfToPngOptions object to set instructions
var options = new PdfToPngOptions();
// Add input File path
options.AddInput(new FileDataSource("path_to_input.pdf"));
// Set output Directory path
options.AddOutput(new DirectoryDataSource("path_to_output_directory"));
// Perform the process
PdfConverter.Convert(options);

示例用法:

此示例演示如何将 PDF 文档转换为 TIFF 格式。

// Create PdfToTiffOptions object to set instructions
var options = new PdfToTiffOptions();
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output Directory path
options.AddOutput(new DirectoryDataSource("path_to_output_directory"));
// Perform the process
PdfConverter.Convert(options);

示例用法:

此示例演示如何将 PDF 文档转换为 PDF/A 格式(本例为 PDF/A‑3b):

// Create the options class to set up the conversion process
var options = new PdfToPdfAOptions
{
    PdfAVersion = PdfAStandardVersion.PDF_A_3B
};

// Add the source file
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf")); // replace with your actual file path

// Add the path to save the converted file
options.AddOutput(new FileDataSource("path_to_the_converted_file.pdf"));

// Run the conversion
PdfConverter.Convert(options);

示例用法:

此示例演示如何验证 PDF 文档是否符合 PDF/A 格式(本例为 PDF/A‑1a):

// Create the options class to set up the validation process
var options = new PdfAValidateOptions
{
    PdfAVersion = PdfAStandardVersion.PDF_A_1A
};

// Add one or more files to be validated
options.AddInput(new FileDataSource("path_to_your_first_pdf_file.pdf")); // replace with your actual file path
options.AddInput(new FileDataSource("path_to_your_second_pdf_file.pdf"));
// add more files as needed

// Run the validation and get results
var resultContainer = PdfConverter.Validate(options);

// Check the resultContainer.ResultCollection property for validation results for each file:
for (var i = 0; i < resultContainer.ResultCollection.Count; i++)
{
    var result = resultContainer.ResultCollection[i];
    var validationResult = (PdfAValidationResult) result.Data;
    var isValid = validationResult.IsValid; // Validation result for the i-th document
}

新插件 PDF Security

  • Class PdfSecurity:包含所有插件功能:Security、Signature、Timestamp。
  • Class Security:即将删除,请使用 PdfSecurity
  • Class Signature:即将删除,请使用 PdfSecurity
  • Class Timestamp:即将删除,请使用 PdfSecurity
  • Class DecryptionOptions:已重命名为 Class DecryptOptions
  • Class EncryptionOptions:已重命名为 Class EncryptOptions
  • Class SignOptions:现在包含 Class Timestamp 的属性。
  • 请参阅 新插件架构

示例用法:

此示例演示如何加密 PDF 文档。

// Create EncryptOptions object to set instructions
var options = new EncryptOptions("123456", "qwerty");
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Perform the process
PdfSecurity.Encrypt(options);

示例用法:

此示例演示如何解密 PDF 文档。

// Create DecryptOptions object to set instructions
var options = new DecryptOptions("123456");
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Perform the process
PdfSecurity.Decrypt(options);

示例用法:

此示例演示如何对 PDF 文档进行签名。

// Create SignOptions object to set instructions
var options = new SignOptions("path_to_your_pfx_file.pfx", "password_of_your_pfx_file");
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Perform the process
PdfSecurity.Sign(options);

示例用法:

此示例演示如何在签名时添加时间戳。

// Create SignOptions object to set instructions
var options = new SignOptions("path_to_your_pfx_file.pfx", "password_for_your_pfx_file");
options.TimestampOptions = new TimestampOptions("server_url");
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Perform the process
PdfSecurity.Sign(options);

插件 PdfChatGpt 集成到 PdfManager

  • Class PdfChatGpt:即将删除,请使用 PdfManager
  • Class PdfChatGptRequestOptions:已重命名为 Class ChatGptRequestOptions

新增用于 ChatGpt 的选项

  • Class ChatCompletion:用于检查请求结果。
  • Class Choice:用于检查请求结果。
  • Class Usage:用于检查请求结果。
  • Class ChatGptConsts:用于使用模型名称、API URL 等额外设置。

示例用法:

此示例演示如何通过向请求添加消息来使用 ChatGpt。

var options = new ChatGptRequestOptions();
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf")); 
options.ApiKey = "Your API key."; // You need to provide the key to access the API.
options.MaxTokens = 1000; // The maximum number of tokens to generate in the chat completion.

// Add the request messages.
options.Messages.Add(new Message
{
    Content = "You are a helpful assistant.",
    Role = Role.System
});
options.Messages.Add(new Message
{
    Content = "What is the biggest pizza diameter ever made?",
    Role = Role.User
});

// Process the request.
var result = await PdfManager.CreatePdfByChatGptRequestAsync(options);

var fileResultPath = result.ResultCollection[0].Data;
var chatCompletionObject = result.ResultCollection[1].Data as ChatCompletion; // The ChatGPT API chat completion object.

增强功能

  • PDF 转图片 – 提升转换性能
  • PDF 转 TIFF – 提升转换速度
  • PDF 转 Doc – 提升性能

已修复的错误

  • 修复 HTML 转 PDF 时生成文件的格式问题
  • 修复 PDF 转 TIFF 转换中的性能问题
  • 修复 HTML 转 PDF 时外部 CSS 资源未正确应用的问题
2026年9月7日

v25.10

新插件 PDF Extractor

  • Class PdfExtractor:包含插件的所有功能:TextExtractor、ImageExtractor、FormExporter。
  • Class TextExtractor:即将删除,请使用 PdfExtractor
  • Class ImageExtractor:即将删除,请使用 PdfExtractor
  • Class FormExporter:即将删除,请使用 PdfExtractor
  • Class TextExtractorOptions:已重命名为 Class ExtractTextOptions
  • Class ImageExtractorOptions:已重命名为 Class ExtractImagesOptions
  • Class FormExportToDsvOptions:已重命名为 Class ExtractFormDataToDsvOptions
  • 参见 The New Plugin Architecture

示例用法:

演示如何提取 PDF 文档的文本内容。

// Create ExtractTextOptions object to set instructions
var options = new ExtractTextOptions();
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Perform the process
var results = PdfExtractor.ExtractText(options);
// Get the extracted text from the ResultContainer object
var textExtracted = results.ResultCollection[0].ToString();

示例用法:

演示如何在 TextFormattingMode 下提取 PDF 文档的文本内容。

// Create ExtractTextOptions object to set TextFormattingMode
var options = new ExtractTextOptions(TextFormattingMode.Pure);
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Perform the process
var results = PdfExtractor.ExtractText(options);
// Get the extracted text from the ResultContainer object
var textExtracted = results.ResultCollection[0].ToString();

示例用法:

演示如何从 PDF 文档中提取图像。

// Create ExtractImagesOptions to set instructions
var options = new ExtractImagesOptions();
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output Directory path
options.AddOutput(new DirectoryDataSource("path_to_results_directory"));
// Perform the process
var results = PdfExtractor.ExtractImages(options);
// Get path to image result
var imageExtracted = results.ResultCollection[0].ToFile();

示例用法:

演示如何将表单值导出为 CSV 文件。

// Create ExtractFormDataToDsvOptions object to set instructions
var options = new ExtractFormDataToDsvOptions(',', true);
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_csv_file.csv"));
// Perform the process
PdfExtractor.ExtractFormData(options);

新插件 PDF Manager

  • Class PdfManager:包含插件的所有功能:Merger、Optimizer、Splitter、TableGenerator、TocGenerator。
  • Class Merger:即将删除。
  • Class Optimizer:即将删除,请使用 PdfManager
  • Class Splitter:即将删除,请使用 PdfManager
  • Class TableGenerator:即将删除,请使用 PdfManager
  • Class TocGenerator:即将删除,请使用 PdfManager
  • 参见 The New Plugin Architecture

示例用法:

演示如何合并两个 PDF 文档。

// Create MergeOptions object to set instructions
var options = new MergeOptions();
// Add input file paths
options.AddInput(new FileDataSource("path_to_your_pdf_file_1.pdf"));
options.AddInput(new FileDataSource("path_to_your_pdf_file_2.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Perform the process
PdfManager.Merge(options);

示例用法:

演示如何拆分 PDF 文档。

// Create SplitOptions object to set instructions
var options = new SplitOptions();
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file paths
options.AddOutput(new FileDataSource("path_to_result_pdf_file_1.pdf"));
options.AddOutput(new FileDataSource("path_to_result_pdf_file_2.pdf"));
// Perform the process
PdfManager.Split(options);

示例用法:

演示如何优化 PDF 文档。

// Create OptimizeOptions object to set instructions
var options = new OptimizeOptions();
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Perform the process
PdfManager.Optimize(options);

示例用法:

演示如何旋转 PDF 文档。

// Create RotateOptions object to set instructions
var options = new RotateOptions();
// Set new Rotation
options.Rotation = Rotation.On90;
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Perform the process
PdfManager.Rotate(options);

示例用法:

演示如何重新设置 PDF 页面大小。

// Create ResizeOptions object to set instructions
var options = new ResizeOptions();
// Set new PageSize
options.PageSize = PageSize.A3;
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Perform the process
PdfManager.Resize(options);

示例用法:

演示如何压缩 PDF 文档。

// Create CompressOptions object to set instructions
var options = new CompressOptions();
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Perform the process
PdfManager.Compress(options);

示例用法:

演示如何向 PDF 文件中添加表格。

// Configure table options
var options = new TableOptions();
options.InsertPageBefore(1)
   .AddTable()
        .AddRow()
            .AddCell().AddParagraph("Name")
            .AddCell().AddParagraph("Age")
        .AddRow()
            .AddCell().AddParagraph("Bob")
            .AddCell().AddParagraph("12")
        .AddRow()
            .AddCell().AddParagraph("Sam")
            .AddCell().AddParagraph("20")
        .AddRow()
            .AddCell().AddParagraph("Sandy")
            .AddCell().AddParagraph("26")
        .AddRow()
            .AddCell().AddParagraph("Tom")
            .AddCell().AddParagraph("12")
        .AddRow()
            .AddCell().AddParagraph("Jim")
            .AddCell().AddParagraph("27");
// Add input file path
options.AddInput(new FileDataSource("path_to_input.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_output.pdf"));
// Perform the process
PdfManager.AddTable(options);

示例用法:

演示如何向 PDF 文件添加目录(Table of Contents)。

// Create TocOptions object to set instructions
var options = new TocOptions();
// Set the Title
options.Title = "My Table of Contents";
// Design Headings
options.Headings.Add(new TocHeading("Introduction", 2));
options.Headings.Add(new TocHeading("Chapter I", 3));
options.Headings.Add(new TocHeading("Chapter II", 4));
options.Headings.Add(new TocHeading("Chapter III", 5));
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Perform the process
PdfManager.AddTableOfContents(options);

示例用法:

演示如何在生成目录时创建书签。

// Create TocOptions object to set instructions
var options = new TocOptions();
// Set the Title
options.Title = "My Table of Contents";
// Generate links in bookmarks
options.GenerateBookmarks = true;
// Design Headings
options.Headings.Add(new TocHeading("Introduction", 2, false, 1));
options.Headings.Add(new TocHeading("Chapter I", 3, true, 1));
options.Headings.Add(new TocHeading("Chapter II", 4, true, 1));
options.Headings.Add(new TocHeading("Example A", 4, true, 2));
options.Headings.Add(new TocHeading("Example B", 4, true, 2));
options.Headings.Add(new TocHeading("Example C", 4, true, 2));
options.Headings.Add(new TocHeading("Example D", 4, true, 2));
options.Headings.Add(new TocHeading("Chapter III", 5, true, 1));
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Perform the process
PdfManager.AddTableOfContents(options);

示例用法:

演示如何将目录保存为流。

// Create TocOptions object to set instructions
var options = new TocOptions();
// Set the Title
options.Title = "My Table of Contents";
// Design Headings
options.Headings.Add(new TocHeading("Introduction", 2, false, 1));
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output stream 
var outputStream = new MemoryStream();
options.AddOutput(new StreamDataSource(outputStream));
options.CloseOutputStreams = false;
// Perform the process
PdfManager.AddTableOfContents(options);

TableGenerator 可用性改进

  • Class TableGenerator:已设为静态,无需使用构造函数。
  • Class TableGenerator:已标记为过时,请改用 PdfManager。

PdfChatGpt 可用性改进

  • Class PdfChatGpt:已设为静态,无需使用构造函数。
  • Class PdfChatGptRequestOptions:新增属性 CancellationToken(从 PdfChatGpt 移动而来)。

示例用法:

演示如何通过向请求添加消息来使用 PdfChatGpt 插件。

var options = new PdfChatGptRequestOptions();
options.AddOutput(new FileDataSource("PdfChatGPT_output.pdf")); // 添加输出文件路径。
options.ApiKey = "Your API key."; // 需要提供用于访问 API 的密钥。
options.MaxTokens = 1000; // Chat 完成时生成的最大 token 数量。
// 取消示例
// var cancelTokenSource = new CancellationTokenSource();
// var cToken = cancelTokenSource.Token;
// options.CancellationToken = cToken;

// 添加请求消息。
options.Messages.Add(new Message
{
    Content = "You are a helpful assistant.",
    Role = Role.System
});
options.Messages.Add(new Message
{
    Content = "What is the biggest pizza diameter ever made?",
    Role = Role.User
});

// 处理请求。
await PdfChatGpt.ProcessAsync(options);

已修复的错误

  • 修复了 HTML 转 PDF 时的元数据问题
  • 修复了 PDF 转 PDF/A_3b 时的文本格式和图片缩放问题
  • 修复了 PDF 转 PDFA 时生成的文件在打印时出现错误
  • 修复了 PDF 转 HTML 时生成的图像包含背景
  • 修复了 HTML 转 PDF 时部分中文字符显示为方框
  • 修复了 HTML 转 PDF 时 Base64 自定义字体未生效
  • 修复了 HTML 转 PDF 时表单字段 CSS 未被应用
  • 修复了 HTML 转 PDF 时图表未正确渲染
  • 修复了 HTML 转 PDF 时特殊字符未渲染
2026年9月7日

v25.9

改进了 DocConverter 的可用性并添加了额外模式

  • Class DocConverter:是静态的,不需要使用构造函数。
  • Class PdfToDocOptions:添加了属性 “Mode”,允许您自定义转换过程。
  • Enum DocConversionMode:允许您自定义 pdf 到 doc 的转换过程。取值:
    • TextBox:此模式速度快,能够在最大程度上保留 PDF 文件的原始外观,但生成文档的可编辑性可能受限。原始 PDF 中每个视觉上分组的文本块都会在生成的文档中转换为一个文本框。
    • Flow:完整识别模式,引擎执行分组和多层分析,以恢复原始文档作者的意图,生成可最大程度编辑的文档。

使用示例:

// 此示例演示如何将 PDF 文档转换为 Doc 格式。
// 创建 PdfToDocOptions 对象以设置指令
var options = new PdfToDocOptions();
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_result_file.doc"));
// 执行过程
DocConverter.Process(options);

使用示例(设置 Mode):

// 此示例演示如何在设置 Mode 的情况下将 PDF 文档转换为 Doc 格式。
// 创建 PdfToDocOptions 对象以设置指令
var options = new PdfToDocOptions();
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_result_file.doc"));
// 设置 Mode
options.Mode = DocConversionMode.Flow;
// 执行过程
DocConverter.Process(options);

改进了 PdfAConverter 的可用性

Class PdfAConverter:是静态的,不需要使用构造函数。

使用示例(PDF/A 转换):

// 此示例演示如何将 PDF 文档转换为 PDF/A 格式(此例为 PDF/A-3b):
var options = new PdfAConvertOptions
{
    PdfAVersion = PdfAStandardVersion.PDF_A_3B
};

// 添加源文件
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf")); // 替换为实际文件路径

// 添加保存转换后文件的路径
options.AddOutput(new FileDataSource("path_to_the_converted_file.pdf"));

// 运行转换
PdfAConverter.Process(options);

使用示例(PDF/A 验证):

// 此示例演示如何验证 PDF 文档是否符合 PDF/A 格式(此例为 PDF/A-1a):
var options = new PdfAValidateOptions
{
    PdfAVersion = PdfAStandardVersion.PDF_A_1A
};

// 添加一个或多个待验证的文件
options.AddInput(new FileDataSource("path_to_your_first_pdf_file.pdf")); // 替换为实际文件路径
options.AddInput(new FileDataSource("path_to_your_second_pdf_file.pdf"));
// 根据需要添加更多文件

// 运行验证并获取结果
var resultContainer = PdfAConverter.Process(options);

// 检查 resultContainer.ResultCollection 属性以获取每个文件的验证结果:
for (var i = 0; i < resultContainer.ResultCollection.Count; i++)
{
    var result = resultContainer.ResultCollection[i];
    var validationResult = (PdfAValidationResult)result.Data;
    var isValid = validationResult.IsValid; // 第 i 个文档的验证结果
}

改进了 Timestamp 的可用性

Class Timestamp:是静态的,不需要使用构造函数。

使用示例:

// 此示例演示如何向文档添加时间戳。
// 创建 AddTimestampOptions 对象以设置指令
var options = new AddTimestampOptions("path_to_your_pfx_file.pfx", "password_for_your_pfx_file", "timestamp_server_url");
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// 执行过程
Timestamp.Process(options);

更新的文档

更新了示例,添加了额外示例:

  • 关于许可证和评估的信息
  • 产品页面
  • PDF 表格生成器
  • PDF 目录生成器
  • PDF 时间戳添加器
  • PDF/A 转换器
  • PDF 图像提取器
  • PDF 文本提取器
  • PDF 转 XLS 转换器
  • PDF 转 HTML 转换器

已修复的错误

  • 修复了 HTML 转 PDF 的问题
  • 修复了 PDF 转 PDF/A-2B 的问题
  • 改进了 PDF 转 JPEG:某些文本字符出现方块问题
  • 修复了 PDF 转 TIFF 的渲染问题
  • 修复了 PDF 转 JPEG 的意外异常
2026年9月7日

v25.8

改进了 JpegConverter 的可用性

Class JpegConverter:为静态类,无需使用构造函数。

示例用法:

// 示例演示如何将 PDF 文档转换为 JPEG 格式。
// 创建 PdfToJpegOptions 对象以设置指令
var options = new PdfToJpegOptions();
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_input.pdf"));
// 设置输出目录路径
options.AddOutput(new DirectoryDataSource("path_to_output_directory"));
// 执行处理
JpegConverter.Process(options);

改进了 PngConverter 的可用性

Class PngConverter:为静态类,无需使用构造函数。

示例用法:

// 示例演示如何将 PDF 文档转换为 PNG 格式。
// 创建 PdfToPngOptions 对象以设置指令
var options = new PdfToPngOptions();
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_input.pdf"));
// 设置输出目录路径
options.AddOutput(new DirectoryDataSource("path_to_output_directory"));
// 执行处理
PngConverter.Process(options);

改进了 XlsConverter 的可用性

  • Class XlsConverter:为静态类,无需使用构造函数。
  • Class XlsConverter:已修复描述。

示例用法:

// 示例演示如何将 PDF 转换为 XLSX 文档。
// 创建 PdfToXlsOptions 对象以设置指令
var options = new PdfToXlsOptions();
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_result_xlsx_file.xlsx"));
// 执行处理
XlsConverter.Process(options);

改进了 Signature 的可用性

  • Class Signature:为静态类,无需使用构造函数。
  • Class Signature:已修复描述。
  • Class Signature:已移除接口 IPlugin。

示例用法:

// 示例演示如何对 PDF 文档进行签名。
// 创建 SignOptions 对象以设置指令
var options = new SignOptions("path_to_your_pfx_file.pfx", "password_of_your_pfx_file");
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// 执行处理
Signature.Process(options);

修改了 PdfToHtmlOptions 的构造函数

构造函数及参数已优化。

修改了 TextExtractor 的评估标记

评估标记的文字已更改。

更新了文档

更新了示例,新增了以下示例:

  • PDF 转 JPEG 转换器
  • PDF 转 PNG 转换器
  • PDF 转 TIFF 转换器
  • PDF 表单扁平化
  • HTML 转换器
  • PDF 安全性
  • PDF 优化器
  • PDF 合并器
  • PDF 拆分器

修复的错误

  • 修复了注释相关的问题
  • 修复了调整大小后的问题
  • 修复了 PDF 转 PDF/A 时字体名称的转换问题
  • 修复了 PDF 转 DOCX 时标题中出现空格以及其他问题
  • 修复了 HTML 转 PDF 时透明 PNG 背景的问题
  • 修复了压缩 PDF 的问题——改进了与 Adobe Acrobat 的兼容性
2026年9月7日

v25.7

改进了 Text Extractor 的可用性

  • Class TextExtractor:是静态的,无需使用构造函数。
  • Class TextExtractor:在评估模式下的行为已改进。处理 4 页以上的文档时不再抛出异常。
  • Class TextExtractor:修复了 Process 方法中的问题。
  • Class PdfExtractorOptions:已删除。
  • Class TextExtractorOptions:已重构。
  • Enum TextFormattingMode:已命名并改进。

示例用法:

// 该示例演示如何提取 PDF 文档的文本内容。
// 创建 TextExtractorOptions 对象以设置指令
var options = new TextExtractorOptions(TextFormattingMode.Pure);
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
/ / 执行处理
var results = TextExtractor.Process(options);
// 从 ResultContainer 对象获取提取的文本
var textExtracted = results.ResultCollection[0].ToString();

改进了 Html Converter 的可用性

  • Class HtmlConverter:是静态的,无需使用构造函数。
  • Class HtmlConverter:修复了 Process 方法中的问题。
  • Class HtmlConverter:移除了 IDisposable 逻辑。
  • Class PdfConverterOptions:已删除。

示例用法:

// 该示例演示如何将 PDF 转换为 HTML 文档。
// 创建 PdfToHtmlOptions 对象,将输出数据类型设为带嵌入资源的文件
var options = new PdfToHtmlOptions(PdfToHtmlOptions.SaveDataType.FileWithEmbeddedResources);
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_input.pdf"));
/ / 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_output.html"));
// 执行处理
HtmlConverter.Process(options);

// 该示例演示如何将 HTML 转换为 PDF 文档。
// 创建 HtmlToPdfOptions
var options = new HtmlToPdfOptions();
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_input.html"));
/ / 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_output.pdf"));
// 执行处理
HtmlConverter.Process(options);

改进了 Image Extractor 的可用性

  • Class ImageExtractor:是静态的,无需使用构造函数。

示例用法:

// 该示例演示如何从 PDF 文档中提取图像。
// 创建 ImageExtractorOptions 以设置指令
var options = new ImageExtractorOptions();
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
/ / 设置输出目录路径
options.AddOutput(new DirectoryDataSource("path_to_results_directory"));
// 执行处理
var results = ImageExtractor.Process(options);
// 获取图像结果的路径
var imageExtracted = results.ResultCollection[0].ToFile();

小改动

  • 内部修复。
  • 修复了 Tiff Converter 的示例和提示。
  • 缩短了页面优化的时长。
  • 修复:PDF 转 PNG 时输出的图像不正确。
  • 修复:PDF 转 PNG 时中文字符显示异常。
  • 改进:PDF 转 HTML 的性能。
2026年9月7日

v25.6

改进了 Tiff 转换器的可用性

  • Class PdfToTiffOptions:为转换添加了额外参数 - Compression。
  • Class PdfToTiffOptions:为转换添加了额外参数 - ColorDepth。
  • Class TiffConverter 是静态的,无需使用构造函数。
  • 改进了主要示例。

示例用法:

// The example demonstrates how to convert PDF document into TIFF format.
// Create PdfToTiffOptions object to set instructions
var options = new PdfToTiffOptions();
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output Directory path
options.AddOutput(new DirectoryDataSource("path_to_output_directory"));
// Perform the process
TiffConverter.Process(options);

// The example demonstrates how to convert PDF document into TIFF format with additional parameters.
// Create PdfToTiffOptions object to set instructions
var options = new PdfToTiffOptions();
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output Directory path
options.AddOutput(new DirectoryDataSource("path_to_output_directory"));
// Optional parameters
options.PageList = new List<int> { 1, 3 };
options.MultiPage = true;
options.OutputResolution = 400;
options.Compression = TiffCompression.RLE;
options.ColorDepth = TiffColorDepth.Format24bpp;
// Perform the process
TiffConverter.Process(options);

小修复

  • Internal fixes.
2026年9月7日

v25.5

新增插件:Form Exporter

  • Class FormExporter:表示 Documentize.FormExporter 插件,用于将 PDF 文档的表单值导出为 DSV 或 CSV 文件
  • Class FormExportToDsvOptions:表示通过 Documentize.FormExporter 插件将 PDF 文档的表单值导出为 DSV 或 CSV 文件的选项

示例用法:

// The example demonstrates how to Export Form values to CSV file.
// Create FormExportToDsvOptions object to set instructions
var options = new FormExportToDsvOptions(',', true);
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
 // Set output file path
options.AddOutput(new FileDataSource("path_to_result_csv_file.csv"));
 // Perform the process
FormExporter.Process(options);

改进了 Security 的可用性

  • 该类为静态类,无需使用构造函数。
  • 改进了主要示例。

示例用法:

// The example demonstrates how to encrypt PDF document.
// Create EncryptionOptions object to set instructions
var options = new EncryptionOptions("123456", "qwerty");
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
 // Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
 // Perform the process
Security.Process(options);

// The example demonstrates how to decrypt PDF document.
// Create DecryptionOptions object to set instructions
var options = new DecryptionOptions("123456");
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
 // Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
 // Perform the process
Security.Process(options);

小幅修复

  • 改进了类提示和许可证信息。
2026年9月7日

v25.4

改进了 Optimizer 的可用性

  • 类是静态的,不需要使用构造函数。
  • 改进了主要示例。
  • 添加了额外示例。

示例用法:

// 示例演示如何优化 PDF 文档。
// 创建 OptimizeOptions 对象以设置指令
var options = new OptimizeOptions();
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// 执行处理
Optimizer.Process(options);

// 示例演示如何旋转 PDF 文档。
// 创建 RotateOptions 对象以设置指令
var options = new RotateOptions();
// 设置新的旋转角度
options.Rotation = Rotation.On90;
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// 执行处理
Optimizer.Process(options);

// 示例演示如何调整 PDF 文档尺寸。
// 创建 ResizeOptions 对象以设置指令
var options = new ResizeOptions();
// 设置新的页面尺寸
options.PageSize = PageSize.A3;
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// 执行处理
Optimizer.Process(options);

// 示例演示如何压缩 PDF 文档。
// 创建 CompressOptions 对象以设置指令
var options = new CompressOptions();
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// 执行处理
Optimizer.Process(options);

改进了 Plugin Splitter 的可用性

  • 类是静态的,不需要使用构造函数。
  • 改进了主要示例。

示例用法:

// 示例演示如何拆分 PDF 文档。
// 创建 SplitOptions 对象以设置指令
var options = new SplitOptions();
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_result_pdf_file_1.pdf"));
options.AddOutput(new FileDataSource("path_to_result_pdf_file_2.pdf"));
// 执行处理
Splitter.Process(options);

改进了 Plugin Merger 的可用性

  • 类是静态的,不需要使用构造函数。
  • 改进了主要示例。

示例用法:

// 示例演示如何合并两个 PDF 文档。
// 创建 MergeOptions 对象以设置指令
var options = new MergeOptions();
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file_1.pdf"));
options.AddInput(new FileDataSource("path_to_your_pdf_file_2.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// 执行处理
Merger.Process(options);

小错误修复

  • 改进了类提示。
2026年9月7日

v25.3

新增插件:Form Flattener

  • Class FormFlattener:表示 Documentize.FormFlattener 插件,用于在 PDF 文档中扁平化字段。
  • Class FormFlattenerOptions:表示通过 Documentize.FormFlattener 插件对文档进行字段扁平化的选项。

示例用法:

// The example demonstrates how to Flatten fields in PDF file.
// Create FormFlattenerOptions object to set instructions
var options = new FormFlattenerOptions();
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Optional parameter for skip the field with name "Surname".
options.SkipFields.Add("Surname");
// Perform the process
FormFlattener.Process(options);

// The example demonstrates how to Get Field Names from PDF file.
var fieldNames = FormFlattener.GetFieldNames("path_to_your_pdf_file.pdf");

小幅修复

  • 改进了类提示和示例。
2026年9月7日

v25.2

新增插件:TOC Generator

  • Class TocGenerator:表示 Documentize.TocGenerator 插件。用于向 PDF 文档添加目录。
  • Class TocOptions:表示通过 Documentize.TocGenerator 插件向文档添加目录的选项。
  • Class TocHeading:表示通过 Documentize.TocGenerator 插件为文档目录设置标题或标题层级的选项。

使用示例:

// 该示例演示如何向 PDF 文件添加目录。
var options = new TocOptions();
// 设置标题
options.Title = "My Table of Contents";
// 在书签中生成链接
options.GenerateBookmarks = true;
// 设计标题
options.Headings.Add(new TocHeading("Introduction", 2, false, 1));
options.Headings.Add(new TocHeading("Chapter I", 3, true, 1));
options.Headings.Add(new TocHeading("Chapter II", 4, true, 1));
options.Headings.Add(new TocHeading("Example A", 4, true, 2));
options.Headings.Add(new TocHeading("Example B", 4, true, 2));
options.Headings.Add(new TocHeading("Example C", 4, true, 2));
options.Headings.Add(new TocHeading("Example D", 4, true, 2));
options.Headings.Add(new TocHeading("Chapter III", 5, true, 1));
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// 执行处理
TocGenerator.Process(options);

小幅修复

  • 改进了类提示和示例。
  • 更新了水印。
  • 改进了 PDF 到 XSLX 的转换。
  • 改进了 PDF 到 PDF/A-1a 的转换。
2026年9月7日

v25.1

改进的插件:ImageExtractor

  • 为 ImageExtractorOptions 添加了 Output Collection。
  • 为 ImageExtractorOptions 添加了对多个 Inputs 的支持。
  • 修复了已关闭的输出流。

示例用法:

// create ImageExtractor object to extract images
var plugin = new ImageExtractor();
// create ImageExtractorOptions
var opt = new ImageExtractorOptions();
// add input file path
opt.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// set output directory
opt.AddOutput(new DirectoryDataSource("path_to_results_directory"));
// perform extraction process
var resultContainer = plugin.Process(opt);
// get the image from the ResultContainer object
var imageExtracted = resultContainer.ResultCollection[0].ToFile();

小修复

  • 改进了类提示和示例。
  • PDF 签名验证。
  • 改进了对中文字符的支持。
2026年9月7日

v24.12

新增插件:PDF 转 PNG 转换器

  • Class PngConverter:表示 Documentize.PngConverter 插件。用于将 PDF 文档转换为 PNG 格式。
  • Class PdfToPngOptions:表示 Documentize.PngConverter 插件的 PDF 转 PNG 转换选项。

示例用法:

// create PngConverter
var plugin = new PngConverter();
// create PdfToPngOptions object to set instructions
var opt = new PdfToPngOptions();
// add input file path
opt.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// set output file path
opt.AddOutput(new DirectoryDataSource("path_to_results_directory"));
// perform the process
plugin.Process(opt);

新增插件:PDF 转 TIFF 转换器

  • Class TiffConverter:表示 Documentize.TiffConverter 插件。用于将 PDF 文档转换为 TIFF 格式。
  • Class PdfToTiffOptions:表示 Documentize.TiffConverter 插件的 PDF 转 TIFF 转换选项。

示例用法:

// create TiffConverter
var plugin = new TiffConverter();
// create PdfToTiffOptions object to set instructions
var opt = new PdfToTiffOptions();
// add input file path
opt.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// set output file path
opt.AddOutput(new DirectoryDataSource("path_to_results_directory"));
// perform the process
plugin.Process(opt);

新增插件:PDF 表格生成器

  • Class TableGenerator:表示 Documentize.TableGenerator 插件。用于在 PDF 文档中添加表格。
  • Class TableBuilder:表示 PDF 页面中表格的构建器。
  • Class TableRowBuilder:表示表格行的构建器。
  • Class TableCellBuilder:表示表格单元格的构建器。

示例用法:

// create TableGenerator
var plugin = new TableGenerator();
// create TableOptions object to set instructions
TableOptions opt = new TableOptions().InsertPageBefore(1)
   .AddTable()
        .AddRow()
            .AddCell().AddParagraph("Name")
            .AddCell().AddParagraph("Age")
        .AddRow()
            .AddCell().AddParagraph("Bob")
            .AddCell().AddParagraph("12")
        .AddRow()
            .AddCell().AddParagraph("Sam")
            .AddCell().AddParagraph("20")
        .AddRow()
            .AddCell().AddParagraph("Sandy")
            .AddCell().AddParagraph("26")
        .AddRow()
            .AddCell().AddParagraph("Tom")
            .AddCell().AddParagraph("12")
        .AddRow()
            .AddCell().AddParagraph("Jim")
            .AddCell().AddParagraph("27");
// add input file path
opt.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// set output file path
opt.AddOutput(new FileDataSource("path_to_the_converted_file.pdf"));
// perform the process
plugin.Process(opt);

将类 PdfDoc 重命名为 DocConverter

  • Class DocConverter:表示 Documentize.DocConverter 插件。用于将 PDF 文档转换为 DOC/DOCX 格式。

示例用法:

// create DocConverter
var plugin = new DocConverter();
// create PdfToDocOptions object to set instructions
var opt = new PdfToDocOptions();
// add input file path
opt.AddInput(new FileDataSource(inputPath));
// set output file path
opt.AddOutput(new FileDataSource(outputPath));
// perform the process
plugin.Process(opt);
2026年9月7日

v24.11

新增插件:PDF 转 JPEG 转换器

  • 目的JpegConverter 类用于将 PDF 文档转换为 JPEG 格式,使用户更容易处理和共享由 PDF 派生的图像。
  • 构造函数
    • JpegConverter():初始化 JPEG 转换器的新实例。

示例用法:

var plugin = new JpegConverter();
var opt = new PdfToJpegOptions();
opt.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
opt.AddOutput(new DirectoryDataSource("path_to_results_directory"));
plugin.Process(opt);
  • 方法
    • Process(PdfToJpegOptions options):使用指定的选项启动 JPEG 转换过程。

新增类 DirectoryDataSource

  • 目的DirectoryDataSource 类允许用户在插件中管理目录数据的加载和保存操作。
  • 构造函数
    • DirectoryDataSource(string path):使用指定路径初始化新的目录数据对象。

示例用法:

var directorySource = new DirectoryDataSource("path_to_your_directory");
  • 属性
    • DataType:获取数据源的类型。
    • Path:获取当前数据目录的路径。

新增类 PdfToJpegOptions

  • 目的:此类包含配置 JPEG 转换过程的选项,允许用户指定分辨率、页面列表和图像质量。
  • 构造函数
    • PdfToJpegOptions():初始化 JPEG 转换器的选项实例。

属性:

  • OutputResolution:指定生成的 JPEG 图像的分辨率。
  • PageList:要从 PDF 转换的页面列表。
  • Quality:设置 JPEG 输出的质量。
2026年9月7日

v24.10

新增插件:PDF/A 转换器

  • 引入了全新的 PDF/A 转换功能,用户可以轻松将普通 PDF 文件转换为符合 PDF/A 标准的文档。

使用示例:

var options = new PdfAConvertOptions
{
    PdfAVersion = PdfAStandardVersion.PDF_A_3B
};

options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
options.AddOutput(new FileDataSource("path_to_the_converted_file.pdf"));

var plugin = new PdfAConverter();
plugin.Process(options);

错误修复

  • 修复了与 FileResult 类相关的问题,导致输出路径不正确的情况。
  • 解决了在处理大文件时 HtmlConverter 的一些小错误。

改进

  • 提升了 PdfExtractorImageExtractor 的性能,实现更快的处理速度。
  • 更新了 RotateOptions 类,支持更多的旋转角度。
2026年9月7日

v24.9

已发布

 中文