Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литература / photon_old.doc
Скачиваний:
40
Добавлен:
02.04.2015
Размер:
7.88 Mб
Скачать
  1. Глава 20. Печать

Эта глава включает:

  • Контекст печати

  • Запуск процесса печати

  • Печать требуемых виджетов

  • Приостановка и возобновление процесса печати

  • Прекращение процесса печати

  • Освобождение контекста печати

  • Пример

В Photon'е печать и прорисовка на экране – это одно и то же: разница зависит от контекста рисования – структуры данных, определяющих куда проходит поток рисования (т.е. события рисования):

  • по умолчанию, на графический драйвер для рисования на экране

или

  • на контекст памяти (или МС – memory context) для размещения в памяти для дальнейшего использования

или

  • на контекст печати (или PC – printing context) для печати. См. раздел "Контекст печати" ниже.

Чтобы напечатать в Photon'е, необходимо:

  1. Вызвав функцию PpCreatePC(), создать контекст печати

  2. Выполнить установку контекста печати – либо автоматически через виджет PtPrintSel, либо программно с помощью функции PpSetPC().

  3. Инициализировать процесс печати, вызвав функцию PpStartJob().

  4. В любой момент после того, как функция PpStartJob() была вызвана, сделать контекст печати "активным", вызвав функцию PpContinueJob(). Когда контекст печати активен, всё, что рисуется через вызовы PpPrintWidget() или Pg*, включая виджеты, направляется в файл, открытый контекстом печати при вызове функции PpStartJob().

  5. Вставить, если необходимо, принудительный обрыв страницы, вызвав функцию PpPrintNewPage().

  6. Контекст печати можно сделать неактивным без прерывания текущего процесса печати, вызвав функцию PpSuspendJob(), или вызвав функцию PpContinueJob() с другим контекстом печати. Чтобы возобновить процесс печати с того места, где он был остановлен, необходимо вызвать функцию PpContinueJob().

  7. Завершить процесс печати путём вызова функции PpEndJob().

  8. Когда Вашему приложению больше не понадобится что-либо печатать в дальнейшем, вызвать функцию PpReleasePC(), чтобы освободить контекст печати.

    1. Контекст печати

Контекст печати представляет из себя структуру типа PpContext_t, члены которой управляют тем, как выполняется печать. Информация о том, что находится в контексте печати, см. в "Справочнике библиотечных функций Photon'а".

 Никогда не обращайтесь напрямую к членам структуры PpPrintContext_t; используйте для извлечения членов функцию PpGetPC() и функцию PpSetPC() для их изменения.

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

Первым шагом при выполнении печати в Photon'е является создание контекста печати с помощью функции PpCreatePC():

PpPrintContext_t *pc;

pc=PpCreatePC();

      1. Модифицирование контекста печати

Сразу после того, как контекст создан, Вы должны выполнить его правильную установку в соответствии с Вашим принтером, и установить опции (ориентация, размер бумаги, прочая), которые Вы хотите использовать. Вы можете сделать это с помощью следующих функций:

  • PpLoadDefaultPrinter()

  • PpLoadPrinter()

  • PpSetPC()

  • PpPrintPropSelect()

  • PpPrintSelect()

  • PpPrintSelection()

Эти функции описаны в "Справочнике библиотечных функций Photon'а". Вы можете также использовать виджет PtPrintSel (см. "Справочник виджетов Photon'а").

Вы можете получить список доступных принтеров путём вызова функции PpLoadPrinterList(). Когда Вы завершите работу со списком, вызовите функцию PpFreePrinterList().

Соседние файлы в папке Литература