在ASP.NET中使用自定义字体打印

时间:2014-12-07 01:58:34

标签: c# asp.net printing

我正在尝试使用自定义条形码字体进行打印。

一切都很好,如下所示,我打印到.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);


}

1 个答案:

答案 0 :(得分:0)

请参阅MSDN关于Font构造函数的评论

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

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