PDFium Delphi Component Docs

AttachmentCount Proprietà

Componente: TPdf  ·  Unità: PDFium
Numero di allegati di file incorporati dichiarati nel documento

Syntax

property AttachmentCount: Integer; // read only

Description

AttachmentCount enumera gli stream di file incorporati raggiungibili tramite l'albero dei nomi del catalogo /Names /EmbeddedFiles (specifica PDF 1.7 sezione 7.11). Si tratta di file arbitrari (XML, fogli di calcolo, sorgenti CAD, XML firmato, archivi ZIP,…) inseriti nel PDF ed esposti dai visualizzatori come barra laterale “Allegati”. Il PDF/A-3 richiede specificamente che ogni artefatto sorgente rilevante sia incorporato in questo modo per la riproducibilità a lungo termine

Il valore è 0 quando Active è False e quando il documento non contiene file incorporati. Le annotazioni di allegato file (sottotipo /FileAttachment) non vengono contate qui — sono annotazioni a livello di pagina e vengono mostrate tramite AnnotationCount. PDFium Delphi Component espone gli stream incorporati come TBytes tramite Attachment[Index]; il nome di file leggibile e il tipo in stile MIME sono disponibili tramite AttachmentName[Index] e AttachmentType[Index]

Il ciclo tipico è for I := 0 to Pdf.AttachmentCount - 1 do. Ogni accesso a Attachment[I] decomprime lo stream del file incorporato in memoria, quindi memorizza in cache i TBytes se devi scriverli su disco e passarli a un parser. L'aggiunta o la rimozione di un allegato invalida gli indici — rileggi AttachmentCount dopo una modifica

Viene enumerato solo l'albero dei nomi /EmbeddedFiles. Un file associato di PDF 2.0 (ISO 32000-2 §7.11.4) referenziato esclusivamente da un array /AF — sul catalogo, una pagina, un'annotazione o qualunque altro oggetto — e non registrato anche nell'albero dei nomi non viene contato e non ha indice per Attachment, AttachmentName o AttachmentRelationship. Questo include i file scritti da SaveAsWithAssociateFiles, che aggiunge solo voci /AF. La maggior parte dei producer PDF/A-3, inclusi gli strumenti Factur-X e ZUGFeRD, registra ogni file associato in entrambi i posti, quindi quei file vengono elencati normalmente

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