2016-01-05 20 views
5

Ho bisogno del modulo di stampa con codice a barre nella mia app ma non riesco a capire come stampare correttamente i codici a barre. Sembra che la risoluzione sia troppo bassa. Sto usando Zen Barcode. Come si può vedere da foto allegata, superiore del codice a barre è stampato dal software della stampante, dimostrando stampante è ok, foto in basso viene stampato dal mio codice:Codice a barre stampato non chiaro (WPF)

[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); 
    } 

Test barcodes

+0

Stai impostando 'SnapToDevicePixels' ovunque? –

+0

nessuna differenza. lo uso su Image, anche provato sulla griglia – arti

+0

Hai provato a passare la dimensione effettiva del codice a barre in 'CreateBitmapSourceFromHBitmap' invece di' Int32Rect.Empty'? –

risposta

0

come raccomandato da Don, ho usato Barcode Font, molto più facile e stampa di alta qualità! Sto usando IDAutomation

Problemi correlati