PDFium Delphi Component Docs

AttachmentCount 속성

컴포넌트: TPdf  ·  유닛: PDFium
문서에 선언된 embedded file attachment 수입니다

Syntax

property AttachmentCount: Integer; // read only

Description

AttachmentCount는 catalog의 /Names /EmbeddedFiles 이름 트리에서 도달할 수 있는 임베디드 파일 스트림 개수를 셉니다(PDF 1.7 스펙 7.11절). 대상은 PDF 안에 함께 포장된 임의의 파일(XML, 스프레드시트, CAD 원본, 서명된 XML, ZIP 묶음 등)이며 뷰어에서는 “첨부” 사이드바로 드러납니다. PDF/A-3는 장기 재현성을 위해 관련 원본 자산을 전부 이런 식으로 임베드하도록 요구합니다

Active가 False이거나 문서에 임베디드 파일이 없으면 값은 0입니다. 파일 첨부 주석(서브타입 /FileAttachment)은 여기서 집계하지 않습니다 — 이것들은 페이지 수준 주석이라 AnnotationCount에 잡히고, PDFium Delphi Component는 임베디드 스트림을 Attachment[Index]로 TBytes로 노출하고, 사람이 읽는 파일 이름과 MIME 방식 타입은 AttachmentName[Index]와 AttachmentType[Index]로 얻습니다

전형적인 루프는 for I := 0 to Pdf.AttachmentCount - 1 do이며, Attachment[I]에 접근할 때마다 임베디드 파일 스트림이 메모리로 압축 해제되므로, 디스크에 쓰거나 파서에 넘길 TBytes가 필요하면 캐싱해 두세요 첨부를 추가·삭제하면 인덱스가 무효화되니 — 변경 뒤에는 AttachmentCount를 다시 읽으세요

/EmbeddedFiles 이름 트리만 열거됩니다. 카탈로그, 페이지, 주석 등 어떤 객체의 /AF 배열에서만 참조되고 이름 트리에는 등록되지 않은 PDF 2.0 연관 파일(ISO 32000-2 §7.11.4)은 집계되지 않고 Attachment, AttachmentName, AttachmentRelationship의 인덱스도 없습니다. /AF 항목만 추가하는 SaveAsWithAssociateFiles가 쓴 파일도 여기에 포함됩니다. Factur-X와 ZUGFeRD 도구를 포함한 대부분의 PDF/A-3 생산자는 연관 파일을 두 곳 모두에 등록하므로 그런 파일은 정상적으로 나열됩니다

Remarks

Example

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;

See Also

Attachment, AttachmentName, AttachmentType, AnnotationCount