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。
示例用法:
该示例演示如何提取 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。
示例用法:
该示例演示如何合并两个 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("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");
// 添加输入文件路径
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 = "My Table of Contents";
// 设计标题
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));
// 添加输入文件路径
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 = "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"));
// 执行处理
PdfManager.AddTableOfContents(options);
示例用法:
该示例演示如何向 PDF 文件添加目录并保存为流。
// 创建 TocOptions 对象以设置指令
var options = new TocOptions();
// 设置标题
options.Title = "My Table of Contents";
// 设计标题
options.Headings.Add(new TocHeading("Introduction", 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);
改进 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; // 在聊天完成中生成的最大令牌数。
// 用于取消
// 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
});
// 处理请求。
var result = await PdfChatGpt.ProcessAsync(options);
修复的错误
- 修复了 HTML 到 PDF 转换元数据的问题。
- 修复了 PDF 到 PDF/A_3b 的文本格式问题,图片缩放问题
- 修复了 PDF 到 PDFA:生成的 PDFA 在打印时报错
- 修复了 PDF 到 HTML:生成的图像包含背景
- 修复了 HTML 到 PDF:某些中文字符显示为方框
- 修复了 HTML 到 PDF:Base64 自定义字体未被尊重
- 修复了 HTML 到 PDF:表单字段的 CSS 未应用
- 修复了 HTML 到 PDF:图表未正确渲染
- 修复了 HTML 到 PDF:特殊字符未渲染