Почему поля printdocument отличаются от полей печатной бумаги ?
Я пытаюсь нарисовать прямоугольник вокруг бумаги. Я установил левое, верхнее поля, ширину и высоту...
когда я печатаю эту страницу и когда я измеряю левое и верхнее поля, они примерно на 3 мм отличаются от установленных полей.
например, когда я устанавливаю левое и верхнее поля равными нулю
На Диалогового Окна Printpreviewdialog. Поля отображаются слева, а Верхние Поля равны нулю
Но...
После того, как я напечатал страницу, левое поле составляет 3,2 мм, а верхнее-3 мм.
Когда я использую этот код ;
e.графика.Страница-ИНФОРМЕР = GraphicsUnit.Миллиметр
e.графика.ResetTransform()
e.графика.Translatetransform С((Е.MarginBounds.Х - е.Свойство pagesettings.HardMarginX) / 100.0 F, (e.MarginBounds.Х - е.Свойство pagesettings.HardMarginY) / 100.0 F)
PrintDocument1.OriginAtMargins = True
на этот раз левое и верхнее поля на 4 мм отличаются от полей печатной бумаги.
Что я уже пробовал:
Private Sub PrintDocument1_PrintPage_1(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage Dim grpX As Graphics = e.Graphics e.Graphics.PageUnit = GraphicsUnit.Millimeter e.Graphics.ResetTransform() e.Graphics.TranslateTransform((e.MarginBounds.X - e.PageSettings.HardMarginX) / 100.0F, (e.MarginBounds.X - e.PageSettings.HardMarginY) / 100.0F) PrintDocument1.OriginAtMargins = True Dim style As FontStyle = FontStyle.Regular Dim fonts As Font = New Font(New FontFamily("Monotype Corsiva"), 12, style) Dim pen As New System.Drawing.Pen(System.Drawing.Color.Black, 0.01F) pen.DashStyle = Drawing.Drawing2D.DashStyle.Solid Dim pen2 As New System.Drawing.Pen(System.Drawing.Color.Blue, 0.01F) Dim pen3 As New System.Drawing.Pen(System.Drawing.Color.Purple, 0.01F) e.Graphics.Clear(Color.White) Dim wdth As Decimal Dim hght As Decimal Dim topSide As Decimal Dim leftSide As Decimal Dim horzGap As Decimal Dim VertGap As Decimal Dim HorLabel As Decimal Dim VerLabel As Decimal topSide = 12.9 hght = (33.9) VerLabel = 8 VertGap = 0 leftSide = 4.65 wdth = (99.1) HorLabel = 2 horzGap = (2.5) grpX.DrawRectangle(pen2, CDec(0.1), CDec(0.1), CDec(209.8), CDec(296.7)) grpX.DrawRectangle(pen, CDec(leftSide), CDec(topSide), CDec(200.7), CDec(271.2)) End Sub
MadMyche
Если вы просто распечатаете прямоугольник, будут ли размеры правильными?
Если вы печатаете на другом принтере, каковы результаты?
Или на другом компьютере / принтере?