之前的博文介绍了把底色转换成透明的:Lodop打印控件 打印透明图问题、
那个是直接在img标签里写的TransColor,此外,也可以用set_print_stylea对单个图片进行底色透明处理。
注意和之前博文中介绍的一样,不是所有打印机都支持透明图打印,此外还发现有些虚拟打印机也不支持,这个和打印机有关,需要实际测试下。
在打印机不支持该底色透明的样式时,只能换其他方式,如前面链接的相关博文里的用合成图,特别对于多张图片叠加,需要上面的图片透过看到下面的那种等,可以直接用合成图。
或通过把图章变成背景图实现效果,之前的在html里的图片作为背景图,相关博文:Lodop打印控件不打印css背景图怎么办、
该文演示的不是html里的,而是单张图片,和纯文本之间的。这次测试了两个,一个是做出来的实际是透明的图,还有一个是白底的,img1是做出来的透明的,img2w是底色是白色的。
实际测试如果不加transcolor,这两个都不会透明,就算是本身透明的透明图也不会透明。
当所用的打印机都支持该透明效果时,可以用该语句,当不支持的时候,可参考里面的文字在后方输出,相当于图章当成底图,也算是一种盖章效果,文字层级关系,相关博文:Lodop调整打印项输出顺序 覆盖与层级、
测试代码:
<script language="javascript" src="LodopFuncs.js"></script> </head> <body> <img src='img1.png'><br> <a href="javascript:prn0_preview()">单张图片的白色底透明TransColor</a><br> <script language="javascript" type="text/javascript"> var LODOP; //声明为全局变量 function prn0_preview() {//TransColor的透明,有的打印机不支持,有的虚拟打印机也不支持 LODOP=getLodop(); LODOP.PRINT_INIT(""); LODOP.ADD_PRINT_TEXT(29,15,317,62,"图片打印项之前的文本图片打印项之前的文本图片打印项之前的文本图片打印项之前的文本图片打印项之前的文本图片打印项之前的文本"); LODOP.ADD_PRINT_IMAGE(0,0,"79.9mm","76.2mm","<img src='img1.png'>"); // LODOP.SET_PRINT_STYLEA(0,"TransColor","#FFFFFF"); LODOP.ADD_PRINT_TEXT(150,13,317,62,"图片打印项之后的文本,之后之后之后之后之后之后之后之后之后之后之后之后之后之后之后之后之后之后之后之后之后之后之后"); LODOP.ADD_PRINT_TEXT(29,401,317,62,"图片打印项之前的文本图片打印项之前的文本图片打印项之前的文本图片打印项之前的文本图片打印项之前的文本图片打印项之前的文本"); LODOP.ADD_PRINT_IMAGE(0,386,"79.9mm","76.2mm","<img src='img1.png'>"); LODOP.SET_PRINT_STYLEA(0,"TransColor","#FFFFFF"); LODOP.ADD_PRINT_TEXT(150,399,317,62,"图片打印项之后的文本,之后之后之后之后之后之后之后之后之后之后之后之后之后之后之后之后之后之后之后之后之后之后之后"); LODOP.PRINT_DESIGN(); }; </script>
图示: