property AttachmentCount: Integer; // read only
AttachmentCount enumera los flujos de archivos incrustados accesibles
mediante el árbol de nombres /Names /EmbeddedFiles del catalog (sección 7.11 de
la especificación PDF 1.7). Son archivos arbitrarios (XML, hojas de cálculo, CAD de origen,
XML firmado, archivos ZIP,…) empaquetados dentro del PDF y mostrados por los visores
en la barra lateral “Adjuntos”. PDF/A-3 exige concretamente que cada artefacto de
origen relevante se incruste de este modo 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 adjunto de archivo
(subtipo /FileAttachment) no se cuentan aquí — son
anotaciones a nivel de página y aparecen a través de AnnotationCount en su lugar.
PDFiumPas expone los flujos incrustados como TBytes mediante
Attachment[Index]; el nombre de archivo legible y el tipo estilo MIME están
disponibles mediante AttachmentName[Index] y AttachmentType[Index].
El bucle habitual es for I := 0 to Pdf.AttachmentCount - 1 do. Cada acceso a
Attachment[I] descomprime el flujo del archivo incrustado en memoria, de modo que
guarde en caché los TBytes si necesita escribirlos en disco y pasarlos a un
analizador. Añadir o eliminar un adjunto invalida los índices — vuelva a leer
AttachmentCount tras una modificación.
FeatureSupported(feAttachment) para detectar si la
compilación de PDFium instalada admite modificar los nombres de adjunto.
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;