我在项目中使用iTextSharp创建PDF 我有关于Font的问题......
这是我的代码......
//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
PS。我想使用这种字体(Arial Unicode MS)因为在我的报告中我想创建许多语言。(例如:英语,日语,泰语等)
答案 0 :(得分:1)
失败的原因:
它在您的本地PC上工作,因为您已将字体安装/复制到C:\Windows\Fonts
位置。但是你没有在远程PC中安装这些字体。
<强>解决方案:强>
您需要将字体安装/复制到云的C:\Windows\Fonts
位置。
答案 1 :(得分:1)
如果您没有文件系统(例如在Google App Engine上),则需要使用不同的createFont()
方法,更具体地说,是接受流作为参数的方法之一。< / p>
您需要传递字体程序的byte[]
,而不是将字体文件的位置作为参数传递。参见例如:http://api.itextpdf.com/itext/com/itextpdf/text/pdf/BaseFont.html#createFont(java.lang.String,java.lang.String,boolean,boolean,byte [],byte [])
在您的情况下,您正在谈论TTF文件,因此您需要将此文件的字节作为参数ttfAfm
传递,参数pfb
可以是null
(此参数仅用于Type1字体,其中字体程序包含两个文件:AFM文件和PFB文件。)