【问题标题】:printing barcode from winforms application从 winforms 应用程序打印条形码
【发布时间】:2013-09-09 03:14:37
【问题描述】:

我想使用普通打印工具在 winforms 应用程序中打印条形码,而不是通过类似 ZPL 的语言。我可以打印任何不是普通条形码的东西

using (PrintDocument pd = new PrintDocument())
{
    pd.PrintController = new StandardPrintController();
    pd.PrinterSettings.PrinterName = "Printer";
    pd.PrintPage += new PrintPageEventHandler(pd_PrintLabel);
    pd.Print();
}

private void pdPrintLabel(object sender, PrintPageEventArgs ev)
{
    Graphics g = ev.Graphics;

    using (Font f = new Font(FontFamily.GenericSansSerif, 6))
    {
       g.DrawString(????????? what to do for barcode????);
    }
}

【问题讨论】:

  • 您的barcode data 看起来如何? (它的表示)

标签: c# winforms printing barcode


【解决方案1】:

我们使用的是Barcode Rendering Framework

BarcodeDraw bdraw = BarcodeDrawFactory.GetSymbology(BarcodeSymbology.Code128);
Image barcodeImage = bdraw.Draw("barcodetext", barcodeImageHeight);
g.DrawImage(barcodeImage, barcodeRect);

【讨论】:

    【解决方案2】:
    void printDoc()
    {
    
        PrintDocument document = new PrintDocument();
        BarcodeDraw bdraw = BarcodeDrawFactory.GetSymbology(BarcodeSymbology.Code128);
        Image barcodeImage = bdraw.Draw("PO7120172733039800", 50);
    
        document.PrintPage += delegate(object sender, PrintPageEventArgs e)
        {
            e.Graphics.DrawImage(barcodeImage, 0, 0);
            e.Graphics.DrawString("PO7120172733039800", new Font("arial", 8), new SolidBrush(Color.Black),0,50);
        };
        document.Print();
    }
    

    【讨论】:

      【解决方案3】:

      我使用了 Infragistics UltraCode128Barcode1 条形码,它对我有用

        Private Sub btnprintbarcodes_Click(sender As Object, e As EventArgs) Handles btnprintbarcodes.Click
      
              PrintDocument1.Print()
          End Sub
      
         Private Sub PrintDocument1_PrintPage(sender As Object, e As PrintPageEventArgs) Handles PrintDocument1.PrintPage
              e.PageSettings.PrinterSettings.PrinterName = ApplicationHelper.GetApplicationSettingValue("Barcode_Printer_Name")
              Dim barcodeImageFile As String = String.Empty
              If UltraCode128Barcode1.Data IsNot Nothing Then
                  barcodeImageFile = String.Concat(Path.GetTempPath(), Guid.NewGuid(), ".tiff")
                  UltraCode128Barcode1.SaveTo(barcodeImageFile, ImageFormat.Tiff)
                  Dim barcodeimage = Image.FromFile(barcodeImageFile)
                  e.Graphics.DrawImage(barcodeimage, 0, 0)
                  e.Graphics.DrawString(UltraCode128Barcode1.Data, New Font("arial", 8), New SolidBrush(Color.Black), 0, 50)
              End If
              If (File.Exists(barcodeImageFile)) Then
                  'File.Delete(barcodeImageFile)
              End If
          End Sub
      
        Private Sub PrintDocument1_BeginPrint(sender As Object, e As PrintEventArgs) Handles PrintDocument1.BeginPrint
              ApplicationHelper.ShowGeneralDialog("The Program is about to print barcode(s).Make sure your barcode printer is on and loaded")
          End Sub
      

      【讨论】:

        猜你喜欢
        • 2012-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-13
        • 2010-09-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多