为什么我的程序用不同的打印机打印是坐标位置不一样?

cmf1944 2003-08-25 11:31:45
我的程序用EPSON-16000III调试打印好后,用激光打印机打印时打印的位置变了,
难道我要根据不同的打印机写好几个打印程序吗?
...全文
309 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dennis80 2003-08-27
  • 打赏
  • 举报
回复
学习
flinming 2003-08-27
  • 打赏
  • 举报
回复
这个问题困扰了我很久了!

如果你为打印默认映射的话
EPSON的取出来的坐标是3000多

如果你是三星的话,那起码是6000多,老式的针口打印机只有1000多

所有解决的方法只有改变打印映射模式,那样取出来的坐标只相差一点点!!!
jsshfj 2003-08-27
  • 打赏
  • 举报
回复
我不知道你所说的位置变了,是不是打印出来的左边界,上边界变大或者变小,如果是这样那好象跟打印机的可打印区域有关。
zhouyong0371 2003-08-27
  • 打赏
  • 举报
回复
打印机的坐标(解像度)比显示器要搞得多。
如果想简单实现所见即所得,可以先获得打印机的解像度,然后求他和你的屏幕解像度的比值,把药打印的坐标乘上相应的比值就可以了

是要这个样子,你的代码要针对不同的打印机做不同的处理,所以必须获得打印机的分辨率的参数。
如果你要打印的东西要求很精确,你按比值计算,还要考虑四舍五入的问题。否则就会有偏差。
wxfjb 2003-08-27
  • 打赏
  • 举报
回复
打印机的坐标(解像度)比显示器要搞得多。
如果想简单实现所见即所得,可以先获得打印机的解像度,然后求他和你的屏幕解像度的比值,把药打印的坐标乘上相应的比值就可以了
farfh 2003-08-27
  • 打赏
  • 举报
回复
up一下先
qiqiqiqi1 2003-08-27
  • 打赏
  • 举报
回复
不管什么坐标,如果你设置的坐标是相对的坐标就行拉.

以某个打印机的坐标为标准,并保存数据.再计算机新的打印机坐标时,按比例计算一下
.就能得到合适的坐标.就是说所有坐标都是计算出来的而不是固定的绝对坐标.
例如:计算3000,3000坐标中的位置[1500,1500].

你应该先得到新打印机的最大坐标直如(6000,6000)
后通过除2得到计算的新位置(6000/2,6000/2)
这个位置就准了,都是纸张的中间位置!
xghost 2003-08-27
  • 打赏
  • 举报
回复
学习
shiyongfan 2003-08-27
  • 打赏
  • 举报
回复
HDC hPrinterDC;
hPrinterDC=CreateDC(....);//创建打印机DC

::SetMapMode(MM_LOMETRIC);//使用类似MM_LOMETRIC的映射方式,不要用MM_TEXT
//只有使用物理的映射方式,才能使不同的打印机打印
//出相同的结果(位置)。MM_LOMETRIC使1个单位对应
//0.01mm。MM_HIMETRIC使1个单位对应的实际长度更小。
honglunxu 2003-08-26
  • 打赏
  • 举报
回复
同意楼上
firecatluo 2003-08-26
  • 打赏
  • 举报
回复
要选择好打印模式. 不要用默认的.

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