1

我在我的项目中使用 iTextSharp 创建 PDF,但我对字体有疑问...

这是我的代码...

 //Path to our font
 string arialuniTffFont = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "ARIALUNI.TTF");
 //Register the font with iTextSharp
 iTextSharp.text.FontFactory.Register(arialuniTffFont);

 fontTitleReport = BaseFont.CreateFont(arialuniTffFont, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

它在我的本地项目中工作但在云中它不起作用关于云的错误发生无法看到我的字体的路径(c:\ Window \ Font \ ...)

如何解决它...帮帮我请T^T

附言。我想使用这种字体(Arial Unicode MS)因为在我的报告中我想创建许多语言。(例如:英语、日语、泰语等)

4

2 回答 2

1

失败原因: 它在您的本地 PC 上工作,因为您已将字体安装/复制到C:\Windows\Fonts位置。但您尚未在远程 PC 中安装这些字体。

解决方案: 您需要将字体安装/复制到C:\Windows\Fonts云的位置。

于 2013-11-11T03:30:42.667 回答
1

在没有文件系统的情况下(例如在 Google App Engine 上),您需要使用不同的createFont()方法,更具体地说是接受流作为参数的方法之一。

您需要传递byte[]字体程序的位置,而不是将字体文件的位置作为参数传递。参见例如:http ://api.itextpdf.com/itext/com/itextpdf/text/pdf/BaseFont.html#createFont (java.lang.String, java.lang.String, boolean, boolean, byte[],字节[])

在您的情况下,您正在谈论一个 TTF 文件,因此您需要将此文件的字节作为参数传递,ttfAfm并且参数pfb可以是null(此参数仅用于 Type1 字体,其中字体程序由两个文件组成:AFM文件和 PFB 文件)。

于 2013-11-11T08:05:45.493 回答