Hallo,
Versuche mich gerade am "Drucken" eines Beleges ... wollte eigentlich mit Report Designer, aber da dies nicht ganz so gut klappt wg. Kopf- & Fußzeile, möchte ich die Ausgaben selbst per Code schreiben.
Nun bin ich auf ein Problem gestoßen, wo ich nicht weiß, wie ich ansetzen soll/muss... und bitte euch um Erklärung, warum das so ist.
Je nach dem wie ich die Ausgabe mache, erhalte ich entweder ein klares Schriftbild oder stark verpixelt.
So mein Versuch (Verpixelt):
und so bekomme ich ein klares Schriftbld:
Das Ziel ist, dass ich so einen Beleg drucken kann aber auch in einer Picturebox anzeigen lassen kann... So der Gedanke...
Aber ich verstehe nicht warum das so verpixelt ist.
Wenn mir das einer erklären könnte, wäre ich echt dankbar !
Viele Grüß M
Versuche mich gerade am "Drucken" eines Beleges ... wollte eigentlich mit Report Designer, aber da dies nicht ganz so gut klappt wg. Kopf- & Fußzeile, möchte ich die Ausgaben selbst per Code schreiben.
Nun bin ich auf ein Problem gestoßen, wo ich nicht weiß, wie ich ansetzen soll/muss... und bitte euch um Erklärung, warum das so ist.
Je nach dem wie ich die Ausgabe mache, erhalte ich entweder ein klares Schriftbild oder stark verpixelt.
So mein Versuch (Verpixelt):
VB.NET-Quellcode
- Private Sub Drucken_Drawing(ByVal _void As Integer) ', e As Printing.PrintPageEventArgs)
- Try
- A4 = New Bitmap(2480, 3508) ' = DIN A4 bei 300dpi ' (CInt((210 / mmpi * dpi)), CInt((297 / mmpi * dpi)))
- ' Drawing aktivieren ******************************************************************
- Dim g As Graphics = Graphics.FromImage(A4)
- 'Dim g As Graphics = e.Graphics
- ' Rechtsbündig ausrichten *************************************************************
- Dim sf As New StringFormat()
- sf.Alignment = StringAlignment.Far
- ' Anzahl der Seiten berechnen *********************************************************
- 'Dim AnzahlSeiten As Integer
- 'AnzahlSeiten = ((Arr_Positionen.Count - 1) / LineSeite)
- ' Anzahl der Datensätze / Zeilen berechnen ********************************************
- 'Dim AnzahlDatensaetze As Integer
- 'AnzahlDatensaetze = (Arr_Positionen.Count - 1)
- g.DrawString("Jahresübersicht", FA14b, C01, RL, 50)
- g.DrawString("nach Jahr, Rechnung, Artikel - Umsatz u. Provision", FA10n, C01, RL, 70)
- g.DrawString("Abrechnungszeitraum: 01.01.2024" & " bis 31.12.20204", FN10b, C01, RL, 110)
- PictureBox1.Image = A4
- Catch ex As Exception
- MessageBox.Show(ex.Message & vbCrLf & ex.StackTrace, "FEHLER Vorgangsverarbeitung", MessageBoxButtons.OK, MessageBoxIcon.Error)
- End Try
- End Sub
- Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
- Dim gr As Graphics = e.Graphics
- ' Rechteck für den Ausdruck festlegen
- ' Position + Originalgröße
- Dim p As New Point(0, 0)
- Dim r As New Rectangle(0, 0, A4.Width, A4.Height)
- ' Bild drucken im angegebenen Rechteck drucken
- gr.DrawImage(A4, r)
- gr.Dispose()
- End Sub
und so bekomme ich ein klares Schriftbld:
VB.NET-Quellcode
- Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
- Try
- ' Drawing aktivieren ******************************************************************
- Dim g As Graphics = e.Graphics
- ' Rechtsbündig ausrichten *************************************************************
- Dim sf As New StringFormat()
- sf.Alignment = StringAlignment.Far
- ' Anzahl der Seiten berechnen *********************************************************
- 'Dim AnzahlSeiten As Integer
- 'AnzahlSeiten = ((Arr_Positionen.Count - 1) / LineSeite)
- ' Anzahl der Datensätze / Zeilen berechnen ********************************************
- 'Dim AnzahlDatensaetze As Integer
- 'AnzahlDatensaetze = (Arr_Positionen.Count - 1)
- g.DrawString("Jahresübersicht", FA14b, C01, RL, 50)
- g.DrawString("nach Jahr, Rechnung, Artikel - Umsatz u. Provision", FA10n, C01, RL, 70)
- g.DrawString("Abrechnungszeitraum: 01.01.2024" & " bis 31.12.20204", FN10b, C01, RL, 110)
- Catch ex As Exception
- MessageBox.Show(ex.Message & vbCrLf & ex.StackTrace, "FEHLER Vorgangsverarbeitung", MessageBoxButtons.OK, MessageBoxIcon.Error)
- End Try
- End Sub
-
Das Ziel ist, dass ich so einen Beleg drucken kann aber auch in einer Picturebox anzeigen lassen kann... So der Gedanke...
Aber ich verstehe nicht warum das so verpixelt ist.
Wenn mir das einer erklären könnte, wäre ich echt dankbar !
Viele Grüß M