/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 パケットを生成または更新します
True である必要があります (文書が読み込まれていなければなりません) アクティブでない
コンポーネントで読み取ると、欠落した項目に対して例外は送出されず、空文字列が返るだけですFE FF) を前置した
UTF-16BE のバイト列として保存されます。PDFium は両方の形式をデコードするため、エンコーディングを直接扱う必要はありませんAuthor が空でも Acrobat のプロパティダイアログに著者が見える場合は、XMP パケットの値
(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;