property AttachmentCount: Integer; // read only
AttachmentCount somt ingesloten bestandsstreams op die bereikbaar zijn via de
catalogus-naamboom /Names /EmbeddedFiles (PDF 1.7-specificatie sectie 7.11).
Dit zijn willekeurige bestanden (XML, werkbladen, bron-CAD, ondertekende XML, ZIP-archieven,…)
die in de PDF zijn verpakt en door viewers worden getoond in de zijbalk “Bijlagen”.
PDF/A-3 vereist specifiek dat elk relevant bronartefact op deze manier wordt ingesloten
voor reproduceerbaarheid op de lange termijn
De waarde is 0 wanneer Active False is en wanneer
het document geen ingesloten bestanden bevat. Bestandsbijlage-annotaties
(subtype /FileAttachment) worden hier niet geteld —
dit zijn annotaties op paginaniveau en verschijnen in plaats daarvan via
AnnotationCount. PDFium Delphi Component stelt ingesloten streams beschikbaar als
TBytes via Attachment[Index]; de voor mensen leesbare bestandsnaam
en het MIME-stijl type zijn beschikbaar via AttachmentName[Index] en
AttachmentType[Index]
De typische loop is for I := 0 to Pdf.AttachmentCount - 1 do. Elke toegang
tot Attachment[I] decomprimeert de ingesloten bestandsstream naar het geheugen,
dus cach de TBytes wanneer u deze naar schijf wilt schrijven en aan een parser
wilt doorgeven. Het toevoegen of verwijderen van een bijlage maakt indexen ongeldig —
herlees AttachmentCount na een mutatie
Alleen de naamboom /EmbeddedFiles wordt geënumenteerd. Een PDF 2.0 associated file (ISO 32000-2 §7.11.4) die uitsluitend vanuit een /AF-array wordt gereferreerd — op de catalogus, een pagina, een annotatie of elk ander object — en niet ook in de naamboom is geregistreerd, wordt niet geteld en heeft geen index voor Attachment, AttachmentName of AttachmentRelationship. Dit geldt ook voor bestanden die met SaveAsWithAssociateFiles zijn geschreven, dat alleen /AF-entries toevoegt. De meeste PDF/A-3-producers, waaronder Factur-X- en ZUGFeRD-tools, registreren elke associated file op beide plekken, dus die bestanden verschijnen gewoon in de lijst
FeatureSupported(feAttachment) om te detecteren of de
geïnstalleerde PDFium-build het wijzigen van bijlagenamen ondersteunt
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;