1

我从 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

4

1 回答 1

0

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

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

于 2011-11-12T04:12:28.827 回答