4

常见问答

 2 years ago
source link: http://www.lodop.net/blogs/Blog002.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
常见问答 - Lodop打印控件官方网站    Lodop中的一些优先级定义  

   WEB打印控件Lodop中很多设置有多种方法,例如有好几种方法可以设置纸张大小,当一项设置有多种方法并存时,就存在优先级别问题。尽管这些级别在技术手册都分别有说明,但把它们提炼出来分类比照一下更好理解,下面罗列一些:

一、设置纸张大小的优先级别:

★第一优先级是打印维护中的纸张属性设置的纸张大小,如下截图就是其设置界面,在打印维护窗口双击空白区域会弹出该界面,当某台电脑的打印机很特别,程序控制的所有纸张大小都不适合时可采用本方法。

print1.jpg
(图A)

★第二优先级是SET_PRINT_PAGESIZE函数设置的纸张大小,其语法如下:

SET_PRINT_PAGESIZE(intOrient,intPageWidth,intPageHeight,strPageName);

后三个参数可以设置纸张大小,其中intPageWidth和intPageHeight用具体数值设置纸张的宽和高,strPageName用预定义的纸张类型名来选择纸张大小,如此以来这里又存在一个子优先级顺序:

前者级别高,只有当宽高乘积小于等于0时后者选择的“A4”这类名称才起作用,例如下面语句:

LODOP.SET_PRINT_PAGESIZE(1,"200mm","290mm","");//设置宽200mm,高290mm

LODOP.SET_PRINT_PAGESIZE(1,0,0,"A4");//选择A4纸,相当于设置宽210mm,高297mm

这样按照优先级别高低原则:当第一优先纸张属性中选择“本机自行定义纸张”并设置了合法数值时,函数SET_PRINT_PAGESIZE所设置的纸张大小就都不起作用了。

这种设置方式适合WEB程序按某个固定纸张大小时的打印输出。
★第三优先级是预览界面的打印设置中选择的纸张类型(大小),如下截图就是其设置界面,在打印预览界面点“设置”按钮会弹出该界面。当某业务的纸张类型不固定,需要操作者自行选择时可采用本方法。如果初始化函数LODOP.PRINT_INIT设置的打印任务名不空时,操作者选择的纸张类型会被Lodop记忆下来(按任务名记)。

按照优先级别高低原则:要想让本方法起作用,前两个高优先级设置没有执行才可以。

print2.png

★最低(第四)优先级是操作系统中所选打印机的默认纸张,如下截图是Win7中的设置界面,各个操作系统稍有差别。按照优先级别高低原则:只有前面三个高优先级设置不执行时,操作系统默认纸张才起作用。

print3.jpg
(图C)

二、选择打印机的优先级别:

★第一优先级是SET_PRINTER_INDEX或SELECT_PRINTER函数指定的打印机,当多个语句同时执行时,以最后执行的语句为准,参考样例7。例如下面的语句:

LODOP.SET_PRINTER_INDEX(2);//选择2号打印机,序号一般以添加顺序排列,从0开始

LODOP.SET_PRINTER_INDEX("My EPSON LQ-1600K");//选择名称是“My EPSON LQ-1600K”的打印机

LODOP.SET_PRINTER_INDEX(-1);//选择操作系统中设为“默认”的打印机,“-1”代表默认打印机

★第二优先级是上次在预览界面的打印设置中选择的打印机,Lodop按任务名对应记忆下来,参考图B。

★最低(第三)优先级是操作系统选择的默认打印机,如下图在目标打印机上右键选“设置为默认打印机”。

这样按照优先级别高低原则:当程序没有执行SET_PRINTER_INDEX语句,而且也没有在打印设置中选择过打印机时,打印会输出到的默认打印机。

print4.png
(图D)

三、选择打印份数的优先级别:

★第一优先级是SET_PRINT_COPIES函数指定的打印份数,这个设置适合那些不弹出选机窗口的直接打印,或者虽然弹出选机窗口但又希望禁止操作者修改打印份数的情况,具体参考样例7。例如下面的语句:

LODOP.SET_PRINT_COPIES(2);//设置打印份数是2份

★第二优先级是上次用预览窗口输出时选择的打印份数,Lodop按任务名对应记忆下来。

以上两种方式按优先级别原则,体现在如下截图中的份数,如果按第一优先执行了SET_PRINT_COPIES函数,则这里的份数禁止修改,否则可以修改,而且还会再次记忆下来。

print5.png
(图E)

四、ADD语句的优先级别:

    当ADD语句加入的内容位置出现重叠时(例如两个内容叠加定位打印时)输出会有层次,Lodop是以“先下后上”的层次原则进行叠加打印的,也就是后面执行的语句内容会在上面。特别注意如果后者是带背景色的超文本对象,则有可能把前面的内容全遮盖住了。出现这种情况要么设置该超文本透明(在线样例35中的“打印设计”演示了超文本透明打印),要么让该语句先执行。

  如果对象之间有关联,那么层次会按关联顺序向上叠加,“被关联”的在下面,“关联别人”的在上面,参考在线样例41

<小结>

<<转到博文目录


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK