打印内容相对位置的事后调整及保存


运行此示例        视频演示

你开发时,使用了一种打印机来调试你的套打程序,但用户上线时,可能会发现有些打印机型号,根本不是你开发时使用的那种,这时,可能会出现在部分打印机上,打出来的位置有些 是对的,有些则不对,这时,你不能改服务端的代码来调整位置,因为服务端代码会影响所有的用户,所有打印机,势必造成顾此失彼的局面。

这时,你可能很自然地想到,能不能让用户,自已(实际上,一般是在项目上线时,由开发人员代劳)来对出现错位的套打内容,进行可视化地拖动,达到微调的目的。当然,调整正确后,还能让用户的机子记住这个设置,以便下次打印同一票据,自动套用调整后的位置,避免每次手工调整。 开发本功能的目的,就要是达到这种效果。

为了实现这种事后调整,必须对套打网页作如下设置:

1. 代码必须加上

myDoc = {
...

dragDesigner:{viewSource:false}, // 必须设置, settingsID: 'mydoc2', // 必须设置 ... } jatoolsPrinter.printPreview(myDoc);

2. 可以拖动的对象,必须设置如下:

<div id='f1' draggable='true' class='f1 my-f1' style='position:absolute;'>423051702880563</div> 

必须有id属性,必须设置draggabletrue ,必须引用'my-'+id的样式类,css的position属性,必须为absolute,对象的top、left属性,必须通过样式类来设置,不能通过sytyle属性来设置,下面的指定都是错误的:

//不正确,没有引用 'my-'+id样式类
<div id='f1' draggable='true' class='f1' style='position:absolute;'>423051702880563</div> 

//不正确,在style属性中,指定了top,left属性
<div id='f1' draggable='true' class='f1' style='position:absolute;left:10;top:20' >423051702880563</div>  

3. 通过打印工具栏上的按钮,打开拖放设计窗口,凡是按2所述,正确设置成可拖动的对象,鼠标在上面为成手形,此时你可以调动到正确位置,按确定按钮,返回到 打印预览界面试着打印,直到所有套打内容在正常位置。注意,只有在实际打印后,你的拖动设置才会被记住,才能在下一次打印中自动套用,只拖动不打印,是不会被保存的。