property Language: WString; // read / write
Language はドキュメントカタログの /Lang entry を読み書きします(PDF 1.7 仕様 14.9.2 節)。文字列は RFC 3066 / BCP 47 の言語タグ構文に従います。en、en-US、zh-Hans、ja-JP などです。スクリーンリーダーとアクセシビリティツール(PDF/UA、JAWS、NVDA)は、タグ付きテキストを読み上げるとき、このタグで正しい発音エンジンを選びます
Active が False のとき、ドキュメントが /Lang を宣言していないときは空文字列を返します。新しい値を代入するとカタログは即時更新されますが、変更が永続化されるのは次の SaveToFile / SaveToStream 呼び出しです。個々のテキスト構造要素での span 単位の言語上書き(構造要素辞書の /Lang entry で設定するもの)は、このプロパティでは公開されません
Language はテキストコンテンツのエンコーディングとは独立です。PDFium は言語にかかわらず文字データを UTF-16 へデコードします。タグは純粋なメタデータで、主にタグ付き / PDF-UA のアクセシブルなドキュメントや、抽出テキストを言語別トークナイザーへ振り分けるインデックスエンジンに関係します
/Lang entry を宣言しなければなりません。タグ付き PDF を検証するなら、Language を設定するだけで直せますIsTagged と組み合わせれば、ドキュメントがそもそもアクセシビリティツリーを謳っているか判定できますEN-us でなく en-US)を推奨しています。PDFium Delphi Component は大文字小文字をそのまま保存します
if Pdf1.Language = '' then
begin
Pdf1.Language := 'en-US';
Pdf1.SaveToFile('tagged.pdf');
end
else
Label1.Caption := 'Document language: ' + Pdf1.Language;