PDF 生成模板编辑器
开源可视化 PDF 生成引擎,支持自定义模板,并提供面向开发者的 API,灵活构建文档生成流程。
从 SDK v4.1.0 开始,ComPDF Conversion SDK 暴露了一个基于回调的扩展点,允许您插入自己的 AI 推理引擎来进行 OCR、版面分析和表格识别。您可以不再依赖通过 setDocumentAIModel 加载的内置 DocumentAI 模型,而是:
当 ConvertCallback 上注册了相关的回调对时,SDK 会跳过该能力的内置模型调用,转而使用您的 JSON 输出。如果回调对未设置,SDK 会回退到内置的 DocumentAI 模型(如果可用)。
每种 AI 能力使用两个回调:一个触发器(由 SDK 调用,传入保存为 PNG 的页面图像的临时目录路径)和一个结果获取器(由 SDK 紧接着调用以检索 JSON 字符串)。
| 能力 | 触发器字段/设置器 | 结果获取器字段/设置器 | 触发时机 |
|---|---|---|---|
| OCR | ocr | get_ocr_result | OCR 启用时 |
| 版面分析 | layout | get_layout_result | 版面分析启用时(或隐式地当 OCR 启用时) |
| 表格识别 | table | get_table_result | 表格识别启用且版面分析检测到表格区域时 |
规则:
true;返回 false 使 SDK 忽略该页面的结果。confidence < 0.1 的 OCR 跨度和 confidence < 0.45 的版面对象将被 SDK 丢弃。setDocumentAIModel。@interface CustomAICallback : NSObject <ConvertCallback>
@property (nonatomic, copy) NSString *ocrResultJson;
@property (nonatomic, copy) NSString *layoutResultJson;
@property (nonatomic, copy) NSString *tableResultJson;
@end
@implementation CustomAICallback
- (void)onProgress:(int)currentPage totalPage:(int)totalPage {}
- (BOOL)isCancelled { return NO; }
- (BOOL)onOcr:(NSString *)imagePath {
// 在 `imagePath` 上运行您的 OCR 引擎,缓存 JSON 结果。
self.ocrResultJson = @"{}";
return YES;
}
- (BOOL)onLayout:(NSString *)imagePath {
self.layoutResultJson = @"{}";
return YES;
}
- (BOOL)onTable:(NSString *)imagePath {
self.tableResultJson = @"{}";
return YES;
}
- (NSString *)getOcrResult { return self.ocrResultJson; }
- (NSString *)getLayoutResult { return self.layoutResultJson; }
- (NSString *)getTableResult { return self.tableResultJson; }
@end
WordOptions *options = [[WordOptions alloc] init];
options.enableOCR = YES;
options.enableAILayout = YES;
options.enableAITableRecognition = YES;
CustomAICallback *callback = [[CustomAICallback alloc] init];
[CPDFConversion startPDFToWord:@"input.pdf"
password:@"password"
outputPath:@"path/output.docx"
options:options
callback:callback];每种能力的预期 JSON 模式,包括字段名称、坐标空间(触发器接收到的图像的像素空间)和值范围,在所有语言绑定中都是相同的。请参阅 C++ 指南中的“通过回调使用自定义 AI 模型”。