如何在不同型号的打印机上实现相同的打印效果(100分)

  • 主题发起人 主题发起人 XaGj
  • 开始时间 开始时间
X

XaGj

Unregistered / Unconfirmed
GUEST, unregistred user!

我编的一个程序在HPLASTJET5000打印机上能够实现所需的打印结果,但换成HP4VC后打印出的结果字体、大小和原先的一样,输出位置不同了请问如何解决

 
是各项目之间相对位置发生了变化,还是整体移动了呢?
 
是啊,怎么移动?
 
你打印前让用户设置一下打印属性。
 
呵呵, 好象没有办法:-(
针打和喷墨/激光的输出方式不同, 喷墨/激光都是图形输出的, 大部分针打不支持:-(
 
我是使用下面的方法:
所有的输出方式都是采用图形, 直接在printers.canvas上画,即
moveto();
lineto();
testout();
要记住几个全局的变量, 如pageWidth, pageHeight,因为这些参数在不同的打印
机上是不同的。在定义一个变量LineWidth,记录每行的高度,比如一张A4的纸张,
你应该知道要打印多少行(TotalLine), 每行的高度就是LineHeight :=
pagewidth / TotalLine,然后,每行就是textout(0, i* LineHeight, '').
-----上面仅说明每一个参数都是计算出来的,千万不要使用确定的数字。这种方法
实现起来很麻烦,但是能够根本地解决问题。
 
需要计算设备相关的分辨率才可以.大概是API中的GetDevice*
 
使用GetDeviceCaps(printer.Handle , LOGPIXELSX),
及GetDeviceCaps(printer.Handle , LOGPIXELSY)获得
打印机XY方向的打印分辨率,向素/英寸,然后乘上图形实
际尺寸即可。
 
多人接受答案了。
 
后退
顶部