vb.net 2010 PrintDocument页边距不工作,即使我设置了页边距

vb.net 2010 PrintDocument页边距不工作,即使我设置了页边距,vb.net,printing,margins,printdocument,Vb.net,Printing,Margins,Printdocument,我正在读取文本文件,然后通过vb.net 2010使用printdocument打印字符串 这是我的密码: Public Class myPrinter Friend TextToBePrinted As String Public Sub prt(ByVal text As String) Dim psize As New System.Drawing.Printing.PaperSize("Custom Paper Size", 850, 550)

我正在读取文本文件,然后通过vb.net 2010使用printdocument打印字符串

这是我的密码:

Public Class myPrinter
    Friend TextToBePrinted As String
    Public Sub prt(ByVal text As String)
        Dim psize As New System.Drawing.Printing.PaperSize("Custom Paper Size", 850, 550)
        Dim newMargins As New System.Drawing.Printing.Margins(0, 0, 0, 0)
        TextToBePrinted = text
        Dim prn As New Printing.PrintDocument
        Using (prn)
            prn.PrinterSettings.PrinterName = frmStockOut.printer
            prn.PrinterSettings.Copies = frmStockOut.copies

            prn.PrinterSettings.DefaultPageSettings.PaperSize = psize
            prn.PrinterSettings.DefaultPageSettings.Margins = newMargins
            prn.DefaultPageSettings.PaperSize = psize
            prn.DefaultPageSettings.Margins = newMargins

            AddHandler prn.PrintPage, _
               AddressOf Me.PrintPageHandler
            prn.Print()
            RemoveHandler prn.PrintPage, _
               AddressOf Me.PrintPageHandler
        End Using
    End Sub

    Private Sub PrintPageHandler(ByVal sender As Object, _
       ByVal args As Printing.PrintPageEventArgs)
        Dim myFont As New Font("Courier New", 11)
        args.Graphics.DrawString(TextToBePrinted, _
           New Font(myFont, FontStyle.Regular), _
           Brushes.Black, 50, 50)
    End Sub
End Class


    Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
        Dim charactersOnPage As Integer = 0
        Dim linesPerPage As Integer = 0

        ' Sets the value of charactersOnPage to the number of characters  
        ' of stringToPrint that will fit within the bounds of the page.
        e.Graphics.MeasureString(stringToPrint, Me.Font, e.MarginBounds.Size, _
            StringFormat.GenericTypographic, charactersOnPage, linesPerPage)

        ' Draws the string within the bounds of the page
        e.Graphics.DrawString(stringToPrint, Me.Font, Brushes.Black, _
            e.MarginBounds, StringFormat.GenericTypographic)

        ' Remove the portion of the string that has been printed.
        stringToPrint = stringToPrint.Substring(charactersOnPage)

        ' Check to see if more pages are to be printed.
        e.HasMorePages = stringToPrint.Length > 0
    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ReadFile() ' will read text file and store in a string

        Dim Print As New myPrinter
        Dim myprintdialog As New PrintDialog
        With myprintdialog
            If .ShowDialog = Windows.Forms.DialogResult.OK Then
                printer = .PrinterSettings.PrinterName
                copies = .PrinterSettings.Copies
                Print.prt(stringToPrint)
            End If
        End With

    End Sub
问题是,即使我将左页边距和上页边距设置为0,似乎什么都没有改变,上页边距仍在打印3/4英寸,左页边距打印1英寸。这也是我没有设置边距时的输出。但是,当I prn.originalmargins=True时,输出会略有不同,左侧边距现在几乎为1/2英寸,但顶部边距保持不变。我的代码有问题吗

我想实现的是,上边距可以设置为大约20像素(假设100像素等于1英寸),左边距也可以设置为20像素。希望有人能帮助我