2009-01-25 57 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,以确定你的页面上的低实际上可以打印。)

祝你好运!