Печать разрывов страниц из элемента управления MFC RichEdit

Я создал элемент управления 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 ответ

Решение

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

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

Другие вопросы по тегам