Специфікація BTRON3 (Український переклад) | Розділ 7: Графічна оболонка (GUI Shell)
Повернутися до змісту розділу Графічної оболонки
Попередня сторінка: 3.10 Менеджер TCP/IP (Повернутися)
Менеджер друку (Print Manager) керує виведенням документів на принтер, попереднім переглядом
(Print Preview), чергами друку (Spooler), конфігурацією та драйверами принтерів у BTRON3.
3.11.2.1 Папір макета (Layout Paper) та папір принтера (Print Paper)
У BTRON3 розрізняють розміри логічного аркуша макета документа (TAD-сторінка)
та фізичного аркуша принтера. Якщо розміри відрізняються, виконується автоматичне
масштабування або розбивка на декілька фізичних сторінок (Tiling).
3.11.2.2 Параметри друку (PR_PAR)
typedef struct {
TC prname[L_PRNM]; /* Назва принтера */
UH unit; /* Одиниці вимірювання (PR_MM = мм, PR_INCH = дюйми) */
UH resv1; /* Зарезервовано */
SIZE size; /* Фізичний розмір паперу принтера */
RECT margin; /* Поля аркуша принтера (Print Margin) */
UH spec; /* Специфікація друку (орієнтація, якість, колір) */
UH copies; /* Кількість копій */
H start; /* Початкова сторінка */
H end; /* Кінцева сторінка */
UH prnvobj; /* Друкувати/розгортати віртуальні об'єкти */
UH vobjdepth; /* Глибина розгортання віртуальних об'єктів */
SIZE layoutsz; /* Розмір аркуша макета документа */
RECT laymargin; /* Поля макета документа */
} PR_PAR;
3.11.3.1 Стан завдання друку (PR_STAT)
typedef struct {
W prid; /* ID завдання друку */
W pid; /* ID процесу, що поставив завдання */
UW time; /* Час постановки у чергу */
LINK lnk; /* Посилання на файл документа */
UH mode; /* Режим: PR_DEL/PR_NODEL, PR_MSG/PR_NOMSG */
UH stat; /* Стан: PR_WAIT, PR_ACTIVE, PR_DELETE */
UH rempage; /* Залишок сторінок */
UH remcopy; /* Залишок копій */
} PR_STAT;
3.11.3.2 Повідомлення про завершення друку (PR_MESG)
#define MS_PRINT MS_MNG5 /* Тип повідомлення друку */
typedef struct {
W type; /* = MS_PRINT */
W size; /* Розмір тіла повідомлення (= 8) */
W prid; /* ID завдання друку */
W code; /* Код завершення (0 = успіх, PR_CANCEL = скасовано) */
} PR_MESG;
#define L_DEVPAR 88 /* Довжина параметрів пристрою */
#define L_HWPAR 160 /* Довжина специфічних параметрів заліза */
typedef struct {
TC prname[L_PRNM]; /* Назва принтера */
TC hwname[L_PRNM]; /* Модель принтера */
TC devname[L_DEVNM]; /* Назва порту/пристрою (e.g. parallel, serial, lpr) */
TC drvname[L_FNM]; /* Назва файлу драйвера */
VB devpar[L_DEVPAR]; /* Параметри пристрою зв'язку */
VB hwpar[L_HWPAR]; /* Апаратні параметри принтера */
} PR_CONF;
| rset_par |
| Display Print Dialog / Set Parameters |
| Відображення діалогу налаштування друку |
|
【Синтаксис / Прототип】
WERR rset_par(PR_PAR *par, W opt)
【Параметри】
PR_PAR *par Параметри друку [вхід / вихід]
W opt Опції (PR_PAR_DEFAULT = за замовчуванням, 0 = діалог)
【Значення, що повертається】
= 0 Підтверджено (натиснуто OK)
= 1 Скасовано користувачем (Cancel)
< 0 Помилка (Код помилки)
【Детальний опис】
Відображає стандартну панель налаштувань друку для вибору принтера, діапазону сторінок,
кількості копій та параметрів масштабування.
【Коди помилок】
EX_ADR : Недопустима адреса par.
EX_PAR : Неприпустимі параметри друку.
| rprn_fil |
| Print File to Spooler |
| Постановка файлу документа в чергу друку |
|
【Синтаксис / Прототип】
WERR rprn_fil(LINK *lnk, PR_PAR *par, W mode)
【Параметри】
LINK *lnk Посилання на файл документа для друку
PR_PAR *par Параметри друку
W mode Режим: PR_DEL/PR_NODEL (видалити файл після друку), PR_MSG/PR_NOMSG (повідомити про завершення)
【Значення, що повертається】
>= 0 ID зареєстрованого завдання друку (prid)
< 0 Помилка (Код помилки)
【Детальний опис】
Реєструє документ у спулері вибраного принтера для фонового друку.
【Коди помилок】
EX_ADR : Недопустима адреса lnk або par.
EX_NOEXS: Принтер не знайдено.
EX_NOSPC: Нестача пам'яті для черги спулера.
| rout_fil |
| Synchronous Print File |
| Прямий синхронний друк файлу |
|
【Синтаксис / Прототип】
ERR rout_fil(LINK *lnk, PR_PAR *par)
【Параметри】
LINK *lnk Посилання на файл документа
PR_PAR *par Параметри друку
【Значення, що повертається】
= 0 Успішне завершення друку
< 0 Помилка (Код помилки)
【Детальний опис】
Виконує прямий синхронний друк без використання черги спулера.
【Коди помилок】
EX_ADR : Недопустима адреса lnk або par.
EX_NOEXS: Принтер не знайдено.
| rpvw_fil |
| Print Preview |
| Попередній перегляд друку у вікні |
|
【Синтаксис / Прототип】
ERR rpvw_fil(W wid, LINK *lnk, PR_PAR *par, W page)
【Параметри】
W wid ID вікна для відображення
LINK *lnk Посилання на файл документа
PR_PAR *par Параметри друку
W page Номер сторінки для перегляду
【Значення, що повертається】
= 0 Успішне виконання
< 0 Помилка (Код помилки)
【Детальний опис】
Малює сторінку документа у вказаному вікні з урахуванням розбивки сторінок та полів принтера.
【Коди помилок】
EX_WID : Вікно wid не існує.
EX_ADR : Недопустима адреса lnk або par.
| rcan_ent |
| Cancel Spool Job |
| Скасування завдання друку зі спулера |
|
【Синтаксис / Прототип】
WERR rcan_ent(TC *prname, W prid)
【Параметри】
TC *prname Назва принтера (NULL = всі принтери)
W prid ID завдання (0 = всі завдання)
【Значення, що повертається】
>= 0 Кількість скасованих завдань
< 0 Помилка (Код помилки)
【Детальний опис】
Скасовує завдання prid у черзі спулера принтера prname.
【Коди помилок】
EX_NOEXS: Принтер або завдання не знайдено.
| rget_ent |
| Get Spool Queue Status |
| Отримання списку та стану завдань у черзі друку |
|
【Синтаксис / Прототип】
WERR rget_ent(TC *prname, W prid, PR_STAT *stat, W cnt)
【Параметри】
TC *prname Назва принтера (NULL = всі)
W prid ID завдання (0 = всі)
PR_STAT *stat Буфер для масиву PR_STAT
W cnt Розмір буфера stat (кількість елементів)
【Значення, що повертається】
>= 0 Кількість завдань у черзі
< 0 Помилка (Код помилки)
【Детальний опис】
Заповнює масив stat станом активних завдань у черзі спулера.
【Коди помилок】
EX_ADR : Недопустима адреса stat.
EX_NOEXS: Принтер не знайдено.
| rlst_prn |
| List Printers |
| Отримання списку зареєстрованих принтерів |
|
【Синтаксис / Прототип】
WERR rlst_prn(PR_INFO *info, W cnt)
【Параметри】
PR_INFO *info Буфер для інформації про принтери
W cnt Кількість елементів буфера
【Значення, що повертається】
>= 0 Загальна кількість зареєстрованих принтерів
< 0 Помилка (Код помилки)
【Детальний опис】
Повертає перелік усіх принтерів, налаштованих у системі.
【Коди помилок】
EX_ADR : Недопустима адреса info.
| rget_cnf |
| Get Printer Configuration |
| Отримання конфігурації принтера |
|
【Синтаксис / Прототип】
WERR rget_cnf(TC *prname, PR_CONF *cnf)
【Параметри】
TC *prname Назва принтера
PR_CONF *cnf Буфер для збереження конфігурації PR_CONF
【Значення, що повертається】
>= 0 Максимальна кількість принтерів у системі
< 0 Помилка (Код помилки)
【Детальний опис】
Зчитує конфігурацію порту, драйвера та заліза для принтера prname.
【Коди помилок】
EX_ADR : Недопустима адреса prname або cnf.
EX_NOEXS: Принтер не знайдено.
| rset_cnf |
| Set Printer Configuration |
| Налаштування / реєстрація / видалення принтера |
|
【Синтаксис / Прототип】
ERR rset_cnf(TC *prname, PR_CONF *cnf)
【Параметри】
TC *prname Назва принтера (NULL = додати новий)
PR_CONF *cnf Конфігурація (NULL = видалити принтер)
【Значення, що повертається】
= 0 Успішне виконання
< 0 Помилка (Код помилки)
【Детальний опис】
Додає новий принтер (prname = NULL), змінює конфігурацію існуючого або видаляє принтер (cnf = NULL).
【Коди помилок】
EX_ADR : Недопустима адреса cnf.
EX_EXS : Не можна видалити принтер, що має активні завдання у черзі.
EX_LIMIT: Перевищено ліміт кількості принтерів.
Повернутися до змісту розділу Графічної оболонки
Попередня сторінка: 3.10 Менеджер TCP/IP (Повернутися)