PDFium Delphi Component Docs

AttachmentCount Propiedad

Componente: TPdf  ·  Unidad: PDFium
Número de adjuntos de archivo incrustados declarados en el documento

Syntax

property AttachmentCount: Integer;// solo lectura

Description

AttachmentCount enumera los flujos de archivo incrustados accesibles a través del árbol de nombres /Names /EmbeddedFiles del catálogo (especificación PDF 1.7 sección 7.11). Son archivos arbitrarios (XML, hojas de cálculo, CAD de origen, XML firmado, archivos ZIP,…) empaquetados dentro del PDF y expuestos por los visores como la barra lateral “Adjuntos”. PDF/A-3 exige específicamente que cada artefacto de origen relevante se incruste de esta forma para la reproducibilidad a largo plazo

El valor es 0 cuando Active es False y cuando el documento no lleva archivos incrustados. Las anotaciones de archivo adjunto (subtipo /FileAttachment) no se cuentan aquí — esas son anotaciones a nivel de página y aparecen a través de AnnotationCount en su lugar. PDFium Delphi Component expone los flujos incrustados como TBytes a través de Attachment[Index]; el nombre de archivo legible y el tipo estilo MIME están disponibles a través de AttachmentName[Index] y AttachmentType[Index]

El bucle típico es for I := 0 to Pdf.AttachmentCount - 1 do. Cada acceso a Attachment[I] descomprime el flujo de archivo incrustado en memoria, así que almacene en caché los TBytes si necesita escribirlos en disco y pasarlos a un analizador. Agregar o eliminar un adjunto invalida los índices — vuelva a leer AttachmentCount después de una mutación

Solo se enumera el árbol de nombres /EmbeddedFiles. Un archivo asociado de PDF 2.0 (ISO 32000-2 §7.11.4) referenciado únicamente desde un array /AF — en el catálogo, una página, una anotación o cualquier otro objeto — y no registrado además en el árbol de nombres no se cuenta y no tiene índice para Attachment, AttachmentName ni AttachmentRelationship. Esto incluye los archivos escritos por SaveAsWithAssociateFiles, que solo añade entradas /AF. La mayoría de los productores de PDF/A-3, incluidas las herramientas Factur-X y ZUGFeRD, registran cada archivo asociado en ambos sitios, así que esos archivos se listan con normalidad

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