LODOP打印超文本保留背景色带平铺水印
前面的博文:LODOP中设置设置图片平铺水印,超文本透明、 介绍过 ,如果不想去掉超文本的背景色,想在超文本背景色和超文本内容文字之间加上水印,让水印在背景色上面,文字下面,是不行的,因为平铺的图片和超文本是两个打印项,不可能将水印图片放到内容和背景色之间。
但是如果有这个需求,文字部分有背景色,也有平铺整个纸张的图片,如果只是用LODOP的图片输出打印,和超文本打印项这样 ,是实现不了的,要么是有背景色的超文本打印项覆盖图片,要么是图片覆盖超文本。因为两个都是不透明的,两个的言行肯定会相互覆盖。
个人想到的方法,1.让水印图片在最上层,让白色部分透明,类似在文字上盖章的公章打印。(但是这样,如果水印图片不透明的部分肯定会覆盖部分文字,如果本身水印不透明的较少,不影响阅读,还是可以的)(有的打印机不支持该种透明,有的虚拟打印机也不支持,注意需要实际测试)
2.用合成图,如果内容比较固定,可以给超文本去掉背景色,然后用水印和背景色的合成图,这种水印可以实现水印在背景色之上的类似效果。关于合成图,之前也有个博文(Lodop打印控件 打印透明图问题)
测试代码:
<script language="javascript" src="LodopFuncs.js"></script>
</head>
<style>#p{background-color:#bbf1f2;padding:20mm;width:60mm;height:60mm;</style>
<body>
<div id="printN">
<div id="p">
官网样例是混合部署LodopFuncs.js里已经写好了判断。
客户端是浏览器支持np插件,是32位浏览器,就会提示下载32位的Lodop插件:install_lodop32.exe
客户端浏览器支持np插件,是64位浏览器,就会提示下载64位的Lodop插件:install_lodop64.exe
客户端浏览器不支持np插件(判断如高版本谷歌火狐等),会提示下载C-Lodop方式: CLodop_Setup_for_Win32NT.exe
</div>
</div>
<a href="javascript:prn1_preview()">打印预览(不去除背景色,水印在文字上层,只去白色背景)</a><br>
<a href="javascript:prn2_preview()">打印预览 不可变形缩放(去掉背景色,背景色和水印合成图,文字带有背景色)</a>
<script language="javascript" type="text/javascript">
var LODOP; //声明为全局变量
function prn1_preview() {
LODOP=getLodop();
LODOP.PRINT_INIT("");
var styleN="<style>#p{background-color:#bbf1f2;padding:20mm;width:60mm;height:60mm;</style>";
LODOP.ADD_PRINT_HTM(0,0,"100%","100%",styleN+document.getElementById("printN").innerHTML);
LODOP.ADD_PRINT_IMAGE(0,0,"100mm","100mm","<img transcolor='#FFFFFF' src='./sy.png'>");//白色转透明
LODOP.SET_PRINT_STYLEA(0,"Repeat",true);
LODOP.PREVIEW();
};
function prn2_preview() {
LODOP=getLodop();
LODOP.PRINT_INIT("");
LODOP.ADD_PRINT_IMAGE(0,0,"210mm","297mm","<img src='bg.png'>");//合成图
//LODOP.SET_PRINT_STYLEA(0,"Repeat",true);
var styleN="<style>#p{padding:20mm;width:60mm;height:60mm;</style>";
//var styleN2="<style>#p{background-color:transparent;padding:20mm;width:60mm;height:60mm;</style>";
//或加css样式,background-color:transparent;,背景色透明
LODOP.ADD_PRINT_HTM(0,0,"100%","100%",styleN+document.getElementById("printN").innerHTML);
LODOP.PREVIEW();
};
</script>
</body>
图示:
LODOP没有办法在把一张水印图片插入一个超文本打印项的内容和背景色之间,两个打印项只会相互覆盖,只能用其他方法处理。
图中的合成图,把被背景色P到背景图上,合成一张平铺的背景图,这样效果类似,也不会遮挡文字。

