Hello.
I have a strange problem, I'm writing small application in. vb.net which should print out a simple form. On my printer OKI B4350 and HP 4200n the print out looks good, but on HP 2015 the print out is bad, really bad. The fonts are different, the graphic
elements are out of margins. Can anybody tells me how to adjust my code to prints out looks good on every printer?
Here is my code.
Best Regards.
I have a strange problem, I'm writing small application in. vb.net which should print out a simple form. On my printer OKI B4350 and HP 4200n the print out looks good, but on HP 2015 the print out is bad, really bad. The fonts are different, the graphic
elements are out of margins. Can anybody tells me how to adjust my code to prints out looks good on every printer?
Here is my code.
Imports System.Drawing
Imports System.Drawing.Printing
Public Class Form1
Private Sub btnDrukuj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDrukuj.Click
'-----USTAWIENIE MARGINESÓW NA 5MM-----
PageSetupDialog1.Document = printDokument
PageSetupDialog1.Document.DefaultPageSettings.Marg ins.Left = cm(0.5)
PageSetupDialog1.Document.DefaultPageSettings.Marg ins.Right = cm(0.5)
PageSetupDialog1.Document.DefaultPageSettings.Marg ins.Top = cm(0.5)
PageSetupDialog1.Document.DefaultPageSettings.Marg ins.Bottom = cm(0.5)
PageSetupDialog1.Document.OriginAtMargins = True
podgladDokumentu.Width = Screen.PrimaryScreen.Bounds.Width
podgladDokumentu.Height = Screen.PrimaryScreen.Bounds.Height
podgladDokumentu.PrintPreviewControl.Zoom = 2.0
podgladDokumentu.ShowDialog()
End Sub
Private Sub printDokument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles printDokument.PrintPage
Dim grX1, grY1, grSzerokosc, grWysokosc, drX1, drY1, drSzerokosc, drWysokosc As Single
Dim grOlowek As New Pen(Brushes.Black, 3)
Dim grOlowekKropki As New Pen(Brushes.Black, 1)
Dim czcionkaInna As New Font("Courier", 8)
Dim czcionka As New Font("Times", 8)
Dim czcionkaIndex As New Font("Times", 5)
Dim czcionkaOpis As New Font("Times", 7)
Dim czionkaPogrubionaZwykla As New Font("Times", 8, FontStyle.Bold)
Dim czionkaPogrubionaNaglowek As New Font("Times", 12, FontStyle.Bold)
Dim czcionkaZwyklaNaglowek As New Font("Times", 12)
'-----RYSOWANIE GÓRNEJ RAMKI-----
grX1 = 0 'printDokument.DefaultPageSettings.Margins.Left
grY1 = 0 'printDokument.DefaultPageSettings.Margins.Top
grSzerokosc = e.MarginBounds.Size.Width
grWysokosc = cm(11.5)
'e.Graphics.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
e.Graphics.FillRectangle(Brushes.LightGray, grX1 + grSzerokosc / 3, grY1, grSzerokosc / 3, cm(1.5)) 'WYPEŁNIENIE W2
e.Graphics.DrawRectangle(Pens.Black, grX1 + grSzerokosc / 3, grY1, grSzerokosc / 3, cm(1.5)) 'PROSTOKĄT W2
e.Graphics.DrawRectangle(grOlowek, grX1, grY1, grSzerokosc, grWysokosc) 'RAMKA GÓRNA
e.Graphics.DrawLine(grOlowek, grX1, cm(1.5), grSzerokosc, cm(1.5)) 'LINIA NAGŁÓWKA 1 OD GÓRY
e.Graphics.DrawLine(Pens.Black, grX1, grY1 + cm(3), grX1 + grSzerokosc, grY1 + cm(3)) 'LINIA 2 OD GÓRY
e.Graphics.DrawLine(Pens.Black, grX1, grY1 + cm(4.5), grX1 + grSzerokosc, grY1 + cm(4.5)) 'LINIA 3 OD GÓRY
e.Graphics.DrawLine(Pens.Black, grX1, grY1 + cm(9.5), grX1 + grSzerokosc, grY1 + cm(9.5)) 'LINIA 4 OD GÓRY
e.Graphics.DrawLine(Pens.Black, grX1, grY1 + cm(10.5), grX1 + grSzerokosc / 2, grY1 + cm(10.5)) 'LINIA 5 OD GÓRY
e.Graphics.DrawLine(Pens.Black, grX1 + grSzerokosc / 2, grY1 + cm(1.5), grX1 + grSzerokosc / 2, grY1 + grWysokosc) '-----LINIA PIONOWA
e.Graphics.DrawLine(Pens.Black, grX1 + grSzerokosc / 2, grY1 + cm(6), grX1 + grSzerokosc, grY1 + cm(6)) 'LINIA 6 OD GÓRY
e.Graphics.DrawLine(Pens.Black, grX1 + grSzerokosc / 2, grY1 + cm(7.5), grX1 + grSzerokosc, grY1 + cm(7.5)) 'LINIA 7 OD GÓRY
'-----WYPEŁNIENIE W1-----
grOlowekKropki.DashStyle = Drawing2D.DashStyle.Dot
e.Graphics.DrawLine(grOlowekKropki, grX1 + cm(0.6), grY1 + cm(0.6), grX1 + (grSzerokosc / 3) - cm(0.6), grY1 + cm(0.6))
e.Graphics.DrawString("/", czcionkaInna, Brushes.Black, grX1 + cm(4), grY1 + cm(0.3))
e.Graphics.DrawString("Numer i data wystawienia faktury / listu " & vbCrLf & "przewozowego", czcionka, Brushes.Black, grX1 + cm(1), grY1 + cm(0.7))
e.Graphics.DrawString("1)", czcionkaIndex, Brushes.Black, grX1 + cm(2.7), grY1 + cm(1))
'-----WYPEŁNIENIE W2-----
e.Graphics.DrawString("DOKUMENT DOSTAWY", czionkaPogrubionaNaglowek, Brushes.Black, (grX1 + grSzerokosc / 3) + cm(1), grY1 + cm(0.3))
e.Graphics.DrawString("wyrobów węglowych", czcionkaZwyklaNaglowek, Brushes.Black, (grX1 + grSzerokosc / 3) + cm(1.5), grY1 + cm(0.7))
'-----WYPEŁNIENIE W3-----
e.Graphics.DrawString("NR", czionkaPogrubionaNaglowek, Brushes.Black, grX1 + cm(13.5), grY1 + cm(0.2))
e.Graphics.DrawString("/No/", czcionkaZwyklaNaglowek, Brushes.Black, grX1 + cm(14.5), grY1 + cm(0.2))
e.Graphics.DrawString("8", czcionkaZwyklaNaglowek, Brushes.Black, grX1 + cm(13.5), grY1 + cm(0.8))
e.Graphics.DrawRectangle(Pens.Black, grX1 + cm(13.8), grY1 + cm(0.8), cm(0.3), cm(0.4))
e.Graphics.DrawRectangle(Pens.Black, grX1 + cm(14.2), grY1 + cm(0.8), cm(0.3), cm(0.4))
e.Graphics.DrawRectangle(Pens.Black, grX1 + cm(14.6), grY1 + cm(0.8), cm(0.3), cm(0.4))
e.Graphics.DrawString("/", czcionkaZwyklaNaglowek, Brushes.Black, grX1 + cm(14.95), grY1 + cm(0.8))
e.Graphics.DrawRectangle(Pens.Black, grX1 + cm(15.2), grY1 + cm(0.8), cm(0.3), cm(0.4))
e.Graphics.DrawRectangle(Pens.Black, grX1 + cm(15.6), grY1 + cm(0.8), cm(0.3), cm(0.4))
e.Graphics.DrawRectangle(Pens.Black, grX1 + cm(16), grY1 + cm(0.8), cm(0.3), cm(0.4))
e.Graphics.DrawRectangle(Pens.Black, grX1 + cm(16.4), grY1 + cm(0.8), cm(0.3), cm(0.4))
e.Graphics.DrawRectangle(Pens.Black, grX1 + cm(16.8), grY1 + cm(0.8), cm(0.3), cm(0.4))
e.Graphics.DrawRectangle(Pens.Black, grX1 + cm(17.1), grY1 + cm(0.8), cm(0.3), cm(0.4))
e.Graphics.DrawString("/", czcionkaZwyklaNaglowek, Brushes.Black, grX1 + cm(17.45), grY1 + cm(0.8))
e.Graphics.DrawRectangle(Pens.Black, grX1 + cm(17.7), grY1 + cm(0.8), cm(0.3), cm(0.4))
e.Graphics.DrawRectangle(Pens.Black, grX1 + cm(18.1), grY1 + cm(0.8), cm(0.3), cm(0.4))
'-----WYPEŁNIENIE W4-----
e.Graphics.DrawString("1.) Nazwa/nazwisko i imię podmiotu, który wystawił dokument dostawy :", czcionkaOpis, Brushes.Black, grX1 + cm(0.1), grY1 + cm(1.6))
e.Graphics.DrawString("2)", czcionkaIndex, Brushes.Black, grX1 + cm(7.3), grY1 + cm(1.53))
e.Graphics.DrawString("2.) Adres siedziby/miejsca zamieszkania ww. podmiotu:", czcionkaOpis, Brushes.Black, grX1 + cm(0.1), grY1 + cm(2.28))
'-----WYPEŁNIENIE W5-----
e.Graphics.DrawString("3.) Nazwa/nazwisko i imię podmiotu, który wydaje do przemieszczenia wyroby węglowe :", czcionkaOpis, Brushes.Black, grX1 + cm(0.1), grY1 + cm(3.1))
e.Graphics.DrawString("3)", czcionkaIndex, Brushes.Black, grX1 + cm(9), grY1 + cm(3))
e.Graphics.DrawString("4.) Adres siedziby/miejsca zamieszkania ww. podmiotu :", czcionkaOpis, Brushes.Black, grX1 + cm(0.1), grY1 + cm(3.78))
'-----WYPEŁNIENIE W6-----
e.Graphics.DrawString("5.) Adres miejsca wydania do przemieszczenia wyrobów węglowych :", czcionkaOpis, Brushes.Black, grX1 + cm(0.1), grY1 + cm(4.6))
e.Graphics.DrawString("6.) Data rozpoczęcia przemieszczenia wyrobów węglowych :", czcionkaOpis, Brushes.Black, grX1 + cm(0.1), grY1 + cm(8.7))
e.Graphics.DrawString("8)", czcionkaIndex, Brushes.Black, grX1 + cm(6.02), grY1 + cm(8.62))
e.Graphics.DrawLine(grOlowekKropki, grX1 + cm(0.2), grY1 + cm(9.4), grX1 + (grSzerokosc / 2) - cm(0.2), grY1 + cm(9.4))
'-----WYPEŁNIENIE W7-----
e.Graphics.DrawString("7.) Data i podpis podmiotu, który wystawił dokument dostawy, lub osoby" & _
vbCrLf & "reprezentującej ten podmiot:", czcionkaOpis, Brushes.Black, grX1 + cm(0.1), grY1 + cm(9.5))
e.Graphics.DrawLine(grOlowekKropki, grX1 + cm(0.2), grY1 + cm(10.4), grX1 + (grSzerokosc / 2) - cm(0.2), grY1 + cm(10.4))
'-----WYPEŁNIENIE W8-----
e.Graphics.DrawString("8.) Data i podpis podmiotu, który wydał wyroby węglowe do" & _
vbCrLf & "przemieszczenia, lub osoby reprezentującej ten podmiot:", czcionkaOpis, Brushes.Black, grX1 + cm(0.1), grY1 + cm(10.5))
e.Graphics.DrawLine(grOlowekKropki, grX1 + cm(0.2), grY1 + cm(11.4), grX1 + (grSzerokosc / 2) - cm(0.2), grY1 + cm(11.4))
'-----WYPEŁNIENIE W9-----
e.Graphics.DrawString("9.) Podmiot odbierający/zwracający wyroby węglowe :", czcionkaOpis, Brushes.Black, grX1 + (grSzerokosc / 2) + cm(0.1), grY1 + cm(1.6))
e.Graphics.DrawString("4)", czcionkaIndex, Brushes.Black, grX1 + (grSzerokosc / 2) + cm(5.45), grY1 + cm(1.53))
e.Graphics.DrawLine(grOlowekKropki, grX1 + (grSzerokosc / 2) + cm(0.2), grY1 + cm(2.9), grX1 + (grSzerokosc - cm(0.2)), grY1 + cm(2.9))
'-----WYPEŁNIENIE W10-----
e.Graphics.DrawString("10.) Adres siedziby/miejsca zamieszkania ww. podmiotu:", czcionkaOpis, Brushes.Black, grX1 + (grSzerokosc / 2) + cm(0.1), grY1 + cm(3.1))
e.Graphics.DrawLine(grOlowekKropki, grX1 + (grSzerokosc / 2) + cm(0.2), grY1 + cm(4.4), grX1 + (grSzerokosc - cm(0.2)), grY1 + cm(4.4))
'-----WYPEŁNIENIE W11-----
e.Graphics.DrawString("11.) Adres miejsca odbioru wyrobów węglowych :", czcionkaOpis, Brushes.Black, grX1 + (grSzerokosc / 2) + cm(0.1), grY1 + cm(4.6))
e.Graphics.DrawString("5)", czcionkaIndex, Brushes.Black, grX1 + (grSzerokosc / 2) + cm(5.03), grY1 + cm(4.53))
e.Graphics.DrawLine(grOlowekKropki, grX1 + (grSzerokosc / 2) + cm(0.2), grY1 + cm(5.9), grX1 + (grSzerokosc - cm(0.2)), grY1 + cm(5.9))
End Sub
Function cm(ByVal centymetry As Single) As Single
Dim cale As Single
cale = centymetry * 39.37
Return cale
End Function
End Class
Best Regards.