2014-12-07 49 views
0

我正在尝试使用自定义条码字体进行打印。使用自定义字体在ASP.NET中打印

一切都很好,你可以在下面看到,我打印到.pdf。问题是“测试条形码”不显示为条形码。当我打开.pdf时,字体是San Serif,但我可以将其更改为条形码,因此字体已安装并正常工作。 “测试文本”以Times New Roman字体正确显示。

我在本地主机上测试。

任何想法?

public void Submit_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     PrintDocument pd = new PrintDocument(); 
     pd.PrintPage += new PrintPageEventHandler(pd_PrintPage); 

     pd.PrinterSettings.PrinterName = "Adobe PDF";  
     pd.Print(); 
    } 
    catch (Exception ex) 
    { 
     Response.Write("Error: " + ex.ToString()); 
    } 
} 
void pd_PrintPage(object sender, PrintPageEventArgs ev) 
{ 
    Font printFont = new Font("3 of 9 Barcode", 48); 
    Font printFont1 = new Font("Times New Roman", 9, FontStyle.Bold); 

    SolidBrush br = new SolidBrush(Color.Black); 

    ev.Graphics.DrawString("Test Barcode", printFont, br, 10, 65); 
    ev.Graphics.DrawString("Test Text", printFont1, br, 10, 205); 


} 

回答

0

请参阅从MSDN的言论,对于字体构造

public Font(
    string familyName, 
    float emSize 
) 

Windows窗体应用程序支持TrueType字体,并限制了OpenType字体的支持。如果familyName参数指定运行应用程序的计算机上未安装的字体或不支持的字体,则Microsoft Sans Serif将被替换。

http://msdn.microsoft.com/en-us/library/164w6x6z(v=vs.110).aspx

所以我认为你可能会需要再次仔细检查你的字体安装。

+0

谢谢你的回应。这是asp.net,而不是windows窗体。我一次又一次地看过它,我不知道它有什么问题。 – 2014-12-07 04:13:41

+0

@michaelhanon那么这个评论说的是WinForms,但它在ASP.NET应用程序上的工作原理是一样的。我想你可能想看看安装的字体文件夹,转到控制面板 - >字体,看看你的'3 of 9 Barcode'字体类型是否在它。并确保该名称与您在代码中指定的名称完全相同 – woodykiddy 2014-12-07 07:11:50