THotPDF.FontEmbedding Property

 

THotPDF.FontEmbedding

THotPDF

 

顶部  上一页  下一页

确定 PDF 文档是否嵌入文档使用的字体

 

Delphi 语法:

property FontEmbedding: Boolean;

 

C++ 语法:

__property bool FontEmbedding;

 

说明

字体可以作为 font program data 嵌入 PDF。将 FontEmbedding 设为 true 可嵌入字体,并在目标系统未安装所选字形时保留该字形

 

对于当前 Unicode 和 CIDFontType2 输出,HotPDF 会保留嵌入字体的原始 glyph ID,并写入 ToUnicode map 以及 CIDToGIDMap /Identity。这在严格 PDF 阅读器中提供更可靠的渲染

 

嵌入 TrueType 字体时,HotPDF 会读取字体程序的 PostScript 名称,并保持 /BaseFont、/FontDescriptor /FontName、/FontFamily 和 descendant CID font 名称与嵌入字体数据一致。这样可避免请求的 Windows face name 与嵌入字体内部 PostScript 名称不一致时出现阅读器侧 font capture 问题

 

当最终 PDF 只应嵌入文档实际使用的 glyph 时,请在 BeginDoc 前将 EnableFontSubsetting 设为 true

 

进行可视字体保真测试时,请同时使用 FontEmbedding = true 与 StandardFontEmulation = false。可参考 Tests\Delphi\FontTest 中的实用示例

 

代码示例

HPDF.FontEmbedding := true;                      // Embed selected fonts in the PDF
HPDF.StandardFontEmulation := false;            // Use the actual installed font
HPDF.CurrentPage.SetFont( 'Calibri', [], 12 );
HPDF.CurrentPage.TextOut( 100, 100, 0, 'This text uses embedded Calibri glyphs' );

HPDF.FontEmbedding := false;                    // Disable embedding for following fonts
HPDF.CurrentPage.SetFont( 'Times New Roman', [], 12 );
HPDF.CurrentPage.TextOut( 100, 80, 0, 'This text depends on viewer font availability' );

 

另请参阅: EnableFontSubsetting,  NotEmbeddedFonts,  StandardFontEmulation