THotPDF.LoadFromFile

THotPDF

 

顶部  上一页  下一页

加载现有的 PDF 文件

 

Delphi 语法:

function LoadFromFile ( FileName: TFileName ): Integer;

function LoadFromFile ( FileName: TFileName; const Password: AnsiString ): Integer;

function LoadFromFile ( FileName: TFileName; AutoDecrypt: Boolean ): Integer;

 

C++ 语法:

int __fastcall LoadFromFile ( AnsiString FileName );

int __fastcall LoadFromFile ( AnsiString FileName, System::AnsiString Password );

int __fastcall LoadFromFile ( AnsiString FileName, bool AutoDecrypt );

 

说明

调用  LoadFromFile 加载现有的 PDF 文件。函数 LoadFromFile 返回已加载文件的页数。找不到任何页面的文件(例如空文件或非 PDF 文件)返回 0 或抛出异常。页面位于加密 object stream 中的加密文件,没有有效口令就无法得到可用的页面结果;请使用口令重载

交叉引用流的配置从它自己的字典键读取,包括 PDF name 转义。嵌套的直接 /Encrypt 字典提供安全处理器参数,不会覆盖外层流的 /Length、/Filter、/W、/Index 或 trailer 引用。这使得带未过滤 xref 流和加密 object stream 的真实 AES-256 revision 6 文档也能被支持

/DecodeParms 中的 PNG predictor 参数同样解析转义的 PDF name,并拒绝重复的语义键。xref 流标记在完整外层字典之后定位,因此包含 stream 的名称、字符串和注释不会被误当成载荷边界。读取只消费标记之后必需的行尾,并保留值为空白的第一个载荷字节

达到或超过 LocalFileMappingThreshold 的本地文件使用有界窗口化内存映射,配共享 LRU 窗口缓存服务解析器读取和不可变的惰性流区间。用 LocalFileMappingWindowSize 与 LocalFileMappingCacheWindows 配置映射几何;阈值设为 0 保留 TFileStream 路径。映射失败自动回退。更小的文件,以及映射关闭或失败时的所有文件,通过文件流之上的 64 KB 读取缓冲读取

受支持的 RC4 和 AES Standard 加密 PDF 请使用口令重载。HotPDF 校验 user 或 owner 口令,从有界的 trailer、xref、文档 ID 与加密字典区间恢复文件密钥,在内存中解密已加载字符串与流,清除已加载加密状态,并让 SaveLoadedDocument 写出未加密副本。不带口令加载时按权威 xref 偏移捕获原始加密对象,后续 DecryptLoadedDocument 调用可使用精确的二进制安全处理器值,无需重新打开文件。不受支持的加密版本抛出异常。有界密钥恢复自 HotPDF v2.489.0 起可用,零重读延迟解密自 HotPDF v2.490.0 起可用

AutoDecrypt 重载以查看器的方式打开文档。当 AutoDecrypt 为 True 且文档以空 user 口令加密——只限制权限的文档就是这样写出的——时,它会像口令重载收到空口令那样在内存中解密,因此其文本可以提取、渲染和导出;此时 IsEncrypted 为 False,后续 SaveLoadedDocument 会写出未加密副本。需要口令的文档和未加密的文档都按普通重载的方式加载。空口令能否打开文档会先从相同的有界区间检查,不会把文档加载两次。AutoDecrypt 为 False 时,该重载就是普通重载

导入既有 PDF 对象时,HotPDF 在内部存储名称值之前解码 ISO 32000-1 PDF name #XX 转义序列。/PANTONE#20216#20CVC、/lime#20Green、/The_Key_of_F#23_Minor 等名称在文档稍后复制或保存时按其预期字节值保留

 

 

See also: 窗口化本地文件映射、LoadFromStream, DecryptLoadedDocument