我需要在我的应用程序中添加条形码打印模块,但是无法正确地打印条形码。看起来它的分辨率太低了。
我正在使用Zen Barcode。如您所见,附加的照片中,顶部的条形码是从打印机软件中打印出来的,证明打印机没有问题,底部的图片是从我的代码中打印出来的:
[C#]
[WPF]
<Grid x:Name="_printSerialBcode" Margin="9" Visibility="Visible">
<Image x:Name="serial_bcode1" Height="20" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="2"/>
</Grid>
[C#]
private void printJob()
{
// use printer we need
SetDefaultPrinter("Brother QL-700");
//draw barcodes
BarcodeDraw bc = BarcodeDrawFactory.Code128WithChecksum;
Bitmap serial_bitmap = (Bitmap)bc.Draw(serial, 20);
ImageConverter ic = new ImageConverter();
//generate bitmap
serial_bcode1.Source = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(serial_bitmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
var dlg = new PrintDialog();
//print main label
dlg.PrintTicket.CopyCount = 1; // number of copies
dlg.PrintTicket.PageOrientation = PageOrientation.Landscape;
dlg.PrintVisual(_printSerialBcode, "Barcode");
//change default printer to original one
SetDefaultPrinter(defaultPrinter);
}
SnapToDevicePixels
? - Bradley UffnerCreateBitmapSourceFromHBitmap
而不是Int32Rect.Empty
吗? - Bradley Uffner<Image RenderOptions.BitmapScalingMode="LowQuality"/>
上设置BitmapScalingMode
和/或EdgeMode
。在这种情况下,您可能希望禁用抗锯齿。 - dkozl