2011-11-09 101 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

,所以你得到傑克狗屎回答你自己的問題?這個網站實際上找到了我的問題的答案已經相當令人失望。我已經回答了所有我自己的問題。要麼我是一個可憐的問題提問者,要麼我是在我有問題的地區工作的唯一一個。 –