property AttachmentCount: Integer; // read only
AttachmentCount 会枚举可通过目录项访问到的嵌入文件流 /Names /EmbeddedFiles 名称树(PDF 1.7 规范第 7.11 节)中的条目。这些是被打包进 PDF 的任意文件(XML、电子表格、源 CAD、签名 XML、ZIP 归档等),并由查看器在“附件”侧栏中显示。PDF/A-3 尤其要求将每个相关源文件都以这种方式嵌入,以便长期可复现
当 Active 为 False,或者文档不包含嵌入文件时,值为 0。文件附件 注释(子类型 /FileAttachment)不计入这里的数量,它们属于页面级注释,并通过 AnnotationCount 访问。PDFiumPas 通过 Attachment[Index] 将嵌入流暴露为 TBytes;可读的文件名和 MIME 风格类型则可通过 AttachmentName[Index] 和 AttachmentType[Index] 获取
典型循环是 for I := 0 to Pdf.AttachmentCount - 1 do。每次 Attachment[I] 访问都会把嵌入文件流解压到内存中,因此如果你需要把它写到磁盘并传给解析器,就先缓存 TBytes。新增或移除附件会使索引失效,变更后请重新读取 AttachmentCount
FeatureSupported(feAttachment) 结合使用,以检测已安装的 PDFium 构建是否支持修改附件名称
var I: Integer;
var Data: TBytes;
for I := 0 to Pdf1.AttachmentCount - 1 do
begin
Data := Pdf1.Attachment[I];
TFile.WriteAllBytes(Pdf1.AttachmentName[I], Data);
end;