问题描述
我正在使用KendoUi Grid的内置功能以pdf http://demos.telerik.com/kendo-ui/grid/pdf-export格式导出网格数据。当数据语言为英语时,它可以正常工作。但是,当数据语言从右到左(例如波斯语或阿拉伯语)时,在pdf导出中会分别和相反地显示字母。 例如,显示“ مان”而不是“نام”。 如何解决。 我的代码:
@(Html.Kendo().Grid<MyModel>()
.Name("GridName")
.ToolBar(toolbar =>
{
toolbar.Pdf().Text(" ").HtmlAttributes(new { @class = "excel-pdf-btn fa fa-file-pdf" });
})
.Pdf(pdf => pdf.AllPages().FileName("MyFileName.pdf").PaperSize("A4").ProxyURL(Url.Action("Pdf_Export_Save","Grid")))
.Columns(columns =>
{
columns.Bound(t=> t.Id).Visible(false);
columns.Bound(t => t.Name).Title("نام");
.DataSource(t => t
.Ajax()
.Model(m => m.Id(i => i.Id))
.PageSize(15)
.Read(r => r.Action("FillGrid","MyController"))
)
)
更新: 我嵌入了ttf字体。但是问题没有解决。
<script>
kendo.pdf.defineFont({
'serif': 'MyFont','serif|bold': 'MyFont','serif|italic': 'MyFont','serif|bold|italic': 'MyFont','sans-serif': 'MyFont','sans-serif|bold': 'MyFont','sans-serif|italic': 'MyFont','sans-serif|bold|italic': 'MyFont','monospace': 'MyFont','monospace|bold': 'MyFont','monospace|italic': 'MyFont','monospace|bold|italic': 'MyFont',"MyFont" : "@Url.Content("~/Content/fonts/MyFont.ttf")"
});
</script>
解决方法
不幸的是-根据这样的说法:https://feedback.telerik.com/kendo-jquery-ui/1359291-add-right-to-left-pdf-support到目前为止,PDF导出似乎还不支持它。
此处列出了一些可能的选项-不知道它们是否有效。 Export to PDF using Kendo UI (issue with RTL languages)