property AttachmentCount: Integer; // read only
AttachmentCount 會列舉透過目錄的 /Names /EmbeddedFiles 名稱樹(PDF 1.7 規範第 7.11 節)可到達的嵌入式檔案串流。這些可以是任何檔案(XML、試算表、來源 CAD、已簽署 XML、ZIP 壓縮檔等等),它們被封裝在 PDF 內,並由檢視器以「附件」側邊欄呈現。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;