【问题标题】:iText 7 Chinese characters and merge with existing pdf templateiText 7个汉字并与现有的pdf模板合并
【发布时间】: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 看看。

标签: pdf itext7


【解决方案1】:

我可以确认上述代码按预期工作,我最初下载的 .otf 文件已损坏,因此出现上述错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多