/Author-Eintrags aus dem Informationswörterbuch des PDF-Dokumentsproperty Author: WString; // read only
Author liefert den lesbaren Namen der Person oder Organisation,
die das Originaldokument verfasst hat. Intern ist die Eigenschaft ein
dünner Wrapper um MetaText['Author'],
der seinerseits PDFiums FPDF_GetMetaText aufruft, um die
/Author-Zeichenkette aus dem Informationswörterbuch des Dokuments
zu lesen (das Wörterbuch, auf das der /Info-Key des Trailers
verweist — siehe ISO 32000-1, section 14.3.3 "Document Information Dictionary")
Deklariert das Dokument keinen Autor oder ist gerade kein Dokument
geladen, ist das Ergebnis ein leerer WString. Die Eigenschaft
löst nie eine Ausnahme aus — eine leere Zeichenkette ist das korrekte
Signal für "kein Autor hinterlegt". Weil die zugrunde liegende PDFium-API den rohen
PDFDocEncoding- oder UTF-16BE-Bytestring für Sie
nach UTF-16 dekodiert, kommt das Ergebnis immer in der nativen Delphi-
WideString-Kodierung zurück und lässt sich direkt einer
TStrings-, TLabel- oder beliebigen anderen
Unicode-fähigen Oberfläche zuweisen
Die Eigenschaft ist read-only. Um den Autor eines neu erzeugten oder
geladenen Dokuments zu setzen, verwenden Sie den FPDF_SetMetaText-
Import auf Low-Level-Ebene gegen das Document-
Handle, oder schreiben/aktualisieren Sie ein XMP-Paket über den Metadaten-Stream
True ist (es muss ein Dokument geladen sein). An einer inaktiven
Komponente liefert das Lesen schlicht eine leere Zeichenkette — für einen
fehlenden Eintrag wird keine Ausnahme ausgelöstFE FF). PDFium dekodiert beide
Formen; Sie kommen mit der Kodierung nie direkt in BerührungAuthor leer ist, im Dialog zu den Acrobat-Eigenschaften
aber ein Autor zu sehen ist, dann suchen Sie den Wert im XMP-Paket
(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;