c# – 从iTextSharp中的嵌入式资源加载BaseFont

我正在使用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# – MVC3将多个pdfs作为zip文件返回


下一篇:c# – 比较和提取文本时的位置