首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用libharu库进行pdf编码

用libharu库进行pdf编码
EN

Stack Overflow用户
提问于 2017-05-08 15:19:22
回答 1查看 2.5K关注 0票数 2

我正试图在利巴鲁图书馆版本2.3的帮助下创建一个pdf文档。

除了编码之外,一切都很顺利。我需要插入中欧语(捷克语)。源代码保存为utf-8,并在Linux gcc下编译。

在函数HPDF_GetFont()中,我尝试了所有的单字节编码以及文件中所有的内置字体和字体,并支持utf-8。但这不是通往成功的道路。

我应该在下面的代码中更改什么?我是否应该将文本“abcdéěňóšťíď”保存为“abcdéěňóšťíď”,然后以某种方式将其转换为单字节?

谢谢你的建议。

代码语言:javascript
复制
void write_to_pdf(char *file_name)
{
    HPDF_Doc pdf;
    HPDF_Page page;
    HPDF_Font font;

    pdf = HPDF_New (NULL, NULL);
    if (!pdf) 
    {
        printf ("ERROR: cannot create pdf object.\n");
        return false;
    }

    HPDF_UseUTFEncodings(pdf);

    font = HPDF_GetFont(pdf, HPDF_LoadTTFontFromFile(pdf, "arial.ttf", HPDF_TRUE), "StandardEncoding");
    page = HPDF_AddPage(pdf);
    HPDF_Page_SetSize (page, HPDF_PAGE_SIZE_A4, HPDF_PAGE_PORTRAIT);
    HPDF_Page_SetTextRenderingMode(page, HPDF_FILL);
    HPDF_Page_SetRGBFill(page, 0.0, 0.0, 0.0);

    HPDF_Page_SetFontAndSize(page, font, 11);
    HPDF_Page_BeginText(page);
    HPDF_Page_TextOut(page, 10, 20, "abcdÁéěňóšťíď");
    HPDF_Page_EndText(page);

    HPDF_SaveToFile (pdf, file_name);
    HPDF_Free (pdf);
}

pdf文件中的字符“ěňóšťíď”没有正确打印。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-08 15:30:19

我解决问题的方法是:

HPDF_SetCurrentEncoder(pdf, "UTF-8")

和UTF-8给fnc:

HPDF_GetFont(pdf, HPDF_LoadTTFontFromFile(pdf, "arial.ttf", HPDF_TRUE), "UTF-8")

我没有在文档中找到这个,而是在这里中找到了这个。也许医生不是最新的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43851366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档