v25.10
- 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 文档的文本内容。
// 创建 ExtractTextOptions 对象以设置指令
var options = new ExtractTextOptions();
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 执行此过程
var results = PdfExtractor.ExtractText(options);
// 从 ResultContainer 对象中获取提取的文本
var textExtracted = results.ResultCollection[0].ToString();
示例用法:
该示例演示如何提取带有 TextFormattingMode 的 PDF 文档的文本内容。
// 创建 ExtractTextOptions 对象以设置 TextFormattingMode
var options = new ExtractTextOptions(TextFormattingMode.Pure);
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 执行此过程
var results = PdfExtractor.ExtractText(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.ExtractImages(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.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 文档。
// 创建 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"));
// 执行此过程
PdfManager.Merge(options);
示例用法:
该示例演示如何拆分 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"));
// 执行此过程
PdfManager.Split(options);
示例用法:
该示例演示如何优化 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"));
// 执行此过程
PdfManager.Optimize(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"));
// 执行此过程
PdfManager.Rotate(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"));
// 执行此过程
PdfManager.Resize(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"));
// 执行此过程
PdfManager.Compress(options);
示例用法:
该示例演示如何向 PDF 文件添加表格。
// 配置表格选项
var options = new TableOptions();
options.InsertPageBefore(1)
.AddTable()
.AddRow()
.AddCell().AddParagraph("姓名")
.AddCell().AddParagraph("年龄")
.AddRow()
.AddCell().AddParagraph("鲍勃")
.AddCell().AddParagraph("12")
.AddRow()
.AddCell().AddParagraph("山姆")
.AddCell().AddParagraph("20")
.AddRow()
.AddCell().AddParagraph("桑迪")
.AddCell().AddParagraph("26")
.AddRow()
.AddCell().AddParagraph("汤姆")
.AddCell().AddParagraph("12")
.AddRow()
.AddCell().AddParagraph("吉姆")
.AddCell().AddParagraph("27");
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_input.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_output.pdf"));
// 执行此过程
PdfManager.AddTable(options);
示例用法:
该示例演示如何向 PDF 文件添加目录。
// 创建 TocOptions 对象以设置指令
var options = new TocOptions();
// 设置标题
options.Title = "我的目录";
// 设计标题
options.Headings.Add(new TocHeading("介绍", 2));
options.Headings.Add(new TocHeading("第一章", 3));
options.Headings.Add(new TocHeading("第二章", 4));
options.Headings.Add(new TocHeading("第三章", 5));
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// 执行此过程
PdfManager.AddTableOfContents(options);
示例用法:
该示例演示如何向 PDF 文件添加带有生成书签的目录。
// 创建 TocOptions 对象以设置指令
var options = new TocOptions();
// 设置标题
options.Title = "我的目录";
// 在书签中生成链接
options.GenerateBookmarks = true;
// 设计标题
options.Headings.Add(new TocHeading("介绍", 2, false, 1));
options.Headings.Add(new TocHeading("第一章", 3, true, 1));
options.Headings.Add(new TocHeading("第二章", 4, true, 1));
options.Headings.Add(new TocHeading("示例 A", 4, true, 2));
options.Headings.Add(new TocHeading("示例 B", 4, true, 2));
options.Headings.Add(new TocHeading("示例 C", 4, true, 2));
options.Headings.Add(new TocHeading("示例 D", 4, true, 2));
options.Headings.Add(new TocHeading("第三章", 5, true, 1));
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// 执行此过程
PdfManager.AddTableOfContents(options);
示例用法:
该示例演示如何向 PDF 文件添加目录并作为流保存。
// 创建 TocOptions 对象以设置指令
var options = new TocOptions();
// 设置标题
options.Title = "我的目录";
// 设计标题
options.Headings.Add(new TocHeading("介绍", 2, false, 1));
// 添加输入文件路径
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出流
var outputStream = new MemoryStream();
options.AddOutput(new StreamDataSource(outputStream));
options.CloseOutputStreams = false;
// 执行此过程
PdfManager.AddTableOfContents(options);
表格生成器的可用性改进
- 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 = "你的 API 密钥。"; // 你需要提供密钥以访问 API。
options.MaxTokens = 1000; // 在聊天完成中生成的最大令牌数。
// 取消用
// var cancelTokenSource = new CancellationTokenSource();
// var cToken = cancelTokenSource.Token;
// options.CancellationToken = cToken;
// 添加请求消息。
options.Messages.Add(new Message
{
Content = "你是一个有帮助的助手。",
Role = Role.System
});
options.Messages.Add(new Message
{
Content = "有史以来最大的披萨直径是多少?",
Role = Role.User
});
// 处理请求。
await PdfChatGpt.ProcessAsync(options);
修复的错误
- 修复了 HTML 转 PDF 元数据
- 修复了 PDF 转 PDF/A_3b - 文本格式问题和图像缩放
- 修复了 PDF 转 PDF/A:生成的 PDF/A 打印时报告错误
- 修复了 PDF 转 HTML:生成的图像包含背景
- 修复了 HTML 转 PDF:某些中文字符显示为方框
- 修复了 HTML 转 PDF:未遵循 Base64 自定义字体
- 修复了 HTML 转 PDF:表单字段 CSS 未被应用
- 修复了 HTML 转 PDF:图表未正确渲染
- 修复了 HTML 转 PDF:特殊字符未被渲染
v25.9
改进了DocConverter的可用性并增加了额外模式
- Class DocConverter: 是静态的,不需要使用构造函数。
- Class PdfToDocOptions: 添加了属性 “Mode”,允许你自定义转换过程。
- Enum DocConversionMode: 允许你自定义PDF到文档的转换过程。值:
- 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);
示例用法:
// 此示例演示如何将PDF文档转换为Doc格式并设置Mode。
// 创建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文档转换为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文档是否符合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的意外异常
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 的构造函数
构造函数和参数进行了优化。
评估标记的文本已更改。
更新文档
更新了示例,增加了额外示例:
- PDF 到 JPEG 转换器
- PDF 到 PNG 转换器
- PDF 到 TIFF 转换器
- PDF 表单扁平化工具
- HTML 转换器
- PDF 安全性
- PDF 优化器
- PDF 合并器
- PDF 拆分器
修复的错误
- 修复注释相关问题
- 修复调整大小后的问题
- 修复 PDF 到 PDF/A 的字体名称转换问题
- 修复 PDF 到 DOCX - 页眉中添加了空格等问题
- 修复 HTML 到 PDF - 透明 PNG 背景问题
- 修复压缩 PDF - 改善与 Adobe Acrobat 的兼容性
v25.2
新增插件:目录生成器
- Class TocGenerator: 表示 Documentize.TocGenerator 插件。用于向 PDF 文档添加目录。
- Class TocOptions: 表示通过 Documentize.TocGenerator 插件向文档添加目录的选项。
- Class TocHeading: 表示通过 Documentize.TocGenerator 插件向文档添加目录的标题或章节选项。
示例用法:
// 该示例演示如何向 PDF 文件添加目录。
var options = new TocOptions();
// 设置标题
options.Title = "我的目录";
// 在书签中生成链接
options.GenerateBookmarks = true;
// 设计标题
options.Headings.Add(new TocHeading("引言", 2, false, 1));
options.Headings.Add(new TocHeading("第一章", 3, true, 1));
options.Headings.Add(new TocHeading("第二章", 4, true, 1));
options.Headings.Add(new TocHeading("示例 A", 4, true, 2));
options.Headings.Add(new TocHeading("示例 B", 4, true, 2));
options.Headings.Add(new TocHeading("示例 C", 4, true, 2));
options.Headings.Add(new TocHeading("示例 D", 4, true, 2));
options.Headings.Add(new TocHeading("第三章", 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。
v24.12
新增插件:PDF 转 PNG 转换器
- 类 PngConverter:表示 Documentize.PngConverter 插件。用于将 PDF 文档转换为 PNG 格式。
- 类 PdfToPngOptions:表示 Documentize.PngConverter 插件的 PDF 到 PNG 转换选项。
示例用法:
// 创建 PngConverter
var plugin = new PngConverter();
// 创建 PdfToPngOptions 对象以设置指令
var opt = new PdfToPngOptions();
// 添加输入文件路径
opt.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
opt.AddOutput(new DirectoryDataSource("path_to_results_directory"));
// 执行处理
plugin.Process(opt);
新增插件:PDF 转 TIFF 转换器
- 类 TiffConverter:表示 Documentize.TiffConverter 插件。用于将 PDF 文档转换为 TIFF 格式。
- 类 PdfToTiffOptions:表示 Documentize.TiffConverter 插件的 PDF 到 TIFF 转换选项。
示例用法:
// 创建 TiffConverter
var plugin = new TiffConverter();
// 创建 PdfToTiffOptions 对象以设置指令
var opt = new PdfToTiffOptions();
// 添加输入文件路径
opt.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
opt.AddOutput(new DirectoryDataSource("path_to_results_directory"));
// 执行处理
plugin.Process(opt);
新增插件:PDF 表格生成器
- 类 TableGenerator:表示 Documentize.TableGenerator 插件。用于向 PDF 文档添加表格。
- 类 TableBuilder:表示 PDF 页面中表格的构建器的类。
- 类 TableRowBuilder:表示表格行的构建器的类。
- 类 TableCellBuilder:表示表格单元格的构建器的类。
示例用法:
// 创建 TableGenerator
var plugin = new TableGenerator();
// 创建 TableOptions 对象以设置指令
TableOptions opt = new TableOptions().InsertPageBefore(1)
.AddTable()
.AddRow()
.AddCell().AddParagraph("名称")
.AddCell().AddParagraph("年龄")
.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");
// 添加输入文件路径
opt.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// 设置输出文件路径
opt.AddOutput(new FileDataSource("path_to_the_converted_file.pdf"));
// 执行处理
plugin.Process(opt);
将类 PdfDoc 重命名为 DocConverter
- 类 DocConverter:表示 Documentize.DocConverter 插件。用于将 PDF 文档转换为 DOC/DOCX 格式。
示例用法:
// 创建 DocConverter
var plugin = new DocConverter();
// 创建 PdfToDocOptions 对象以设置指令
var opt = new PdfToDocOptions();
// 添加输入文件路径
opt.AddInput(new FileDataSource(inputPath));
// 设置输出文件路径
opt.AddOutput(new FileDataSource(outputPath));
// 执行处理
plugin.Process(opt);