PDFium Component Docs

Attachment Eigenschap

Component: TPdf  ·  Unit: PDFium
Leest of vervangt de ruwe bytepayload van het op documentniveau ingesloten bestand op de opgegeven index op basis van 0. Elk slot komt overeen met één vermelding in de PDF EmbeddedFiles-naamboom die is gedefinieerd in sectie 7.11 van de PDF 1.7-specificatie

Syntax

property Attachment[Index: Integer]: TBytes;

Description

PDF-documenten kunnen willekeurige hulpbestanden meedragen (bronspreadsheets, originele Word-documenten, bijgevoegde facturen, ondertekende XML-payloads, ZIP-bundels, zelfs andere PDF's) in een container op documentniveau die de EmbeddedFiles-naamboom heet. Elke vermelding is een PDF file specification-dictionary waarvan de stream de werkelijke bytes van het bijgevoegde bestand bevat. PDFium Delphi Component stelt die boom bloot als een vlakke, op nul gebaseerde index van 0 tot AttachmentCount - 1

Het lezen van Attachment[Index] geeft de gedecodeerde byte-inhoud van het bijgevoegde bestand terug als een TBytes-array — precies de bytes die elke andere PDF-lezer zou extraheren wanneer de gebruiker op het paperclipje klikt en de bijlage opslaat. De teruggegeven bytes zijn al gedecomprimeerd; u kunt ze rechtstreeks naar schijf schrijven, naar een stream sturen of ze terugvoeren aan een andere TPdf-instantie als de bijlage zelf een PDF is

Schrijven vervangt de bestandsstream van een bestaand bijlage-slot ter plekke. Het slot moet al bestaan; gebruik eerst CreateAttachment als u een nieuwe vermelding nodig heeft. Schrijfbewerkingen worden in het geheugen gebufferd en worden pas definitief nadat het document met SaveAs is opgeslagen

Parameters

IndexInteger. Op nul gebaseerde positie in de EmbeddedFiles-naamboom. Moet voldoen aan 0 <= Index < AttachmentCount. De indexen komen overeen met die van AttachmentName en AttachmentType, dus een lus over 0..AttachmentCount - 1 bezoekt elke bijlage precies één keer

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