我正在使用JagPDF创建PDF文件,并且尝试打印≤符号,如下所示:
pdf::Document doc(pdf::create_file("report.pdf"));
doc.page_start(792,612);
pdf::Font font = doc.font_load("standard; name=Times-Roman; size=12");
doc.page().canvas().text_font(font);
doc.page().canvas().color("f", 0);
doc.page().canvas().text_rendering_mode("f");
doc.page().canvas().text(100, 300, "PEP ≤ 90");
doc.page_end();
doc.finalize();
可以打印出
PEP ? 90
我尝试阅读文档,他们说了一些有关Unicode的内容,但不明白它们是如何工作的,它一定很容易,而且只是我所缺少的东西。有人可以帮我吗?
答案 0 :(得分:0)
尝试:
doc.page().canvas().text(100, 300, "PEP \U+2264 90");
答案 1 :(得分:0)
我对JagPDF不熟悉,但是"PEP ≤ 90"
应该可以正常工作,只要您将源代码保存为UTF-8,并且库也需要UTF-8字符串。您还可以将"PEP \u2264 90"
与\uXXXX
一起使用,这是代码点U + XXXX的转义序列,但是显然可读性较低
根据文档,您可以设置编码并使用以下代码段输出文本
font = doc.font_load("file=DejaVuSans.ttf; size=14; enc=utf-8") canvas.text_font(font) text = unicode_text.encode('utf8') canvas.text(50, 780, text)
您还需要使用TrueType或OpenType字体,因为同一页面中Type 1字体下有一个注释
尽管JagPDF允许将内置的字体编码更改为UTF-8,但实际上,由于标准字体使用的字符集,我们实际上仅限于拉丁字母。
如果您使用的是C ++ 11及更高版本(应使用),则可以通过以下任意一种方式将编码强制为UTF-8
u8"PEP ≤ 90"
u8"PEP \U00002264 90"
u8"PEP \u2264 90"