C++、win32、gdi 打印 : DrawEdge does not reach as far as DrawText?

标签 c++ winapi printing gdi

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

最佳答案

我能想到几个原因:

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

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

  • 您弄错了页面的可打印区域。这是什么类型的打印机?许多打印机无法在距离底边 35 毫米的范围内进行打印。驱动程序将什么报告为可打印区域? (将 GetDeviceCapsPHYSICALOFFSETYPHYSICALHEIGHT 一起使用,以确定页面上实际可以打印的高度。)

祝你好运!

关于C++、win32、gdi 打印 : DrawEdge does not reach as far as DrawText?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/478362/

相关文章:

c++ - 使用带有转发类的析构函数

winapi - 运行一个简单的 shell 命令

Windows 事件内存转储

linux - 将文件内容复制到目标文件。在目标文件中最后一次匹配模式之后。原始文件的内容显示在目标文件的下一行

python - 在 python 3.4 中打印调用

html - CSS @media print withinch 打印后给出其他尺寸

C++:无法使用类型为 'char**' 的右值初始化类型为 'char*[x]' 的变量

c++ - ptr to c++ source for a simple mac (cocoa) based console to use as a command interpreter

c++ - 设置boost文件系统

c - 为什么 WlanOpenHandle() 在这里失败了?