function ReadAttachmentMetadata(MaxAttachments: Integer = 10000): TPdfAttachmentMetadataArray;
| MaxAttachments | Integer. Limite superior de quantas entradas de anexos são capturadas. Tem de ser maior que zero, caso contrário é gerado um EPdfError. O padrão é 10000 |
| Result | TPdfAttachmentMetadataArray. Um record TPdfAttachmentMetadata por anexo: Index, Name, Description, MimeType, Size e Readable |
Percorre a árvore EmbeddedFiles do documento carregado numa única passagem nativa e devolve um record TPdfAttachmentMetadata por entrada. Apenas são lidos valores descritivos — os bytes de payload permanecem no ficheiro, por isso listar um documento com muitos anexos grandes não custa memória de payload
O campo Index corresponde ao índice de base zero usado por Attachment, AttachmentName e os outros indexadores de anexos, por isso uma entrada listada pode ser extraída mais tarde através da mesma ranhura
Readable reporta se o lado nativo conseguiu abrir o payload; Size (em bytes, como Int64) só é preenchido para entradas legíveis. As entradas ilegíveis continuam a aparecer no array para que os índices se mantenham alinhados com o documento
A chamada corre sob o lock de renderização e exige que o documento esteja carregado; um MaxAttachments de zero ou menos gera um EPdfError
var
Meta: TPdfAttachmentMetadata;
begin
Pdf1.LoadFromFile('with-attachments.pdf');
for Meta in Pdf1.ReadAttachmentMetadata do
Memo1.Lines.Add(Format('%d: %s (%s, %d bytes, readable=%s)',
[Meta.Index, Meta.Name, Meta.MimeType, Meta.Size,
BoolToStr(Meta.Readable, True)]));
end;