【问题标题】:C++, win32, gdi Printing: DrawEdge does not reach as far as DrawText?C++、win32、gdi 打印:DrawEdge 没有达到 DrawText?
【发布时间】:2010-10-03 11:07:34
【问题描述】:

我正在尝试使用函数 DrawEdge 和 DrawText(http://msdn.microsoft.com/en-us/library/ms534882.aspxhttp://msdn.microsoft.com/en-us/library/ms533909.aspx)打印(使用打印机,在纸上,而不是在屏幕上)线条和文本。它们工作得很好,然而,当我试图到达我的纸的底部(距离它大约 35 毫米)时,这条线就停止了绘制。我认为这是我的打印机的限制。但是,当我绘制文本时,我的打印机在那里打印没有问题,甚至更低。 DrawEdge 有没有办法在那里画线?还有另一种方法可以做到这一点吗?这是一个错误吗?

【问题讨论】:

    标签: c++ winapi printing gdi


    【解决方案1】:

    我能想到几个原因:

    • 您在绘制边缘时设置了一个剪切区域,而在您绘制文本时设置了不同的设置。

    • 剪切区域已设置,但打印机没有始终如一地剪切文本。一些打印机会打印整个字符,即使它只有一部分在剪辑区域内。您可以使用GetDeviceCapsTEXTCAPS 来检查它的文本剪辑能力。如果是这种情况,剪裁区域底部附近打印的文本可能会显示,但其他类型的图形(如线条)将被剪裁。

    • 您对页面的可打印区域有误。这是什么类型的打印机?许多打印机无法在距底边 35 毫米的范围内打印。驱动程序报告的可打印区域是什么? (使用GetDeviceCapsPHYSICALOFFSETYPHYSICALHEIGHT 来确定您实际可以打印的页面高度。)

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2012-09-04
      • 2017-10-31
      • 1970-01-01
      • 2011-12-26
      • 2010-12-18
      • 1970-01-01
      • 2021-09-06
      • 1970-01-01
      • 2019-11-23
      相关资源
      最近更新 更多