C# 打印条形码不是';t清除(WPF)
我需要在我的应用程序中使用条形码打印模块,但无法确定如何正确打印条形码。看起来它的分辨率太低了。 我正在使用。正如随附的照片所示,顶部条形码由打印机软件打印,证明打印机正常,底部图片由我的代码打印: [WPF]C# 打印条形码不是';t清除(WPF),c#,wpf,C#,Wpf,我需要在我的应用程序中使用条形码打印模块,但无法确定如何正确打印条形码。看起来它的分辨率太低了。 我正在使用。正如随附的照片所示,顶部条形码由打印机软件打印,证明打印机正常,底部图片由我的代码打印: [WPF] 根据Don的建议,我使用了条形码字体,更容易和高质量的打印! 我正在使用您是否在任何地方设置了SnapToDevicePixels?没有区别。我在图像上使用它,也在网格上尝试过。您是否尝试过将条形码的实际大小传递给CreateBitmapSourceFromHBitmap,而不是Int3
根据Don的建议,我使用了条形码字体,更容易和高质量的打印!
我正在使用您是否在任何地方设置了
SnapToDevicePixels
?没有区别。我在图像上使用它,也在网格上尝试过。您是否尝试过将条形码的实际大小传递给CreateBitmapSourceFromHBitmap
,而不是Int32Rect.Empty
?尝试设置和/或对照图像
。在这种情况下,您可能希望禁用抗锯齿功能,而不是使用Zen条形码,请尝试仅使用条形码字体。你可以将文字以非常高的分辨率“写入”到图像上,并使其以你想要的任何大小清晰可见。你是如何解决这个问题的?你能分享一下吗!现在我有麻烦了。我正在做:e.Graphics.DrawString(“25个字符”,字体,画笔,0,0)
但结果和你们的一样。任何条形码扫描仪都无法扫描。只需使用该字体,但请记住将代码放在*之间,它就会工作。我已经使用了它。它打印良好,但不可扫描:(.最大字符数为28,热敏打印机分辨率为203 DPI。
<Grid x:Name="_printSerialBcode" Margin="9" Visibility="Visible">
<Image x:Name="serial_bcode1" Height="20" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="2"/>
</Grid>
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);
}