首页
社区
课程
招聘
[求助]Windows下挂钩打印接口添加打印水印问题
发表于: 2019-6-10 17:01 5312

[求助]Windows下挂钩打印接口添加打印水印问题

2019-6-10 17:01
5312
大家好,我现在在做windows下打印水印功能,就是在打印操作时可以绘制上水印信息,现在我是通过挂钩StartPage和EndPage API接口来处理的,通过在接口DC上绘制我们指定的水印信息。目前测试主要遇到几个问题点:
1.之前挂钩 StartPage接口做处理,以便绘制为背景水印(不影响阅读),但测试发现ppt,pdf这类会遮挡水印,故调整为挂钩 EndPage 作为前景水印显示;
2. 前景水印显示目前针对ms excel有两个问题:
    (1)挂钩后打印时每页中间会多出一个空白页(未有思路,严重问题);
    (2)打印时只在有文字信息区域显示水印,若想在四个角这类地方绘制水印会不生效,刚开始怀疑是 EndPage的DC不是完整大小,但调试获取大小确实是真实            像素大小,怀疑是不是ms excel做了特殊处理(只绘制有效文字区域?)。
不知是否有做过的大神们路过给小弟一些提示,不胜感激!


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 3496
活跃值: (749)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没看明白,可以用gdi绘制水印吧
2019-6-11 07:22
0
雪    币: 17
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
kxzpy 没看明白,可以用gdi绘制水印吧
就是用的GDI绘制的,目前hook的EndPage(HDC hdc),操作hdc在上面绘制文字或者图片,目前除了excel其他文件打印都能正确绘制上打印水印,且显示区域都没问题。但是使用微软excel2016打印时,只能在有内容的区域显示文字,其他区域绘制不上,比如我想在左上角绘制个水印信息,就显示不了,我怀疑微软新的excel在打印时做了处理?还有个问题就是打印出来每页之间多出一个空白页,不绘制水印时没有这个问题。
2019-6-11 09:27
0
雪    币: 3496
活跃值: (749)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
下一个奇迹 就是用的GDI绘制的,目前hook的EndPage(HDC hdc),操作hdc在上面绘制文字或者图片,目前除了excel其他文件打印都能正确绘制上打印水印,且显示区域都没问题。但是使用微软excel ...
Excel有内置的水印功能,我不明白你是咋hook的
2019-6-12 07:14
0
雪    币: 17
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
kxzpy Excel有内置的水印功能,我不明白你是咋hook的
你说的内置水印应该是显示水印,我说的是打印时添加打印水印信息,就是hook的startpage和endpage 这两API,在参数DC里面绘制。
2019-6-14 16:45
0
雪    币: 3496
活跃值: (749)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
下一个奇迹 你说的内置水印应该是显示水印,我说的是打印时添加打印水印信息,就是hook的startpage和endpage 这两API,在参数DC里面绘制。
是拦截api吗?excel有水印,为啥要搞这么高端?
2019-6-16 07:29
0
雪    币: 17
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
kxzpy 是拦截api吗?excel有水印,为啥要搞这么高端?
要做的就是水印软件自动打水印啊,总不能每个去给每个用户电脑上设置excel水印吧,再说别的文件也需要打水印啊
2019-6-17 10:46
0
雪    币: 3496
活跃值: (749)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
很好奇 在我是通过挂钩StartPage和EndPage API接
这个具体是咋做到的?
2019-6-18 07:30
0
雪    币: 115
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我也碰到了这个问题。不知道楼主后来是否解决了?
2020-3-10 12:34
0
游客
登录 | 注册 方可回帖
返回
//