Модуль dbPrn


Модуль 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

Назначение.Установка фонта по умолчанию для печати.

SELFONT( LONG<hWnd> ) BOOL

hWnd - описатель родительского окна.

Описание.При вызове функции отображается окно диалога вида:

в котором пользователь выбирает желаемый фонт печати. Результат выбора сохраняется в dbasic.ini и может быть получен вызовом функций PRNGETFONT или PRNFONT

Пример:

ok=SELFONT(HWND)
IF ok THEN hFont=PRNFONT()

SETMARGIN

Назначение.Установка отступов от края страницы для печати.

SETMARGIN( LONG<hWnd> ) BOOL

hWnd - описатель родительского окна.

Описание.При вызове функции отображается окно диалога вида:

в котором пользователь выбирает желаемый фонт печати. Результат выбора сохраняется в dbasic.ini и может быть получен вызовом функции PRNMARGIN

Пример:

ok=SETMARGIN(HWND)

SELPRINTER

Назначение.Выбор принтера для печати.

SELPRINTER( LONG<hWnd> ) BOOL

hWnd - описатель родительского окна.

Описание.При вызове функции отображается окно диалога вида:

в котором пользователь выбирает устройство для печати. Данная функция обычно не вызывается непосредственно из dbasic.

PRNBOX

Назначение.Печать текста.

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 - строка текста.

PRNGETFONT

Назначение.Возвращает указатель на структуру DBFONT.

DBFONT* PRNGETFONT( void );

Описание.Возвращаемая структура DBFONT имеет вид:

typedef struct {
  WORD Size;
  WORD Type;
  char Name[LF_FACESIZE];

} DBFONT, *PDBFONT;

PRNFONT

Назначение.Возвращает фонт установленный функцией SELFONT.

HFONT PRNFONT( HDC hdc );

HDC - описатель контекста устройства печати.

Описание.Функция создает новый фонт, на основание текущих параметров, и возвращает его описатель. По завершению его использования, фонт следует удалить API функцией DeleteObject( hFont ).

Пример.Печать

PRNMARGIN

Назначение.возвращает отступы страницы установленныеSETMARGIN и пересчитанные в пикселы текущего контекста.

void PRNMARGIN( HDC hdc, RECT& rc );

HDC - описатель контекста устройства печати.
RECT - структура.

Описание.Функция заполняет поля переданной структуры значениями отступа в пикселах для данного контекста.

Пример.Печать

PRNCREATE

Назначение.Создает контекст печати.

HDC PRNCREATE( void );

Описание.Функция создает контекст печати и возвращает его описатель. По завершению его использования, фонт следует удалить API функцией DeleteDC( hdc ).

Пример.Печать

PRNSTART

Назначение.Начинает процесс печати.

WORD PRNSTART( HWND hWnd, HDC hDC, PSTR lpDocName );

HWND - описатель родительского окна.
HDC - описатель контекста устройства печати.
lpDocName - наименование документа.

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

Пример.Печать

PRNSHOW

Назначение.Начинает процесс печати.

BOOL PRNSHOW( WORD CurPage, WORD Pages );

CurPage - номер текущей страницы.
Pages - кол-во страниц.

Описание.Функция отображает в окне статуса номер текущей страницы. В случае нажатия клавиши стоп, окна статуса. возвращает истину, иначе ложь.

Пример.Печать

PRNSTOP

Назначение.Завершает процесс печати.

WORD PRNSTOP( HWND hwnd, HDC hdc );

HWND - описатель родительского окна.
HDC - описатель контекста устройства печати.

Описание.Функция закрывает окно статуса печати. В случае ошибки функция возвращает код ошибки и ноль при успехе.

Пример.Печать

Hosted by uCoz