/Author 項目的值property Author: WString; // read only
Author 會傳回撰寫原始文件之人員或組織的可讀名稱。內部來說,這個屬性只是 MetaText['Author'] 的薄包裝,而後者又會呼叫 PDFium 的 FPDF_GetMetaText,讀取文件資訊字典中的 /Author 字串(該字典由尾碼的 /Info 鍵所參照 — 請參見 ISO 32000-1 第 14.3.3 節 "Document Information Dictionary")
如果文件沒有宣告作者,或文件目前尚未載入,結果會是空的 WString。這個屬性不會丟出例外 — 空字串才是「沒有記錄作者」的正確哨兵值。由於底層 PDFium API 會替你把原始 PDFDocEncoding 或 UTF-16BE 位元組字串解碼成 UTF-16,因此結果一律會以 Delphi 原生的 WideString 編碼傳回,並可安全地直接指定給 TStrings、TLabel 或任何其他支援 Unicode 的介面
此屬性為唯讀。若要在新建立或已載入的文件上設定作者,請直接對 Document 控制代碼使用較低階的 FPDF_SetMetaText 匯入,或透過中繼資料串流撰寫/重新整理 XMP 封包
Author 需要 Active 為
True(文件必須已載入)。在未啟用的元件上讀取時只會傳回空字串 — 對於缺少項目的情況不會拋出例外FE FF)的 UTF-16BE 位元組字串。PDFium 會解碼這兩種形式;你不需要直接處理編碼Author 為空,但在 Acrobat 的內容對話框中仍看得到作者,請到 XMP 封包(dc:creator)中找值Author 只是資訊性欄位。它不會與數位簽章主體驗證比對,且任何具有寫入權限的人都可以自由編輯
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;