RepairQDFFile

调试、文档修复

描述

在人工编辑更改流长度或对象字节位置后修复 QDF PDF

修复过程扫描对象边界而不信任过期的交叉引用偏移量,重新计算流长度、更新间接长度对象,并重建空闲列表、交叉引用表、尾部、startxref 和 /Size

当对象带有明确无歧义的 QDF 流标记时,包含 endstream 和 endobj 行的流数据会被保留。无效的 QDF 输入以及同一对象的重复标记会在打开目标文件之前被拒绝,即使在就地修复期间也能保留已有的输出文件

语法

Delphi

Function TPDFlib.RepairQDFFile(Const InputFileName, OutputFileName: WideString): Integer;

DLL

int DLRepairQDFFile(int InstanceID, const wchar_t* InputFileName, const wchar_t* OutputFileName);

ActiveX

Function PDFlib::RepairQDFFile(InputFileName As String, OutputFileName As String) As Long

参数

InputFileName已编辑的 QDF PDF
OutputFileName已修复 PDF 的路径,可能与输入路径相同

返回值

1已修复编辑后的 QDF
0输入不是可修复的 QDF,或无法写入目标位置

错误

LastErrorCode 106 表示无效 QDF 结构,107 表示修复失败,305 表示输出写入失败

备注

就地修复是安全的,因为在替换目标之前会读取完整源文件