2011-11-09 71 views
1

我创建了一个丰富的编辑控件(1.0),如下打印分页符RICHEDIT从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

感谢描述类似的方式打印出来!

+0

在基本诊断的EndPage()调用上设置一个断点。 –

+0

是的,endpage被调用。我可以通过放置额外的StartPage()EndPage()来强制在输出中分页。它只是不会在正确的地方 - 即不是在ASCII分页字符的地方。我开始认为我可能需要看看这些打印电话,而不是编辑ctrl –

回答

0

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

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

+0

,所以你得到杰克狗屎回答你自己的问题?这个网站实际上找到了我的问题的答案已经相当令人失望。我已经回答了所有我自己的问题。要么我是一个可怜的问题提问者,要么我是在我有问题的地区工作的唯一一个。 –