我正试图在利巴鲁图书馆版本2.3的帮助下创建一个pdf文档。
除了编码之外,一切都很顺利。我需要插入中欧语(捷克语)。源代码保存为utf-8,并在Linux gcc下编译。
在函数HPDF_GetFont()中,我尝试了所有的单字节编码以及文件中所有的内置字体和字体,并支持utf-8。但这不是通往成功的道路。
我应该在下面的代码中更改什么?我是否应该将文本“abcdéěňóšťíď”保存为“abcdéěňóšťíď”,然后以某种方式将其转换为单字节?
谢谢你的建议。
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文件中的字符“ěňóšťíď”没有正确打印。
发布于 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")
我没有在文档中找到这个,而是在这里中找到了这个。也许医生不是最新的。
https://stackoverflow.com/questions/43851366
复制相似问题