v26.9
- 之前的插件实现正逐步淘汰。该类的功能已被 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 的问题
v26.8
SignOptions 类已重新设计
- 现在更易于使用。
- 继承自 OptionsWithInputAndOutput 类。
- 属性 Inputs 和 Outputs 改为 Input 和 Output。现在只有 1 个输入和 1 个输出。
- 如果输出是文件,其流会自动关闭;如果是 Stream,则保持打开,以便后续使用。
- 移除方法 AddInput、AddOutput。
- 添加了多个更方便的构造函数:
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 Pfxstring PfxPasswordIData InputIData 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);
- 以前的插件实现正逐步淘汰。此类的功能已被 PdfExtractor 和 PdfForm 类取代。
- Class FormExporter:已移除,请使用 PdfExtractor 或 PdfForm。
示例用法
演示如何使用 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
其他修复
📄 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 - 修复合并文档时抛出异常的问题
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"));
- 表示具有 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 合规性的问题
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);
已纠正单词拼写错误。
示例用法:
该示例演示如何将表单值导出为 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/
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 合规检查的问题
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:部分中文字符渲染失败
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 时出现文字缺失
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 转换时链接丢失的问题
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 资源未正确应用的问题
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 文档的文本内容。
// 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 时特殊字符未渲染
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 的意外异常
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
新增插件: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 的转换。
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);