property AttachmentRelationship[Index: Integer]: WString; // read only
Os associated files do PDF 2.0 (ISO 32000-2 §7.11.4) marcam cada especificação de arquivo com um nome /AFRelationship que indica como o arquivo incorporado se relaciona com o conteúdo ao qual está anexado: Source, Data, Alternative, Supplement, EncryptedPayload, FormData, Schema ou Unspecified (Table 43). Notas fiscais PDF/A-3 e ZUGFeRD / Factur-X dependem dessa entrada para marcar a carga XML legível por máquina
A propriedade lê a entrada por meio da exportação nativa FPDFAttachment_GetAFRelationship e retorna o token de nome bruto como uma string Unicode. O resultado é uma string vazia quando a especificação de arquivo não tem entrada /AFRelationship, quando a entrada não é um name ou quando o pdfium.dll carregado é anterior à exportação (veja AttachmentRelationshipFeaturesAvailable)
A propriedade é somente leitura. Para anexar arquivos com um relationship, use o writer do lado Pascal em FPdfAssocFiles, que emite os mesmos tokens de nome
| Index | Integer. Slot de anexo baseado em zero. Deve satisfazer 0 <= Index < AttachmentCount; outros valores geram um EPdfError (Incorrect attachment index) |
/EmbeddedFiles têm índice; um associated file referenciado somente por um array /AF não é alcançável por esta propriedade (veja AttachmentCount)Relationship de TPdfAttachmentMetadata, e TryGetAnnotationFileAttachment preenche o campo correspondente para anotações de anexo de arquivo
var
I: Integer;
begin
Pdf1.LoadFromFile('invoice-facturx.pdf');
for I := 0 to Pdf1.AttachmentCount - 1 do
if Pdf1.AttachmentRelationship[I] = 'Alternative' then
SaveInvoiceXml(Pdf1.AttachmentName[I], Pdf1.Attachment[I]);
end;