PDFium Delphi Component Docs

AttachmentCount プロパティ

コンポーネント: TPdf  ·  ユニット: PDFium
文書で宣言されている embedded file attachment の数です

Syntax

property AttachmentCount: Integer; // read only

Description

AttachmentCount は、カタログの /Names /EmbeddedFiles name tree(PDF 1.7 仕様 7.11 節)から到達できる埋め込みファイル stream を数えます。対象は PDF 内にパッケージされた任意のファイル(XML、表計算、CAD 原図、署名付き XML、ZIP アーカイブ等)で、ビューアーには「Attachments」サイドバーとして見えます。PDF/A-3 はとりわけ、長期の再現性のために関連するソース成果物をすべてこの方法で埋め込むことを要求します

Active が False のとき、またドキュメントが埋め込みファイルを持たないとき、値は 0 です。ファイル添付の注釈(サブタイプ /FileAttachment)はここでは数えません。あちらはページレベルの注釈で、代わりに AnnotationCount から見えます。PDFium Delphi Component は埋め込み stream を Attachment[Index] 経由で TBytes として公開し、人が読めるファイル名と MIME 風のタイプは AttachmentName[Index] と AttachmentType[Index] から得られます

典型的なループは for I := 0 to Pdf.AttachmentCount - 1 do です。Attachment[I] へのアクセスはそのたびに埋め込みファイル stream をメモリへ展開するため、ディスクに書く場合やパーサーに渡す場合は TBytes をキャッシュしてください。添付の追加・削除はインデックスを無効化します。変更後は AttachmentCount を読み直してください

列挙されるのは /EmbeddedFiles name tree だけです。カタログ、ページ、注釈などの /AF 配列からのみ参照され、name tree にも登録されていない 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