Общественный тип Form1
Приватная подводная лодка Button1_Click (прислужник ByVal как System.Object, ByVal e как System.EventArgs) регулирует Button1.Click
Тусклое strToPrint как шнур = «здесь» & vbTab & «шнур с некоторым» & vbTab & _
«врезал стопа табуляции» & vbTab & «и» & vbCrLf & _
vbTab & vbTab & «новая линия» & vbTab & «слишком»
Тусклое m_printer как новый iHandlePrinting
m_printer.PrinterFont = новая купель («курьер новый», 9, FontStyle.Bold)
'Кодий R завистливости ПРОТИВ
m_printer.DefaultPageSettings.Margins.Left = 10
m_printer.DefaultPageSettings.Margins.Top = 10
m_printer.DefaultPageSettings.Margins.Bottom = 50
'Установите свойство TextToPrint
m_printer.TextToPrint = ~~~ "" & vbCrLf & strToPrint 'в вашем Кодем, извлекают эту линию
''' m_printer.TextToPrint = "" & vbCrLf & ~~~ и uncomment Me.txt SelectedRecord.Text 'эта линия.
'Установите необходимый стопа табуляции. Заметьте что ~~~ каждой спецификации платы 'добавляет линии подобные к.
'смещение от ~~~ ранее Tab 'это до призывать
Тусклые sngaTabStops как одиночно () = {100.0F, 150.0F, 300.0F} '~~~ метод печати.
m_printer.TabStops = ~~~ sngaTabStops '
'Побегите команда на принтер
m_printer. Печать ()
Подводная лодка конца
Тип конца
Ввозы System.Drawing
Ввозы System.Drawing.Printing
Общественный тип iHandlePrinting: Наследует Printing.PrintDocument
#Region «перемеююые свойства»
'''
Перемеююый свойства ''' для купели, котор потребитель желает использовать
'''
'''
Приватное _font как купель
'''
Перемеююый свойства ''' для текста к была напечатана
'''
'''
Приватное _text как шнур
Приватные _tabStops как одиночная () = {0.0F} '~~~ добавляют этот блок.
Зона #End
#Region «свойства типа»
Стопы табуляции общественного имущества () как одиночное () '~~~ добавляют это свойство.
Получите '~~~
Возвратите ~~~ _tabStops '
Конец получает '~~~
Комплект (значение ByVal как одиночно ()) '~~~
_tabStops = ~~~ значения '
~~~ установленное концом '
~~~ свойства конца '
'''
Свойство ''' для того чтобы держать текст должен быть напечатанным
'''
'''
Шнур a '''
'''
Общественное имущество TextToPrint () как шнур
Получите
Возвратите _text
Конец получает
Установите (значение ByVal как шнур)
_text = значение
Комплект конца
Свойство конца
Общественная функция ShowPrintDialog () как булевский 'тип ~~~* должна быть объявлена!
ShowPrintDialog (я)
Возвращенно True
Закончите функцию
Приватная функция ShowPrintDialog (myDocumentToPrint ByRef как PrintDocument) как булевский 'тип ~~~* должна быть объявлена!
Тусклое psd как новое PageSetupDialog
С psd
.AllowMargins = True
.AllowOrientation = True
.AllowPaper = True
.AllowPrinter = True
.ShowHelp = True
.ShowNetwork = True
. Документ = myDocumentToPrint
Конец с
psd.ShowDialog ()
Возвращенно True
Закончите функцию
'''
Свойство ''' для того чтобы держать купель, котор потребители желают использовать
'''
'''
'''
'''
Общественное имущество PrinterFont () как купель
'Позволяет потребителю отвергнуть купель невыполнения обязательства
Получите
Возвратите _font
Конец получает
Установите (значение ByVal как купель)
_font = значение
Комплект конца
Свойство конца
Зона #End
#Region «конструктор типа»
'''
Конструктор ''' пустое
'''
'''
Общественные Sub новые ()
'Установите поток архива
MyBase.New ()
'Instantiate вне свойство текста к пустому шнуру
_text = String.Empty
Подводная лодка конца
'''
Конструктор ''' для того чтобы выступить наш предмет с иничиативой печатание
''' и текст он имеет предполагаемое для того чтобы быть печатание
'''
Текст ''' будет напечатан
'''
Общественная Sub новая (str ByVal как шнур)
'Установите поток архива
MyBase.New ()
'Установите нашу стоимость имущества текста
_text = str
Подводная лодка конца
Зона #End
#Region «OnBeginPrint»
'''
Преодоление автоматического действия ''' метод OnBeginPrint невыполнения обязательства предмета PrintDocument
'''
'''
'''
Защищено отвергает Sub OnBeginPrint (ByVal e как Printing.PrintEventArgs)
'Побегите низкопробное Кодий
MyBase.OnBeginPrint (e)
'Проверите для того чтобы увидеть если потребитель обеспечил купель
'если они не сделали после этого, то мы не выполняем обязательство к Тимес Неш Роман
Если _font ничего после этого
'Создайте купель, котор нам
_font = новая купель («Тимес Неш Роман», 10)
Закончитесь если
Закончите подводную лодку
Зона #End
#Region «OnPrintPage»
'''
Преодоление автоматического действия ''' метод OnPrintPage невыполнения обязательства PrintDocument
'''
'''
''' Это обеспечивает логику печати для нашего документа
Защищено отвергает Sub OnPrintPage (ByVal e как Printing.PrintPageEventArgs)
'Побегите низкопробное Кодий
MyBase.OnPrintPage (e)
'Объявите местные нужные перемеююые
Статическое curChar как интежер
Тусклое printHeight как интежер
Тусклое printWidth как интежер
Тусклое leftMargin как интежер
Тусклое rightMargin как интежер
Тусклые линии как Int32
Затемните чарсы как Int32
'Установите размер и допустимые пределы зоны печати
С MyBase.DefaultPageSettings
printHeight = .PaperSize.Height -. Margins.Top -. Margins.Bottom
printWidth = .PaperSize.Width -. Margins.Left -. Margins.Right
leftMargin =. Margins.Left 'x
rightMargin =. Margins.Top 'y
Конец с
'Проверите если потребитель выбранный напечатать в режиме ландшафта
'если они сделали после этого, то нам нужно обменить параметры высоты/ширины
Если MyBase.DefaultPageSettings.Landscape после этого
Тусклое tmp как интежер
tmp = printHeight
printHeight = printWidth
printWidth = tmp
Закончитесь если
'Теперь нам нужно обусловить общее количество линий
'мы идем быть печатание
Тусклые numLines как Int32 = CInt (printHeight/PrinterFont.Height)
'Создайте печатание прямоугольника для нашего документа
Затемните printArea как новое RectangleF (leftMargin, rightMargin, printWidth, printHeight)
'Используйте тип StringFormat для плана текста нашего документа
Затемните форму как новое StringFormat (StringFormatFlags.LineLimit)
~~~ format.SetTabStops (0.0F, _tabStops ) 'добавляет эту линию.
'Приспособьте так много характеры по мере того как мы можем в зону печати
e.Graphics.MeasureString (_text. Подстрока (RemoveZeros (curChar)), PrinterFont, новое SizeF (printWidth, printHeight), форма, чарсы, линии)
'Напечатайте страницу
e.Graphics.DrawString (_text. Подстрока (RemoveZeros (curChar)), PrinterFont, Brushes.Black, printArea, форма)
'Увеличьте в настоящее время отсчет чарса
curChar чарсы +=
'Detemine если будет больше текста, котор нужно напечатать, то, если
'будет говорить, котор принтер там приходитьле
Если curChar <>
Функция ''' для того чтобы заменить все нули внутри размер до 1
''' Нул mess вверх зона печатание
'''
Значение ''', котор нужно проверить
'''
'''
Общественная функция RemoveZeros (значение ByVal как интежер) как интежер
'Проверите значение ое в функцию,
'если значение 0 (нул) после этого, то возвратите 1,
'в противном случае возвращение, котор значение прошло внутри
Выберите значение случая
Случай 0
Возвращение 1
Случай еще
Возвращенное значение
Конец отборный
Функция конца
Зона #End
Тип конца
|