Docs de PDFiumPas

AttachmentType Propiedad

Esta entrada API conserva identificadores, firmas, bloques de código y términos PDF en su forma original.
Componente: TPdf  ·  Unidad: PDFium
Devuelve la cadena MIME o de subtipo registrada para el archivo incrustado en el índice basado en cero especificado. El valor se toma de la entrada /Subtype del diccionario de especificación de archivo, tal como se define en la sección 7.11.3 del PDF

Sintaxis

property AttachmentType[Index: Integer]: WString; // solo lectura

Descripción

El diccionario de especificación de archivo PDF puede incluir un nombre opcional /Subtype que codifica el tipo MIME IANA de la carga incrustada, por ejemplo application#2Fpdf, image#2Fpng o text#2Fcsv. PDFiumPas decodifica los escapes hexadecimales de PDF, convirtiendo #2F en /, y expone el valor como una cadena Unicode sencilla, por ejemplo "application/pdf" o "image/png"

Usa esta propiedad para decidir cómo despachar los bytes extraídos, por ejemplo abrir adjuntos application/pdf en línea en otra instancia de TPdf, enviar imágenes a un TImage o guardar todo lo demás mediante un diálogo de Guardar. Cuando el autor no registró un subtipo, la propiedad devuelve una cadena vacía; en ese caso recurre a la detección por extensión sobre AttachmentName

La propiedad es de solo lectura. La entrada MIME queda fijada en el momento de crear el adjunto dentro de PDFium y no puede cambiarse en el sitio; vuelve a crear la ranura si necesitas reescribir el subtipo

Parámetros

IndexInteger. Ranura de adjunto basada en cero. Debe cumplir 0 <= Index < AttachmentCount. Los índices fuera de rango devuelven una cadena vacía

Notas

Ejemplo

var
  I: Integer;
  Mime, Name: string;
begin
  Pdf1.LoadFromFile('mixed-attachments.pdf');
  for I := 0 to Pdf1.AttachmentCount - 1 do
  begin
    Name := Pdf1.AttachmentName[I];
    Mime := LowerCase(Pdf1.AttachmentType[I]);
    if Mime = 'application/pdf' then
      Memo1.Lines.Add('PDF: ' + Name)
    else if StartsText('image/', Mime) then
      Memo1.Lines.Add('Image: ' + Name)
    else
      Memo1.Lines.Add(Format('%s [%s]', [Name, Mime]));
  end;
end;

Véase también

Attachment, AttachmentCount, AttachmentName, CreateAttachment, DeleteAttachment