首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有MigraDoc/PDFsharp的日语字符

带有MigraDoc/PDFsharp的日语字符
EN

Stack Overflow用户
提问于 2015-11-14 09:11:39
回答 4查看 3.5K关注 0票数 0

我使用MigraDoc在本地机器上生成PDF文档。日语字符显示不正确。

我使用下面的说明生成带有Unicode的文档。

代码语言:javascript
复制
var document = new MigraDoc.DocumentObjectModel.Document();
//Do stuff...
PdfDocumentRenderer renderer = new PdfDocumentRenderer(true, PdfSharp.Pdf.PdfFontEmbedding.Always);
renderer.Document = document;

这适用于一些非ASCII字符(重音字母),但不适用于日本字符。

从PDFsharp网站的示例中,我认为我应该使用PdfDocument (而不是Migradoc文档)对象,向该文档添加页面,并使用Migradoc对象填充页面

http://www.pdfsharp.net/wiki/MixMigraDocAndPdfSharp-sample.ashx

然而,我已经有了一个用Migradoc创建的复杂的多页文档结构;所以我希望能够按原样重用它(例如,将它包含在一个PdfDocument中)。

有什么想法吗?

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-11-15 10:38:14

这似乎能起作用

代码语言:javascript
复制
document.Styles[StyleNames.Normal].Font.Name = "Arial Unicode MS";

在PDF文档中嵌入字体也是可能的,以确保每个人都能阅读它。

票数 5
EN

Stack Overflow用户

发布于 2015-11-14 17:39:57

根据常见问题的说法,日语还不受支持。支持从左到右的语言,如果您反转字符串,希伯来语可以工作。

对于日语字符,无论您使用的是MigraDoc (类Document)还是PDFsharp (类PdfDocument),都没有区别。

票数 0
EN

Stack Overflow用户

发布于 2016-08-25 23:24:58

我真的很想使用PDFSharp。但他们说,他们不支持CJK或阿拉伯语,但我发现不同。今天我自己研究了一下,发现了一个非常简单的方法来完成所有的语言。这是穷人的方式,但它奏效了。

代码语言:javascript
复制
// Set font encoding to unicode always
XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode, PdfFontEmbedding.Always);
// Then use the font with the most language support
XFont font = new XFont("Arial Unicode MS", 12, XFontStyle.Regular, options);

现在,在呈现文本时使用此字体。我能够测试英语,德语,阿拉伯语,汉语,韩语,日语,意大利语,俄语,荷兰语,然后我决定我做的足够我的测试。

嵌入文本的有趣的副作用如果是VS2010,用阿拉伯语最多的光标向后工作。好的,这是阿拉伯语的正确方式吗?微软真棒。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33706864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档