PDFium Delphi Component Docs

Attachment Proprietà

Componente: TPdf  ·  Unità: PDFium
Legge o sostituisce il payload di byte grezzi del file incorporato a livello di documento all'indice specificato basato su zero. Ogni slot corrisponde a una voce nell'albero dei nomi EmbeddedFiles del PDF definito nella sezione 7.11 della specifica PDF 1.7.

Syntax

property Attachment[Index: Integer]: TBytes;

Description

I documenti PDF possono trasportare file ausiliari arbitrari (fogli di calcolo sorgente, documenti Word originali, fatture allegate, payload XML firmati, bundle ZIP, persino altri PDF) dentro un contenitore a livello di documento chiamato name tree EmbeddedFiles. Ogni voce è un dizionario file specification PDF il cui stream contiene i byte effettivi del file allegato. PDFium Delphi Component espone quell'albero come indice piatto a base zero da 0 a AttachmentCount - 1

Leggere Attachment[Index] restituisce il contenuto in byte decodificato del file allegato come array TBytes — esattamente i byte che qualsiasi altro lettore PDF estraierebbe quando l'utente fa clic sull'icona della graffetta e salva l'allegato. I byte restituiti sono già decompressi; puoi scriverli direttamente su disco, inviarli a uno stream o reinserirli in un'altra istanza TPdf se l'allegato è a sua volta un PDF

La scrittura sostituisce in place lo stream del file di uno slot di allegato esistente. Lo slot deve già esistere; usa prima CreateAttachment se devi aggiungere una nuova voce. Le scritture vengono bufferizzate in memoria e diventano definitive solo dopo il salvataggio del documento con SaveAs

Parameters

IndexInteger. Posizione a base zero nell'albero dei nomi EmbeddedFiles. Deve soddisfare 0 <= Index < AttachmentCount. Gli indici corrispondono a quelli riportati da AttachmentName e AttachmentType, così iterare 0..AttachmentCount - 1 visita ogni allegato esattamente una volta

Remarks

Example

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;

See Also

AttachmentCount, AttachmentName, AttachmentType, CreateAttachment, DeleteAttachment