LODOP打印超文本保留背景色带平铺水印的更多相关文章
- LODOP打印超文本字符串拼接2 单选选择css样式表格
之前的相关字符串拼接的博文:LODOP打印超文本字符串拼接1 固定表格填充数值之前博文介绍过,字符串可以随意拼接,只要最后组织成的字符串是自己需要的超文本就可以了,前面还有一篇也是拼接样式的:Lodo ...
- ie8下背景图片平铺问题
IE9+及其他浏览器实现背景图片平铺可能需要一个属性就可以background-size:100%/cover; 但是ie8下background-size是不兼容的,因此我们需要用到滤镜,来解决背景 ...
- CSS背景100%平铺 浏览器缩小背景显示不全解决办法
本文我们分享前端CSS背景100%平铺,浏览器缩小背景显示不全bug解决的两个方法,如果你也遇到了,那么就可以参考下面文章. 把浏览器的窗口缩小时,拖动滚动条时你会发现原本设定的CSS背景100%平铺 ...
- Duilib技巧:背景图片平铺
贴图的描述 方式有两种 // 1.aaa.jpg // 2.file='aaa.jpg' res='' restype='0' dest='0,0,0,0' source='0,0,0,0 ...
- CSS背景横向平铺BUG,解决方法
给定DIV一个背景图片横向平铺,缩小浏览器,拉动横向滚动条,此时触发此BUG:背景图片平铺不完整 解决办法: 1.把背景图片写在BODY上,此办法局限于没有使用iframe的情况下,所以少用 2.设定 ...
- php 给图片增加背景平铺水印代码
如果你想利用php 给图片增加背景平铺水印效果话,必须利用php的一个插件来实例,就是利用imagick,他可以给图片增加背景平铺水印效果哦,下面我们提供一款实例代码. 如果你想利用php教程 给图片 ...
- Java 在Excel中添加水印(单一水印、平铺水印)
在Excel中没有直接添加水印的功能,但依旧可以通过一定方式来实现类似水印效果.本文通过Java程序代码介绍具体实现方法.可添加单一水印效果,即水印是以单个文本字样来呈现:也可添加多个平铺水印效果,即 ...
- canvas实现平铺水印
欲实现的水印平铺的效果图如下: 从图上看,应该做到以下几点: 文字在X和Y方向上进行平铺: 文字进行了一定的角度的旋转: 水印作为背景,其z-index位置应位于页面内容底部, 即不能覆盖页面主内容: ...
- LODOP中设置设置图片平铺水印,超文本透明
之前的博文:LODOP中平铺图片 文本项Repeat. 该博文中是平铺的图片,上面是文本.如果是图片add_print_image和add_print_text纯文本,这两个打印项设计的,可以直接通过 ...
随机推荐
- Python3学习(一)
基本语法 python3不向下兼容,有些语法跟python2.x不一样,IDLE shell编辑器,快捷键:ALT+p,上一个历史输入内容,ALT+n 下一个历史输入内容.#idle中按F5可以运行代 ...
- RMQ--树状数组,ST表,线段树
RMQ Range Minimum/Maximum Query 区间最值问题 树状数组 https://www.cnblogs.com/xenny/p/9739600.html lowbit(x) x ...
- 洛谷 P2401 不等数列 题解
每日一题 day25 打卡 Analysis dp[i][j]=dp[i-1][j-1]*(i-j)+dp[i-1][j]*(j+1); 其中i和j是表示前i个数中有j个小于号,j<=i-1 要 ...
- YAML_02 playbook的ping脚本检测
ansible]# vim ping.yml --- - hosts: all remote_user: root tasks: - ping: ansible]# ansible- ...
- learning java AWT 画图
import javax.swing.*; import java.awt.*; import java.util.Random; public class SimpleDraw { private ...
- SDOI2015做题记录
由于我懒,并且这里面除了D2T3恶心以外都不难写,所以很多代码都没写-- 排序 对于某一个合法的操作序列(操作序列定义为每次交换的两组数),可以随意交换顺序,仍然合法.所以对于一个操作集合,答案就加\ ...
- JS中的constructor 和 prototype
object.constructor :对象的constructor 属性引用了该对象的构造函数. //例如,用Array()构造函数创建了一个数组,那么a.constructor 引用的就是Arra ...
- docker运行puppeteer出现defucnt僵尸进程
其实这是docker的一个bug,就是在运行前加--init即可,注意这个在mac中没有只在linux上有. docker run --init -d ..... 具体内容参见:https://sta ...
- 咏南中间件随LINUX开机自动启动
咏南中间件随LINUX开机自动启动 LINUX DEAMON,LINUX也有类似WINDOWS的服务. program ynCrossServer; {$HINTS OFF} {$APPTYPE CO ...
- k8s 配置文件 详解
apiVersion: v1 # [必须]版本号kind: Pod # [必选]Podmetadata: # [必选-Object]元数据 name: String # [必选] Pod的名称 nam ...