iText嵌入字体失败

时间:2012-10-19 09:09:35

标签: c# pdf itext

我有一个从pdf模板创建pdf的函数。该模板包含6行文本。

其中5行应采用'Myriad Pro'字体。这很好用。 另一行(“名称”)应为字体'TheSerif'。我们通过合法供应商购买了这种字体。这条线似乎不起作用。该函数不会抛出错误,但在输出PDF中,该行无法读取。

我对两种字体都使用相同的程序,所以我不知道为什么第二种字体不起作用。

  BaseFont Myriad = null;
  BaseFont TheSerif = null;

  Myriad = BaseFont.CreateFont("D:\\Drukwerk\\MYRIADPRO-REGULAR.OTF", BaseFont.WINANSI, BaseFont.EMBEDDED);
  TheSerif = BaseFont.CreateFont("D:\\Drukwerk\\TSer6C__.pfm", BaseFont.WINANSI, BaseFont.EMBEDDED);

  pdfFormFields.SetFieldProperty("name", "textfont",TheSerif , null); 
  pdfFormFields.SetFieldProperty("Function", "textfont",Myriad, null);
  pdfFormFields.SetFieldProperty("telephone", "textfont",Myriad, null);  
  pdfFormFields.SetFieldProperty("mobile", "textfont",Myriad, null);  
  pdfFormFields.SetFieldProperty("fax", "textfont",Myriad, null);    
  pdfFormFields.SetFieldProperty("emailadres", "textfont",Myriad, null); 

编辑: 我将字体创建更改为以下

TheSerif = BaseFont.CreateFont("D:\\Drukwerk\\TSer6C__.pfm", 
                                BaseFont.WINANSI,
                                BaseFont.EMBEDDED, 
                                true, 
                                FileToByteArray("D:\\Drukwerk\\TSer6C__.afm"), 
                                FileToByteArray("D:\\Drukwerk\\TSer6C__.pfb"));

此函数将pfb和afm文件作为参数。我现在收到以下错误:'不是有效的.pfm文件'

1 个答案:

答案 0 :(得分:2)

PFM文件是postscript字体的字体度量文件(Printer Font Metric)。此文件不包含任何字符绘图命令。

PFM文件通常与包含字形图的PFB或PFA文件一起使用,这是您应该使用的文件。