True) のか、単に参照されていて表示時に operating system から解決されるだけ (False) なのかを示しますproperty FontIsEmbedded[Index: Integer]: Boolean; // read only
FontIsEmbedded は、指定 index のテキスト page object が参照する font が、実際のグリフプログラムを PDF ファイル内に持っているかどうかを報告します。embedded font はドキュメントに同行するためどのプラットフォームでも同じように描画されます。非埋め込み(参照のみ)の font は、ビューアーが同じ名前の font がローカルにインストールされていることに頼るため、表示時に代替される可能性があります
インデクサは 0 基準の page-object インデックス(0..ObjectCount - 1)です。テキスト以外のオブジェクトは常に False を返します。読み取りにはページがアクティブである必要があります
埋め込みには完全埋め込み(元フォントの全グリフを収録)と subset(実際に使われたグリフだけを収録し、base name に 6 文字の接頭辞を付加)があり、どちらもここでは embedded 扱いです。PDF/A 適合ではすべての font の埋め込みが求められるため、このプロパティはその要件の監査に手早く使えます
| Index | 0..ObjectCount - 1 の範囲の 0 基準 page-object インデックス |
True が返っても完全埋め込みか subset かは分かりません。subset の検出は FontBaseName に ABCDEF+ 接頭辞がないか見て行いますFontData は font が embedded のときしかデータを返しませんFalse を返しますvar
I, EmbeddedCount, TextCount: Integer;
begin
Pdf1.PageNumber := 1;
EmbeddedCount := 0;
TextCount := 0;
for I := 0 to Pdf1.ObjectCount - 1 do
if Pdf1.ObjectType[I] = otText then
begin
Inc(TextCount);
if Pdf1.FontIsEmbedded[I] then Inc(EmbeddedCount);
end;
ShowMessage(Format('%d of %d text objects use embedded fonts',
[EmbeddedCount, TextCount]));
end;