Member 14076569 Ответов: 0

Все данные, не покрытые на бумаге при печати в VB.NET


Я работаю над проектом, написанным на vb.net2012. моя программа печатает, но мой размер бумаги не может содержать все данные, которые должны быть на бумаге. то есть мои данные выходят за пределы области печати. Мой код показан ниже.
Слово "PEN_DUE" не отображается на печатной области бумаги
e.Graphics.DrawString("PEN_DUE.", pdfont, Brushes.Black, HorizontalPrintLocationSingle + 1530, VerticalPrintLocationSingle)

СПАСИБО

Что я уже пробовал:

Private Sub MONTHLYDEDUCTIONSSUMMARYToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles MONTHLYDEDUCTIONSSUMMARYToolStripMenuItem.Click
       Dim printDialog11 As PrintDialog = New PrintDialog
       PrintDocument11.DefaultPageSettings.Landscape = True
       PrintDocument11.DefaultPageSettings.PaperSize = PrintDocument11.PrinterSettings.PaperSizes(5)
       PrintPreviewDialog11.ShowDialog()
       Dim result As DialogResult = PrintDialog11.ShowDialog
       If (result = Windows.Forms.DialogResult.OK) Then
           PrintDocument11.Print()
       End If
   End Sub


Private Sub PrintDocument11_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument11.PrintPage
        Dim strConnection As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=c:\Users\Public\LOCAL GOVERNDATA.mdb;Jet OLEDB:Database Password=council12;"
        Dim cn As OleDb.OleDbConnection = New OleDb.OleDbConnection(strConnection)
        cn.Open()

        Dim HorizontalPrintLocationSingle As Single = e.MarginBounds.Left
        Dim VerticalPrintLocationSingle As Single = e.MarginBounds.Top - 80

        Dim hfont As New Font("Aria", 12, FontStyle.Bold)
        Dim sfont As New Font("Arial", 12, FontStyle.Bold)
        Dim pfont As New Font("Arial", 11, FontStyle.Regular) : Dim pdfont As New Font("Arial", 11, FontStyle.Bold) : Dim afont As New Font("arial", 10, FontStyle.Bold)


        Dim LineHeightSingle As Single = pfont.GetHeight + 2 ' Add two pixels for spacing
        VerticalPrintLocationSingle += LineHeightSingle * 2
        e.Graphics.DrawString("LAGELU  LOCAL /GOVT.,  IYANA OFFA", hfont, Brushes.Black, HorizontalPrintLocationSingle + 400, VerticalPrintLocationSingle)
        VerticalPrintLocationSingle += LineHeightSingle * 2
        e.Graphics.DrawString(" DEDUCTIONS SUMMARY  FOR  THE  MONTH  OF", hfont, Brushes.Black, HorizontalPrintLocationSingle + 300, VerticalPrintLocationSingle)
        e.Graphics.DrawString(Today.ToString("MMM") & "." & "," & " " & Year(Today), hfont, Brushes.Black, HorizontalPrintLocationSingle + 770, VerticalPrintLocationSingle)
        VerticalPrintLocationSingle += LineHeightSingle * 2
        VerticalPrintLocationSingle += LineHeightSingle
        e.Graphics.DrawString("PAYE", pdfont, Brushes.Black, HorizontalPrintLocationSingle + 50, VerticalPrintLocationSingle)
        e.Graphics.DrawString("NULGE", pdfont, Brushes.Black, HorizontalPrintLocationSingle + 140, VerticalPrintLocationSingle)
        e.Graphics.DrawString("CICS", pdfont, Brushes.Black, HorizontalPrintLocationSingle + 220, VerticalPrintLocationSingle)
        e.Graphics.DrawString("IMPA", pdfont, Brushes.Black, HorizontalPrintLocationSingle + 220, VerticalPrintLocationSingle)
        e.Graphics.DrawString("ADVANCE", pdfont, Brushes.Black, HorizontalPrintLocationSingle + 320, VerticalPrintLocationSingle)
        e.Graphics.DrawString("DEPOSIT", pdfont, Brushes.Black, HorizontalPrintLocationSingle + 410, VerticalPrintLocationSingle)
        e.Graphics.DrawString("BANK-LN", pdfont, Brushes.Black, HorizontalPrintLocationSingle + 490, VerticalPrintLocationSingle)
        e.Graphics.DrawString("MUSLIM", pdfont, Brushes.Black, HorizontalPrintLocationSingle + 590, VerticalPrintLocationSingle)
        e.Graphics.DrawString("XTIAN", pdfont, Brushes.Black, HorizontalPrintLocationSingle + 685, VerticalPrintLocationSingle)
        e.Graphics.DrawString("COMM.", pdfont, Brushes.Black, HorizontalPrintLocationSingle + 780, VerticalPrintLocationSingle)
        e.Graphics.DrawString("MHW_DUE", pdfont, Brushes.Black, HorizontalPrintLocationSingle + 875, VerticalPrintLocationSingle)
        e.Graphics.DrawString("CHE-DUE", pdfont, Brushes.Black, HorizontalPrintLocationSingle + 970, VerticalPrintLocationSingle)
        'e.Graphics.DrawString("NMN-DUE", pdfont, Brushes.Black, HorizontalPrintLocationSingle + 1050, VerticalPrintLocationSingle)
        e.Graphics.DrawString("PEN_DUE.", pdfont, Brushes.Black, HorizontalPrintLocationSingle + 1530, VerticalPrintLocationSingle)
.....
......
....
Endsub

Richard MacCutchan

Вам нужно проверить размеры вашей бумаги и убедиться, что все данные могут поместиться в этих пределах. Возможно, вам придется изменить поля или использовать шрифт меньшего размера. В любом случае никогда не стоит помещать абсолютные значения в свой код. Вы должны рассчитать позиции данных по мере построения страницы. Таким образом, вы можете изменить шрифт или размер бумаги, и код все равно будет работать правильно.

0 Ответов