Docs de PDFiumPas

Attachment Propiedad

Esta entrada API conserva identificadores, firmas, bloques de código y términos PDF en su forma original.
Componente: TPdf  ·  Unidad: PDFium
Lee o reemplaza la carga útil de bytes en bruto del archivo incrustado a nivel de documento en el índice basado en cero especificado. Cada ranura corresponde a una entrada del árbol de nombres EmbeddedFiles del PDF definido en la sección 7.11 de la especificación PDF 1.7

Sintaxis

property Attachment[Index: Integer]: TBytes;

Descripción

Los documentos PDF pueden llevar archivos auxiliares arbitrarios, como hojas de cálculo de origen, documentos Word originales, facturas adjuntas, cargas XML firmadas, paquetes ZIP e incluso otros PDF, dentro de un contenedor a nivel de documento llamado árbol de nombres EmbeddedFiles. Cada entrada es un diccionario de especificación de archivo PDF cuyo flujo contiene los bytes reales del archivo adjunto. PDFiumPas expone ese árbol como un índice plano basado en cero, de 0 a AttachmentCount - 1

Leer Attachment[Index] devuelve el contenido de bytes decodificado del archivo adjunto como un arreglo TBytes, exactamente los bytes que extraería cualquier otro lector de PDF cuando el usuario haga clic en el icono del clip y guarde el adjunto. Los bytes devueltos ya están descomprimidos; puedes escribirlos directamente en disco, enviarlos a un flujo o pasarlos a otra instancia de TPdf si el adjunto es a su vez un PDF

La escritura reemplaza en el sitio el flujo de archivo de una ranura de adjunto existente. La ranura debe existir ya; usa CreateAttachment primero si necesitas añadir una entrada nueva. Las escrituras se almacenan en memoria y solo se vuelven persistentes después de guardar el documento con SaveAs

Parámetros

IndexInteger. Posición basada en cero en el árbol de nombres EmbeddedFiles. Debe cumplir 0 <= Index < AttachmentCount. Los índices coinciden con los que informan AttachmentName y AttachmentType, así que iterar 0..AttachmentCount - 1 visita cada adjunto exactamente una vez

Notas

Ejemplo

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;

Véase también

AttachmentCount, AttachmentName, AttachmentType, CreateAttachment, DeleteAttachment