Печать разрывов страниц из элемента управления MFC RichEdit - PullRequest
1 голос
/ 10 ноября 2011

Я создал элемент управления Rich Edit (1.0) из MFC, как показано ниже

m_hRichEditWnd = ::CreateWindow(_T("RichEdit"), csWindowName, ES_MULTILINE|ES_READONLY, 0, 0, 200, 200, NULL, 0, 0, 0);

Я прочитал текст в этот элемент управления из файла. Файл представляет собой многостраничный документ .txt с управляющими символами ascii для разрывов страниц. Когда я печатаю из элемента управления Rich Edit, я не получаю разрывы страниц. Они распечатываются как символы. Есть ли способ получить эти разрывы страниц?

Я печатаю из системы управления, используя методы, аналогичные описанным здесь http://msdn.microsoft.com/en-us/library/windows/desktop/bb787875(v=vs.85).aspx

Спасибо!

1 Ответ

0 голосов
/ 12 ноября 2011

Итак, что я упустил, так это то, что я печатал не на физическом принтере, а в файле .ps. Этот файл .ps затем конвертировался скриптом-призраком в pdf, который не регистрировал разрывы страниц. Я полагаю, что это связано с тем фактом, что элемент управления редактированием на самом деле не показывает разрывы страниц внутри него - и то, как работает команда печати, почти похоже на графический всплеск на устройстве печати. Разрыв страницы не «на экране», поэтому он не попадает в файл .ps. Это теория.

Единственное решение, которое я нашел, - это анализ информации, поступающей в CRichEditControl, на наличие символов перевода формы. Загрузите все символы вплоть до символа перевода формы, распечатайте его в файл, а затем используйте функцию EndPage (), чтобы вручную принудительно принудить подачу формы. Продолжайте в том же духе, пока не останется больше символов подачи формы. Затем убедитесь, что вы распечатали все оставшиеся символы после последней подачи формы.

...