PDFium Delphi Component Docs

Attachment Propriété

Composant: TPdf  ·  Unit: PDFium
Lit ou remplace la charge utile brute en octets du fichier intégré au niveau du document à l’index indexé à partir de zéro indiqué. Chaque emplacement correspond à une entrée de l’arbre de noms EmbeddedFiles PDF défini à la section 7.11 de la spécification PDF 1.7

Syntax

property Attachment[Index: Integer]: TBytes;

Description

Les documents PDF peuvent porter des fichiers auxiliaires arbitraires (feuilles de calcul source, documents Word d’origine, factures jointes, charges utiles XML signées, bundles ZIP, même d’autres PDF) dans un conteneur au niveau document appelé arbre de noms EmbeddedFiles. Chaque entrée est un dictionnaire de spécification de fichier PDF dont le flux contient les octets réels du fichier joint. PDFium Delphi Component expose cet arbre comme un index plat de base 0 de 0 à AttachmentCount - 1

La lecture de Attachment[Index] renvoie le contenu en octets décodé du fichier attaché sous la forme d’un tableau TBytes — exactement les octets que n’importe quel autre lecteur PDF extrairait quand l’utilisateur clique sur l’icône de trombone et enregistre la pièce jointe. Les octets renvoyés sont déjà décompressés ; vous pouvez les écrire directement sur disque, les pousser vers un flux ou les fournir à une autre instance de TPdf si la pièce jointe est elle-même un PDF

L’écriture remplace sur place le flux de fichier d’un emplacement de pièce jointe existant. L’emplacement doit déjà exister ; utilisez CreateAttachment d’abord si vous devez ajouter une nouvelle entrée. Les écritures sont tamponnées en mémoire et ne deviennent persistantes qu’après l’enregistrement du document avec SaveAs

Parameters

IndexInteger. Position de base 0 dans l’arbre de noms EmbeddedFiles. Doit satisfaire 0 <= Index < AttachmentCount. Les index correspondent à ceux rapportés par AttachmentName et AttachmentType, donc itérer 0..AttachmentCount - 1 visite chaque pièce jointe exactement une fois

Remarks

Example

var
  I: Integer;
  Data: TBytes;
  OutPath: string;
begin
  Pdf1.LoadFromFile('with-attachments.pdf');
  for I := 0 to Pdf1.AttachmentCount - 1 do
  begin
    Data := Pdf1.Attachment[I];
    OutPath := 'extracted\' + Pdf1.AttachmentName[I];
    TFile.WriteAllBytes(OutPath, Data);
    Memo1.Lines.Add(Format('%s (%s, %d bytes)',
      [Pdf1.AttachmentName[I], Pdf1.AttachmentType[I], Length(Data)]));
  end;
end;

See Also

AttachmentCount, AttachmentName, AttachmentType, CreateAttachment, DeleteAttachment