PrintDocument A3

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    PrintDocument A3

    Hallo zusammen,

    ich verzweifel gerade an einem PrintDocument welches ich in A3 ausgeben möchte.

    Folgender Code soll das Ganze ausgeben:

    VB.NET-Quellcode

    1. Dim frm As New PrintDialog
    2. With frm
    3. ' Der Druckvorschau das Dokument zuweisen.
    4. .Document = _pd
    5. .Document.DocumentName = "Vorhaben: " & _p.Name
    6. .Document.DefaultPageSettings.Margins = New _
    7. System.Drawing.Printing.Margins(78, 78, 100, 78)
    8. .Document.DefaultPageSettings.Landscape = True
    9. .Document.DefaultPageSettings.PaperSize = New _
    10. System.Drawing.Printing.PaperSize("A3", 1169, 1654)
    11. .Document.DefaultPageSettings.PrinterSettings.DefaultPageSettings.P_
    12. aperSize = New System.Drawing.Printing.PaperSize("A3", 1169, 1654)
    13. .Document.PrinterSettings.DefaultPageSettings.PaperSize.RawKind = _
    14. Printing.PaperKind.A3
    15. .PrinterSettings.DefaultPageSettings.PaperSize.RawKind = _
    16. System.Drawing.Printing.PaperKind.A3
    17. If .ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
    18. .Document.DefaultPageSettings.PrinterSettings.PrinterName = _
    19. .Document.PrinterSettings.PrinterName
    20. .Document.Print()
    21. End If
    22. End With
    23. frm = Nothing

    Er druckt auch auf A3, allerdings vergrößert auf 141%. Ich bekommen also nur einen Teil des Inhaltes , und den vergrößert, ausgedruckt.

    Was mache ich hier falsch? Wenn ich als Drucker PDF wähle wird das Dokument richtig auf A3 ausgegeben.

    Viele Grüße

    Thomas
    Willkommen im Forum. :thumbup:

    tom-kuehn schrieb:

    Er druckt auch auf A3, allerdings vergrößert auf 141%
    Dann musst Du Dir mal die Print-Routine zu Gemüte führen.
    Gib Deiner Printroutine die Einheit Millimeter und male mal ein Rechteck oder einen Kreis auf das Papier:

    VB.NET-Quellcode

    1. e.Graphics.PageUnit = GraphicsUnit.Millimeter
    Setze in die Printroutine einen Haltepunkt und sieh Dir an, was an Werten und Einheiten ankommt, gugst Du hier.
    Nutze auch den PrintPreviewDialog, gugst Du hier.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!