PDFium Delphi Component Docs

AttachmentCount Propriété

Composant: TPdf  ·  Unit: PDFium
Nombre de pièces jointes de fichiers intégrés déclarées dans le document

Syntax

property AttachmentCount: Integer; // read only

Description

AttachmentCount énumère les flux de fichiers intégrés accessibles via l’arbre de noms /Names /EmbeddedFiles du catalogue (spécification PDF 1.7, section 7.11). Ce sont des fichiers arbitraires (XML, feuilles de calcul, CAO source, XML signés, archives ZIP…) empaquetés dans le PDF et exposés par les visionneuses dans le panneau latéral « Attachments ». PDF/A-3 exige précisément que chaque artefact source pertinent soit intégré de cette manière pour une reproductibilité à long terme

La valeur est 0 lorsque Active est False et lorsque le document ne contient aucun fichier intégré. Les pièces jointes annotations (sous-type /FileAttachment) ne sont pas comptées ici — ce sont des annotations au niveau de la page et elles apparaissent via AnnotationCount à la place. PDFium Delphi Component expose les flux intégrés sous forme de TBytes via Attachment[Index] ; le nom de fichier lisible par un humain et le type de style MIME sont disponibles via AttachmentName[Index] et AttachmentType[Index]

La boucle type est for I := 0 to Pdf.AttachmentCount - 1 do. Chaque accès à Attachment[I] décompresse le flux de fichier intégré en mémoire, donc mettez en cache le TBytes si vous devez l’écrire sur disque et le passer à un analyseur. Ajouter ou supprimer une pièce jointe invalide les indices — relisez AttachmentCount après une mutation

Seul l’arbre de noms /EmbeddedFiles est énuméré. Un fichier associé PDF 2.0 (ISO 32000-2 §7.11.4) référencé uniquement depuis un tableau /AF — sur le catalogue, une page, une annotation ou tout autre objet — et non également enregistré dans l’arbre de noms n’est pas compté et n’a aucun index pour Attachment, AttachmentName ou AttachmentRelationship. Cela vaut pour les fichiers écrits par SaveAsWithAssociateFiles, qui n’ajoute que des entrées /AF. La plupart des producteurs PDF/A-3, y compris les outils Factur-X et ZUGFeRD, enregistrent chaque fichier associé aux deux endroits, si bien que ces fichiers sont listés normalement

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