如何使用Qt解析为Unicode字体?

如何使用Qt解析为Unicode字体?,qt,unicode,fonts,pdf-generation,Qt,Unicode,Fonts,Pdf Generation,我有一个在WindowsXP下使用QGraphicscene的Qt4.8应用程序 如果我为QGraphicsTextItem对象选择字体“Arial”,我可以使用它显示中文、日文等。 使用Qts PDF引擎导出文档时: QPrinter *sPDFPrinter = new QPrinter; sPDFPrinter->setOutputFormat (QPrinter::PdfFormat); Pdf正确地嵌入了unicode版本的“Arial”,名为“ArialUnicodeMSSt

我有一个在WindowsXP下使用QGraphicscene的Qt4.8应用程序

如果我为QGraphicsTextItem对象选择字体“Arial”,我可以使用它显示中文、日文等。 使用Qts PDF引擎导出文档时:

QPrinter *sPDFPrinter = new QPrinter;
sPDFPrinter->setOutputFormat (QPrinter::PdfFormat);
Pdf正确地嵌入了unicode版本的“Arial”,名为“ArialUnicodeMSStandard”


这是怎么做到的?我还想将其用于其他导出。

Uhm,如果它嵌入了Arial Unicode MS,那么实际上它做了一些非常错误的事情。这不是您要求的字体,默认情况下Windows上不存在此类字体链接。见鬼,Arial Unicode MS已经过时得可怕了,有太多的bug,并且只打算作为一种备用字体(它是Office字体,不是Windows字体)。应该使用哪种字体来代替AriaLunicodems标准?普通的“Arial”字体不包含所有字符。永远不会有一种字体包含所有可能的字符。通常情况下,不同的脚本使用不同的字体,可以很好地配合使用。Windows为此提供了字体链接,因此CJK字形的样式与基本字体相似,即使Arial、Times和其他字体不包含此类字形。因此,我现在有两个问题,而不是一个问题:1)应该嵌入什么字体而不是“Arial”;2) 如何进行字体映射?Arial应该可以;理想情况下,映射应该由输出文本的任何东西来完成,在您的例子中是Qt或Windows。