Javascript 剑道导出到PDF Unicode支持

Javascript 剑道导出到PDF Unicode支持,javascript,unicode,kendo-ui,export,kendo-grid,Javascript,Unicode,Kendo Ui,Export,Kendo Grid,我一直在尝试将语言动态地合并到剑道控件中,但遇到了中文翻译的问题,这些翻译存储在Sql Server数据库中的Unicode列表中 数据库中存储的翻译 通过使用列模板属性,剑道网格很快启动并运行,以中文显示这些Unicode: template: '#= Translation #' 剑道网格显示翻译 我遇到的问题是Excel/PDF导出。它们不会呈现Unicode值,就像剑道网格通过使用模板所做的那样。而是显示默认字体字符: PDF导出 CSV导出 在对该问题进行研究后,我尝试

我一直在尝试将语言动态地合并到剑道控件中,但遇到了中文翻译的问题,这些翻译存储在Sql Server数据库中的Unicode列表中

数据库中存储的翻译


通过使用列
模板
属性,剑道网格很快启动并运行,以中文显示这些Unicode:

template: '#= Translation #'
剑道网格显示翻译


我遇到的问题是Excel/PDF导出。它们不会呈现Unicode值,就像剑道网格通过使用
模板所做的那样。而是显示默认字体字符:

PDF导出

CSV导出


在对该问题进行研究后,我尝试了以下解决方案,但均无效:

  • 设置网格控件的字体系列,如下所示:;(为了与网站的其他部分保持一致,我并不特别想这样做,我也不明白为什么会这样做,因为实际的剑道网格本身完美地显示了汉字):


  • 将列属性设置为true:

    { field: "AnalyteName", title: "Analyte", attributes: { "class": "customKendoGridCell"}, width: "25%", encoded: true, template: '#= TranslationField #' },
    

  • 使用:

    如果要在模板中呈现编码的HTML值,Kendo UI模板可以自动处理编码

    模板:'#=setFieldName(TranslationField)#'
    函数setFieldName(TranslationField){
    返回剑道模板(“#:TranslationField#”);
    }
    
这似乎显示了整个函数,而不仅仅是字段,可能在剑道网格列的上下文中需要使用不同的
kendo.template


我已经做了一个例子来演示PDF导出的问题。

我从来没有遇到过Unicode的问题,不过,我知道一个解决方案可能会对您有所帮助

.k-grid {
        font-family: "DejaVu Sans", "Arial", sans-serif;
    }

在网格文件中使用这一行,就像在剑道中一样,标准PDF字体不支持Unicode字符

不起作用,根据问题,我已经尝试设置字体族属性,不想特别修改字体,因为它破坏了与网站其他部分的一致性。不过谢谢你的输入。我想你至少要在特定的页面上这样做。访问此示例并单击编辑,阅读剑道的注释@SandmanYes,检查原始问题中的Dojo示例(它是从您刚刚发送的示例中修改的)-当使用unicode值时,它不起作用。您能够修复它吗?
template: '#=setFieldName(TranslationField)#'

function setFieldName(TranslationField) {
    return kendo.template("<div id='box'>#: TranslationField #</div>");
}
.k-grid {
        font-family: "DejaVu Sans", "Arial", sans-serif;
    }