Язык программирования FreeBasic |
Ознакомление по печати
Функции данного раздела помогут выводить информацию на принтер. Поскольку немалая часть библиотек имеют в себе возможности вывода на печать, во избежания наложения, я решил функции занести в пространство имен window9. Лишь две функции ( HWNDPrinter и TextPrinter ) глобальные и самодостаточные, доступ к остальным через имя window9
HWNDPrinter - выводит на печать клиентскую чать окна.
TextPrinter - выводит на печать любой объем текста, при этом форматируя его так, что текст размещается при необходимости на множестве страниц. Стандартное форматирование текста страдает и корректируется в соответствии со страницей печати. Функция может выводить выбираемым шрифтом, цветом фона текста и цветом самого текста. Планировалась в основном для объемного текста, который не нуждается в особом форматировании.
Для вывода на печать можно использовать функции пространства имен, а так же функции рисования без параметров прозрачности Alpha.
Список поддерживаемых функций рисования:
Если нужно использовать функции рисования, то необходимо корректировать размеры из-за большой разницы в размерах контекстов рисования и печати. Для этого нужно размеры умножать на процентное соотношение, которое находится в структуре типа SinglePoint параметра функции StartPrinter . Функция StartPrinter не только подготавливает печать и выводит стандартный диалог, но и возвращает HDC печати, а так же заполняет два имеющихся поля структуры (x и y).
Для примера:
#include "window9.bi"
Dim Po As window9.SinglePoint
window9.StartPrinter(@po)
window9.PageStart()
BoxDraw(10*po.x,10*po.y,100*po.x,100*po.y,,&hff00ff)
window9.PageEnd()
window9.StopPrinter()
Код выше выводит розовый прямоугольник на печать, и наверно видно что каждая координата умножается на процентное соотношение.
Функция TextDraw может выводить текст в любое место без ограничений использования шрифтов. На нее не влияют функции установки отступов текста.Текст может быть выведен под любым углом, при установке шрифта.
Пример:
#include "window9.bi"
Dim Po As window9.SinglePoint
window9.StartPrinter(@po)
window9.PageStart()
FontDraw(LoadFont("arial",22*po.x,45))
TextDraw(100*po.x,100*po.y,"FreeBasic",-1,&hFF0000)
window9.PageEnd()
window9.StopPrinter()
Как наверно заметили, размер шрифта то же корректируется.
Функции пространства имен:
Функция StartPrinter при первой инициализации необходима. С нее должна начинаться процедура печати.
Функции пространства имен используются с настоящими размерами, им не требуется процентно корректировать размеры.
Пример:
#include "window9.bi"
Dim font As FontPrint
font.Name_="Arial"
font.size=22
font.Italic=1
window9.StartPrinter()
window9.PageStart()
window9.FontPrinter(@font)
window9.PrintText("FreeBasic programming language",100,100,300,200,DT_WORDBREAK )
window9.PageEnd()
window9.StopPrinter()
Created with the Personal Edition of HelpNDoc: Write eBooks for the Kindle