vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Allgemeiner Fehler in GDI+ (MeasureString / Windows 10) 
Autor: Bringtnix
Datum: 07.05.16 11:10

Hallo,

beim Drucken aus meiner Anwendung unter Windows 10 kommt es zu folgendem Fehler:

Allgemeiner Fehler in GDI+.
bei System.Drawing.Graphics.MeasureString(String text, Font font, SizeF layoutArea, StringFormat stringFormat, Int32& charactersFitted, Int32& linesFilled)
bei WindowsApplication1.Form1.pdoc_PrintPage(Object sender, PrintPageEventArgs e)

Unter Windows XP und 7 funktioniert das problemlos. Hat jemand eine Idee woran das liegt?

Hier der Code:
Imports System.Drawing.Printing
Public Class Form1
    Friend PrintDocument1 As New PrintDocument
    Friend PrintPreviewDialog1 As New PrintPreviewDialog
 
    Public Sub New()
 
        ' Dieser Aufruf ist für den Designer erforderlich.
        InitializeComponent()
 
        ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf 
        ' hinzu.
        AddHandler PrintDocument1.PrintPage, AddressOf pdoc_PrintPage
 
    End Sub
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) _
      Handles MyBase.Load
        SeitenEinrichtungLaden()
    End Sub
    Private Sub SeitenEinrichtungLaden()
 
        PrintDocument1.DefaultPageSettings.PaperSize.Height = CInt(210 / 0.254)
        PrintDocument1.DefaultPageSettings.PaperSize.Width = CInt(297 / 0.254)
 
 
        PrintDocument1.DefaultPageSettings.Margins.Left = CInt(18 / 0.254)
        PrintDocument1.DefaultPageSettings.Margins.Top = CInt(18 / 0.254)
        PrintDocument1.DefaultPageSettings.Margins.Right = CInt(18 / 0.254)
        PrintDocument1.DefaultPageSettings.Margins.Bottom = CInt(18 / 0.254)
        PrintDocument1.DefaultPageSettings.Landscape = True
 
    End Sub
    Private Sub cmdVorschau_Click(sender As System.Object, e As _
      System.EventArgs) Handles cmdVorschau.Click
        PrintPreviewDialog1.Document = PrintDocument1
        PrintPreviewDialog1.WindowState = FormWindowState.Maximized
        PrintPreviewDialog1.ShowDialog()
    End Sub
    Private Sub pdoc_PrintPage(ByVal sender As Object, ByVal e As _
      System.Drawing.Printing.PrintPageEventArgs) 'Handler wird in New erstellt
 
        Try
            Dim intPrintAreaHeight, intPrintAreaWidth, marginLeft, marginTop, _
              intCharsFitted, intLinesFilled As Int32
            With PrintDocument1.DefaultPageSettings
                ' Lokale Variablen initialisieren, die die Begrenzungen des 
                ' Druckbereichrechtecks enthalten.
                intPrintAreaHeight = .PaperSize.Height - .Margins.Top - _
                  .Margins.Bottom
                intPrintAreaWidth = .PaperSize.Width - .Margins.Left - _
                .Margins.Right
 
                ' Lokale Variablen initialisieren, die die Randwerte enthalten, 
                ' die als X- und Y-Koordinaten für die oberen linke Ecke des 
                ' Druckbereichrechtecks verwendet werden.
                marginLeft = .Margins.Left ' X-Koordinate
                marginTop = .Margins.Top ' Y-Koordinate
            End With
            Dim rectPrintingArea As New RectangleF(marginLeft, marginTop, _
              intPrintAreaWidth, intPrintAreaHeight)
 
            Dim fntBody As New Font("Arial", 10, FontStyle.Regular)
            Dim fmt As New StringFormat(StringFormatFlags.LineLimit)
            Dim strDruck As New String(ChrW(65), 40000)
 
            ' "MeasureString" aufrufen, um die Anzahl von Zeichen zu ermitteln, 
            ' die das Druckbereichrechteck aufnehmen kann. 
            e.Graphics.MeasureString(strDruck, fntBody, New SizeF( _
              intPrintAreaWidth, intPrintAreaHeight), fmt, intCharsFitted, _
              intLinesFilled)
 
            MsgBox(intCharsFitted.ToString & " - " & intLinesFilled.ToString)
 
 
            ' Text an die Seite ausgeben.
            e.Graphics.DrawString(strDruck.Substring(0, intCharsFitted), _
              fntBody, Brushes.Black, rectPrintingArea, fmt)
 
 
            e.HasMorePages = False
 
        Catch ex As Exception
            Dim st = New StackTrace(ex, True) : MsgBox(ex.Message & vbCrLf & _
              st.ToString)
        End Try
    End Sub
End Class
Danke schon mal für die Hilfe!


Carsten

------------
Alle Menschen sind klug. Die einen vorher, die anderen nachher. (Voltaire)

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Allgemeiner Fehler in GDI+ (MeasureString / Windows 10)2.711Bringtnix07.05.16 11:10
Re: Allgemeiner Fehler in GDI+ (MeasureString / Windows 10)1.545Manfred X07.05.16 14:05
Re: Allgemeiner Fehler in GDI+ (MeasureString / Windows 10)1.548Bringtnix07.05.16 15:25
Re: Allgemeiner Fehler in GDI+ (MeasureString / Windows 10)1.622Manfred X07.05.16 15:44
Re: Allgemeiner Fehler in GDI+ (MeasureString / Windows 10)1.590Bringtnix07.05.16 18:06
Re: Allgemeiner Fehler in GDI+ (MeasureString / Windows 10)1.664Manfred X07.05.16 18:34
Re: Allgemeiner Fehler in GDI+ (MeasureString / Windows 10)1.545Bringtnix29.05.16 16:21

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel