【发布时间】:2020-06-05 10:55:04
【问题描述】:
我必须改写我的问题,基本上我的要求非常直接,我想在 iText7 生成的 pdf 文件中显示亚洲字符。
到目前为止,我已经下载了 NotoSansCJKsc-Regular.otf 文件并分配了一个变量来保存路径,下面是我的代码:
public static string FONT = @"D:\Projects\Resources\NotoSansCJKsc-Regular.otf";
PdfWriter writer = new PdfWriter(@"C:\temp\test.pdf");
PdfDocument pdfDoc = new PdfDocument(writer);
Document doc = new Document(pdfDoc, PageSize.A4);
PdfFont fontChinese = PdfFontFactory.CreateFont(FONT, PdfEncodings.IDENTITY_H);
doc.SetFont(fontChinese);
但我现在面临的问题是每当代码运行到本节时:
PdfFont fontChinese = PdfFontFactory.CreateFont(FONT, PdfEncodings.IDENTITY_H);
我总是收到此错误:由于 I/O 设备错误,无法执行请求。而且这个错误对我来说没有意义,我正在努力寻找解决方案,这里有人可以遇到类似的问题吗?代码在 C# 中。
非常感谢。
【问题讨论】:
-
很抱歉再次询问,但有没有人在 iText7 上遇到过类似的问题。
-
非常感谢,我已经调查过了,但得到了我在这篇文章中编辑的错误。
-
为了确保错误不在 iText 端(或证明它是),首先尝试使用
File.ReadAllBytes将字体文件读入字节数组,然后将该字节数组输入@987654325 @。如果异常出现在File.ReadAllBytes行,那么问题不在 iText -
非常感谢 Alexey,我认为这更多是在我的工作站方面,我尝试了另一个 pdf 库(FreeSpire.PDF.6.2.0),它最初有同样的错误,但是当我将我的源代码移动到更强大的工作站,它能够生成带有亚洲字符的 pdf。我稍后会在那个工作站上尝试 iText7 看看。