Модуль dbPrn download предназначен для управления процессом печати. Он включает в себя функции, которые можно разделить на две группы. Первая группа предназначена для их вызова непосредственно из dBasic, а другая для вызова их из модулей (например, на C++).
К первой группе относятся:
SELFONT- установка фонта по умолчанию для печати.
SETMARGIN- установка отступов от края страницы для печати.
SELPRINTER- выбор принтера для печати.
PRNBOX- печатает текст.
Ко второй:
PRNGETFONT- возвращает указатель на структуру DBFONT.
PRNFONT- возвращает фонт установленный функцией SELFONT.
PRNMARGIN- возвращает отступы страницы установленныеSETMARGIN и пересчитанные в пикселы текущего контекста.
PRNCREATE- создает контекст печати.
PRNSTART- начинает процесс печати.
PRNSHOW- отображает текущее состояние печати.
PRNSTOP- завершает процесс печати.
Параметры устанавливаемые первой группой функций сохраняются в dbasic.ini, секции main
[Main]
PrintMargin=0,0,0,0
PrintFont=Pragmatica,10
Весь процесс печати выглядит следующим образом:
Paper.hdc= PRNCREATE();
if( Paper.hdc ) {
Paper.hFont= PRNFONT( Paper.hdc );
PRNMARGIN( Paper.hdc, Paper.Margin );
err= PRNSTART( hWnd, Paper.hdc, buf );
if( err == 0 ) {
if( StartPage( Paper.hdc ) > 0 ) {
// ...
// печать страницы
// ...
if( err==0 ) {
if( EndPage( Paper.hdc ) < 0 ) err=105;
}
}
else {
err=108;
}
if( err==0 ) err= PRNSTOP( hWnd, Paper.hdc );
else PRNSTOP( hWnd, Paper.hdc );
}
DeleteObject( Paper.hFont ); Paper.hFont=NULL;
DeleteDC( Paper.hdc ); Paper.hdc=NULL;
}
else {
err=103;
}
Назначение.Установка фонта по умолчанию для печати.
SELFONT( LONG<hWnd> ) BOOL
hWnd - описатель родительского окна.
Описание.При вызове функции отображается окно диалога вида:
в котором пользователь выбирает желаемый фонт печати.
Результат выбора сохраняется в dbasic.ini и может быть получен
вызовом функций PRNGETFONT или PRNFONT
Пример:
ok=SELFONT(HWND) IF ok THEN hFont=PRNFONT()
Назначение.Установка отступов от края страницы для печати.
SETMARGIN( LONG<hWnd> ) BOOL
hWnd - описатель родительского окна.
Описание.При вызове функции отображается окно диалога вида:
в котором пользователь выбирает желаемый фонт печати.
Результат выбора сохраняется в dbasic.ini и может быть получен
вызовом функции PRNMARGIN
Пример:
ok=SETMARGIN(HWND)
Назначение.Выбор принтера для печати.
SELPRINTER( LONG<hWnd> ) BOOL
hWnd - описатель родительского окна.
Описание.При вызове функции отображается окно диалога вида:
в котором пользователь выбирает устройство для печати.
Данная функция обычно не вызывается непосредственно из dbasic.
Назначение.Печать текста.
PRNBOX( LONG<HDC>, LONG<x1>, LONG<y1>, LONG<x2>, LONG<y2>, STRING<Alg>, STRING<Txt> )
HDC - описатель контекста устройства печати.
x1,y1 - целое число определяющее левый верхний угол области для печати (в мм).
x2,y2 - целое число определяющее правый нижний угол области для печати (в мм).
Alg - строка определяющая метод выравнивания текста LEFT, RIGHT, CENTER.
Txt - строка текста.
Назначение.Возвращает указатель на структуру DBFONT.
DBFONT* PRNGETFONT( void );
Описание.Возвращаемая структура DBFONT имеет вид:
typedef struct { WORD Size; WORD Type; char Name[LF_FACESIZE]; } DBFONT, *PDBFONT;
Назначение.Возвращает фонт установленный функцией SELFONT.
HFONT PRNFONT( HDC hdc );
HDC - описатель контекста устройства печати.
Описание.Функция создает новый фонт, на основание текущих параметров, и возвращает его описатель. По завершению его использования, фонт следует удалить API функцией DeleteObject( hFont ).
Пример.Печать
Назначение.возвращает отступы страницы установленныеSETMARGIN и пересчитанные в пикселы текущего контекста.
void PRNMARGIN( HDC hdc, RECT& rc );
HDC - описатель контекста устройства печати.
RECT - структура.
Описание.Функция заполняет поля переданной структуры значениями отступа в пикселах для данного контекста.
Пример.Печать
Назначение.Создает контекст печати.
HDC PRNCREATE( void );
Описание.Функция создает контекст печати и возвращает его описатель. По завершению его использования, фонт следует удалить API функцией DeleteDC( hdc ).
Пример.Печать
Назначение.Начинает процесс печати.
WORD PRNSTART( HWND hWnd, HDC hDC, PSTR lpDocName );
HWND - описатель родительского окна.
HDC - описатель контекста устройства печати.
lpDocName - наименование документа.
Описание.Функция отображает окно статуса печати в котором отображается название документа, количество страниц и номер текущей страницы. В случае ошибки функция возвращает код ошибки и ноль при успехе.
Пример.Печать
Назначение.Начинает процесс печати.
BOOL PRNSHOW( WORD CurPage, WORD Pages );
CurPage - номер текущей страницы.
Pages - кол-во страниц.
Описание.Функция отображает в окне статуса номер текущей страницы. В случае нажатия клавиши стоп, окна статуса. возвращает истину, иначе ложь.
Пример.Печать
Назначение.Завершает процесс печати.
WORD PRNSTOP( HWND hwnd, HDC hdc );
HWND - описатель родительского окна.
HDC - описатель контекста устройства печати.
Описание.Функция закрывает окно статуса печати. В случае ошибки функция возвращает код ошибки и ноль при успехе.
Пример.Печать