我正在使用 iTextSharp 生成动态 PDF 文档。我需要使用我拥有许可的 .ttf 文件的非常特定的字体。
我可以使用下面的代码来加载和使用字体,但是我更喜欢将字体文件作为嵌入资源放置在我的类库中,而不是依赖于磁盘上的特定位置。
string fontpath = Server.MapPath(".");
BaseFont customfont = BaseFont.CreateFont(fontpath + "myspecial.ttf", BaseFont.CP1252, BaseFont.EMBEDDED);
Font font = new Font(customfont, 12);
string s = "My expensive custom font.";
doc.Add(new Paragraph(s, font));
有人可以帮助我了解如何实现这一目标吗?
最佳答案
查看 ITextSharp 源代码后,您似乎可以使用以下 BaseFont.CreateFont
重载来将嵌入的资源用作字体(来自 BaseFont.cs 的第 543 行):
public static BaseFont CreateFont(String name, String encoding, bool embedded, bool cached, byte[] ttfAfm, byte[] pfb)
ttfAfm
应该将 TTF 文件表示为 byte[]
。关于c# - 从 iTextSharp 中的嵌入资源加载 BaseFont,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8782022/