/Author-entry uit het informatiewoordenboek van het PDF-document terugproperty Author: WString; // read only
Author geeft de voor mensen leesbare naam van de persoon of organisatie
die het oorspronkelijke document heeft geschreven. Intern is de eigenschap een
dunne wrapper rond MetaText['Author'],
die op zijn beurt FPDF_GetMetaText van PDFium aanroept om de
/Author-tekenreeks uit het informatiewoordenboek van het document
te lezen (het woordenboek waarnaar wordt verwezen door de /Info-sleutel
van de trailer — zie ISO 32000-1, sectie 14.3.3 "Document Information Dictionary").
Als het document geen auteur declareert, of als het document momenteel niet is
geladen, is het resultaat een lege WString. De eigenschap geeft nooit
een exceptie — een lege tekenreeks is de juiste schildwachtwaarde voor
"geen auteur geregistreerd". Omdat de onderliggende PDFium-API de ruwe
PDFDocEncoding- of UTF-16BE-bytetekenreeks voor u
decodeert naar UTF-16, wordt het resultaat altijd teruggegeven in de native Delphi
WideString-codering en kan het direct worden toegekend aan een
TStrings, TLabel of een ander Unicode-bewust oppervlak.
De eigenschap is alleen-lezen. Om de auteur in te stellen op een nieuw aangemaakt
of geladen document gebruikt u de import op lager niveau FPDF_SetMetaText
tegen de Document-handle, of stelt u een XMP-pakket
op of vernieuwt u dit via de metadatastroom.
True is (er moet een document zijn geladen). Het lezen op een
inactieve component geeft gewoon een lege tekenreeks terug — er wordt geen
exceptie opgegooid voor een ontbrekende entry.FE FF). PDFium decodeert beide vormen; u hoeft
nooit zelf met de codering om te gaan.Author leeg is, maar u wel een auteur ziet in het eigenschappendialoog
van Acrobat, zoek de waarde dan in het XMP-pakket (dc:creator).
procedure TForm1.ShowDocumentInfo;
begin
Pdf1.FileName := 'C:\Docs\Report.pdf';
Pdf1.Active := True;
try
Memo1.Lines.Add('Title: ' + Pdf1.Title);
Memo1.Lines.Add('Author: ' + Pdf1.Author);
Memo1.Lines.Add('Subject: ' + Pdf1.Subject);
if Pdf1.Author = '' then
Memo1.Lines.Add(' (no /Author entry in info dictionary)');
finally
Pdf1.Active := False;
end;
end;