我使用MigraDoc在本地机器上生成PDF文档。日语字符显示不正确。
我使用下面的说明生成带有Unicode的文档。
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中)。
有什么想法吗?
谢谢
发布于 2015-11-15 10:38:14
这似乎能起作用
document.Styles[StyleNames.Normal].Font.Name = "Arial Unicode MS";在PDF文档中嵌入字体也是可能的,以确保每个人都能阅读它。
发布于 2015-11-14 17:39:57
根据常见问题的说法,日语还不受支持。支持从左到右的语言,如果您反转字符串,希伯来语可以工作。
对于日语字符,无论您使用的是MigraDoc (类Document)还是PDFsharp (类PdfDocument),都没有区别。
发布于 2016-08-25 23:24:58
我真的很想使用PDFSharp。但他们说,他们不支持CJK或阿拉伯语,但我发现不同。今天我自己研究了一下,发现了一个非常简单的方法来完成所有的语言。这是穷人的方式,但它奏效了。
// 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,用阿拉伯语最多的光标向后工作。好的,这是阿拉伯语的正确方式吗?微软真棒。
https://stackoverflow.com/questions/33706864
复制相似问题