2016-04-05 24 views
0

İyi günler! Uygulamamda zebra yazıcıyla tek tıklamayla baskı yapmaya çalışıyordum. Farklı bir yazıcıyla yazdırırsam png dosyamı düzgün yazdırır. Ancak, Zebra'da düzgün yazdırmaz.Zebra print, istediğim çıktıyı yazdıramıyor

İşte kodum.

PrintDocument pd = new PrintDocument(); 
pd.DefaultPageSettings.PrinterSettings.PrinterName = GetDefaultPrinter(); 
pd.DefaultPageSettings.Landscape = true; //or false! 
pd.PrintPage += (aw, args) => 
{ 

    Image i = Image.FromFile(@"C:\Coke\pres10.png"); 
    Rectangle m = args.MarginBounds; 

    if ((double)i.Width/(double)i.Height > (double)m.Width/(double)m.Height) // image is wider 
    { 
     m.Height = (int)((double)i.Height/(double)i.Width * (double)m.Width); 
    } 
    else 
    { 
     m.Width = (int)((double)i.Width/(double)i.Height * (double)m.Height); 
    } 
    m.Width = m.Width; 
    m.Height = m.Height; 
    args.Graphics.DrawImage(i,m); 
}; 
pd.Print(); 

Resim: enter image description here

cevap

0

denemek ve bunu yapabilir. Bunun işe yarayıp yaramadığından emin değilim.

Adım 1: Orijinal görüntünün en boy oranını hesaplayın. En boy oranı, Yükseklik ve genişlik oranıdır. Bu calculator'u hesaplamalar için kullanabilirsiniz. Orijinal görüntü ve son görüntü için hesapladığınızdan emin olun.

Adım 2: En/boy oranında bir sapma olup olmadığını kontrol edin. Eğer evetse, ekran için mükemmel en boy oranını aldığınızdan emin olun.

+0

Görüntü oranını nasıl uygularım? – codesofdave

+0

orijinal yüksekliğini/orijinal genişliğini böldüğünüzde bir faktör olacaktır ... bu faktörü çarpın ... size bunun için bir örnek vereyim – Apoorv

+0

Tamam, lütfen. Çok teşekkür ederim! – codesofdave