如何使用 PoDoFo 库嵌入 Base14 字体

How to embed Base14 fonts using the PoDoFo library

我正在使用 PoDoFo 库生成 PDF 文档。除了 Base14 字体("Courier"、"Helvetica"、"Times"、"Symbol"、"ZapfDingbats")之外的所有字体都被嵌入。 如何嵌入这4种Base14字体?

默认情况下,CreateFont() 函数使用 EFontCreationFlags::eFontCreationFlags_AutoSelectBase14 属性(因此不必给出)。

PoDoFo::PdfDocument *pDocument;
... 
pDocument->CreateFont("Times", false, false, false, 
    PoDoFo::PdfEncodingFactory::GlobalIdentityEncodingInstance(),
    PoDoFo::PdfFontCache::eFontCreationFlags_AutoSelectBase14
);

此属性使函数自动检查字体是否为Base14 字体,如果是,则PoDoFo 不会嵌入该字体。使用 PdfFontCache::eFontCreationFlags_None 标志嵌入字体。

PoDoFo::PdfDocument *pDocument;
... 
pDocument->CreateFont("Times", false, false, false,
    PoDoFo::PdfEncodingFactory::GlobalIdentityEncodingInstance(),
    PoDoFo::PdfFontCache::eFontCreationFlags_None
);