Kendo 导出到 PDF Unicode 支持
Posted
技术标签:
【中文标题】Kendo 导出到 PDF Unicode 支持【英文标题】:Kendo Export To PDF Unicode Support 【发布时间】:2017-12-11 12:26:30 【问题描述】:我一直在尝试将语言动态地合并到 Kendo 控件中,但遇到了中文翻译问题,这些中文翻译存储为 Sql Server 数据库中的 Unicode 列表。
存储在数据库中的翻译
通过使用列 template
属性,很快就启动并运行了 Kendo Grid 以将这些 Unicode 显示为中文:
template: '#= Translation #'
剑道网格显示翻译
我遇到的问题与 Excel/PDF 导出有关。它们不呈现 Unicode 值,就像 Kendo Grid 通过使用 template
所做的一样。相反,它们显示默认字体字符:
PDF 导出
CSV 导出
我在研究该问题后尝试了以下解决方案,但无济于事:
在this recommendation之后设置网格控件的字体系列; (为了与网站的其他部分保持一致,我不想这样做,也不明白为什么这会起作用,因为实际的 Kendo Grid 本身可以完美地显示汉字):
.k-widget
font-family: 'Arial Unicode MS';
将列encoded
属性设置为true:
field: "AnalyteName", title: "Analyte", attributes: "class": "customKendoGridCell", width: "25%", encoded: true, template: '#= TranslationField #' ,
使用kendo.template
:
如果您想在模板中呈现编码的 html 值,Kendo UI 模板可以自动处理编码。
template: '#=setFieldName(TranslationField)#'
function setFieldName(TranslationField)
return kendo.template("<div id='box'>#: TranslationField #</div>");
这似乎显示了整个函数而不仅仅是字段,也许kendo.template
需要在 Kendo Grid 列的上下文中以不同的方式使用?
我已发送Dojo example 来演示 PDF 导出的问题。
【问题讨论】:
你能解决它吗? 【参考方案1】:我从来没有遇到过 Unicode 的问题,不过,我知道一个可以帮助你的解决方案。
.k-grid
font-family: "DejaVu Sans", "Arial", sans-serif;
在您的网格文件中使用这一行,就像在剑道中一样,标准的 PDF 字体不支持 Unicode 字符。
【讨论】:
没用,根据问题,我已经尝试设置 font-family 属性并且不想修改字体,因为它破坏了与网站其他部分的一致性。不过感谢您的意见。 我认为您至少必须为特定页面执行此操作。访问此示例并单击编辑,阅读 kendo 的注释。 demos.telerik.com/kendo-ui/grid/pdf-export@Sandman 是的,请检查我在原始问题中的 Dojo 示例(根据您刚刚发送的示例进行了修改) - 使用 unicode 值时它不起作用。以上是关于Kendo 导出到 PDF Unicode 支持的主要内容,如果未能解决你的问题,请参考以下文章
Kendo UI:在导出到 excel 和 pdf 期间操作网格列