如何使用自定义字体在 MuPDF 中渲染 epub 文档?

问题描述 投票:0回答:1

我的问题似乎太简单了,但是我搜索并阅读了很多代码都没有成功。
我如何使用 MuPDF 可用的字体(非内置字体)以使用该字体呈现 EPUB 文档?
我尝试按以下方式加载我的字体但没有成功:

// just after creating fz_context...

// registering my custom system font installation function
fz_install_load_system_font_funcs(m_ctx, [](fz_context *ctx, const char *name, int bold, int italic, int needs_exact_metrics) -> fz_font* {
    reinterpret_cast<const unsigned char*>(ba.constData()), ba.length(), 0, 0);
    fz_font *f = nullptr;
    fz_try(ctx)
    {
        // ignore any argument just for test...
        f = fz_new_font_from_file(ctx, "Ubuntu", "/Users/seyedmahdimousavi/Library/Fonts/Ubuntu-R.ttf", 0, 0);
        //f = fz_new_font_from_file(ctx, nullptr, "/Users/seyedmahdimousavi/Library/Fonts/Ubuntu-R.ttf", 0, 1);
                
    } fz_catch(ctx) {
        return NULL;
    }
    return f;
}, nullptr, nullptr);

// call it
fz_font *ff = fz_load_system_font(m_ctx, "Ubuntu", 0, 0, 0);

我为 epub 文档应用了以下样式:

* {font-family: "default", "Ubuntu" ! important; }

通过以下电话:

fz_try(m_ctx)
{
    fz_set_user_css(m_ctx, myCssText);
}
fz_catch(m_ctx)
{
    //...
}

非常感谢

c++ epub font-family mupdf pymupdf
1个回答
0
投票

您可以在用户 CSS 中使用@font-face 声明来为 EPUB 引擎定义和加载自定义字体。

© www.soinside.com 2019 - 2024. All rights reserved.