2009-01-25 72 views
0

我正在使用DrawEdge和DrawText函數(http://msdn.microsoft.com/en-us/library/ms534882.aspxhttp://msdn.microsoft.com/en-us/library/ms533909.aspx)來打印(使用打印機,紙張,而不是屏幕)線和文本。但是,當我試圖觸及我的紙張底部(距離它大約35毫米)時,它們工作得很好,因此線條停止畫出。我認爲這是我的打印機的限制。但是,當我繪製文本時,我的打印機在打印時沒有問題,甚至更低。 DrawEdge在那裏畫線嗎?還有另一種方法可以做到這一點嗎?這是一個錯誤?C++,win32,gdi打印:DrawEdge達不到DrawText?

回答

1

我能想到的有幾個原因:

  • 你當你繪製我們設置不同,當你繪製文本邊緣的剪切區域集。

  • 剪輯區域已設置,但打印機並不一致剪切文本。即使部分打印機位於裁剪區域內,也會打印整個字符。您可以使用GetDeviceCapsTEXTCAPS來檢查其文本裁剪能力。如果是這種情況,可以顯示在剪切區域底部附近的文本,但其他類型的圖形(如線條)將被剪切。

  • 你誤會了頁面的可打印區域。這是什麼類型的打印機?許多打印機不能在底邊35毫米內打印。司機報告可打印區域是什麼? (使用GetDeviceCapsPHYSICALOFFSETYPHYSICALHEIGHT,以確定你的頁面上的低實際上可以打印。)

祝你好運!