从MFC RichEdit控件打印分页符

时间:2011-11-09 22:03:48

标签: winapi mfc cricheditctrl

我已经从MFC创建了Rich Edit控件(1.0),如下所示

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 :(得分:0)

所以我遗漏的是我实际上并没有打印到物理打印机而是打印到.ps文件。那个.ps文件然后被ghost脚本转换为pdf,它没有注册分页符。我相信这是因为编辑控件实际上并没有在其中显示分页符 - 而且打印命令的工作方式几乎就像是打印设备的图形单元。分页符不在“屏幕上”,因此它不会进入.ps文件。这是一个理论。

我找到的唯一解决方案是解析进入CRichEditControl的信息以获取换页符。将所有字符加载到换页符,将其打印到文件,然后使用EndPage()函数手动强制换页。以这种方式继续,直到没有更多换页字符。然后确保在最后一个换页后打印出任何剩余的字符。