PDFium Delphi Component Docs

AttachmentCount Egenskap

Component: TPdf  ·  Unit: PDFium
Antal inbäddade filbilagor som deklarerats i dokumentet

Syntax

property AttachmentCount: Integer; // read only

Description

AttachmentCount räknar upp inbäddade filströmmar som kan nås via katalogens namnträd /Names /EmbeddedFiles (PDF 1.7 spec, avsnitt 7.11). Det är godtyckliga filer (XML, kalkylblad, CAD-källkod, signerad XML, ZIP-arkiv osv.) som paketerats i PDF:en och visas av visare i sidopanelen “Attachments”. PDF/A-3 kräver uttryckligen att varje relevant källartefakt bäddas in på detta sätt för långsiktig reproducerbarhet

Värdet är 0 när Active är False och när dokumentet inte innehåller några inbäddade filer. Filbilage-annoteringar (subtyp /FileAttachment) räknas inte här — de är annoteringar på sidnivå och visas i stället via AnnotationCount. PDFium Delphi Component exponerar inbäddade strömmar som TBytes via Attachment[Index]; det läsbara filnamnet och MIME-liknande typen finns tillgängliga via AttachmentName[Index] och AttachmentType[Index]

Den typiska loopen är for I := 0 to Pdf.AttachmentCount - 1 do. Varje åtkomst av Attachment[I] dekomprimerar den inbäddade filströmmen till minnet, så cacha TBytes om du behöver skriva den till disk och skicka den till en parser. Att lägga till eller ta bort en bilaga ogiltigförklarar index — läs AttachmentCount igen efter en ändring

Endast namnträdet /EmbeddedFiles räknas upp. En associerad PDF 2.0-fil (ISO 32000-2 §7.11.4) som endast refereras från en /AF-array — på katalogen, en sida, en annotering eller något annat objekt — och som inte också är registrerad i namnträdet räknas inte och har inget index för Attachment, AttachmentName eller AttachmentRelationship. Detta omfattar filer som skrivits av SaveAsWithAssociateFiles, som endast lägger till /AF-poster. De flesta PDF/A-3-producenter, inklusive Factur-X- och ZUGFeRD-verktyg, registrerar varje associerad fil på båda ställena, så dessa filer listas normalt

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