前言

最近要写一个自动生成报表的程序,具体是将一堆存储在数据库的表格做成PDF然后盖上单位的章,章是以图片的形式给出的。

项目用的是JAVA语言,需要的库主要是itex。查了一轮itex的API之后大概有两种做法:

一种是直接以图片的形式将章插入到pdf相应位置,然后设置图片为背景,这种方法的好处是非常简单,但是后来的文字会覆盖

掉章的内容,严重的失真。

第二种方法是通过mask来对插入到pdf的图片进行处理,itex有个方法叫img.setImageMask(mask),使用了该方法之后就可以通过mask的值

来对img设置透明度,具体是mask为0的点img会变成透明,反之亦然。

具体方法

通过上面的介绍我们就把问题转化到老本行数字图像处理上来了,就是提取出图片的二值化信息。

装好Python和Opencv开始干活。

初始图片是这样的:

import numpy as np

import cv2

I = cv2.imread('t1.jpg');

I_gray = cv2.cvtColor(I, CV_BGR2GRAY) #转成灰度图片

I_gray[I_gray > 220] = 255

I_gray[I_gray < 220] = 0 #得到二值化的图片,220是实验出来的

cv2.imwrite('t1_bin.png', I_gray)

这样就获得了二值化的签章。

然后在Java端处理

Image img = Image.getInstance("E:\\t1.jpg");

BufferedImage bi = ImageIO.read(new File("E:\\t1_bin.jpg"));

BufferedImage newBi = new BufferedImage(bi.getWidth(),bi.getHeight(),BufferedImage.TYPE_BYTE_BINARY);

newBi.getGraphics().drawImage(bi, 0, 0, null);

ByteArrayOutputStream baos = new ByteArrayOutputStream();

ImageIO.write(newBi, "png", baos);

Image mask = Image.getInstance(baos.toByteArray());

mask.makeMask();

img.setImageMask(mask);

这样就完成了签章的生成

总结

具体做起来还是比较顺利的,因为签章本来就需要很清楚,如果是其他东西可能需要腐蚀、膨胀甚至上watershed算法。

Java端也很顺利,照着API做一次就成了,很开心。

文档 盖章 java_文档自动盖章相关推荐

  1. NTKO OFFICE文档控件为何不能自动装载?

    2019独角兽企业重金招聘Python工程师标准>>> 1.问题表现: 当访问引用控件的网页时,NTKO OFFICE文档控件窗口不会出现,导致相关的引用控件的Javacript语句 ...

  2. 一文搭建自己博客/文档系统:搭建,自动编译和部署,域名,HTTPS,备案等

    本文纯原创,搭建后的博客/文档网站可以参考: Java 全栈知识体系.如需转载请说明原处. 文章内容目录 第一部分 - 博客/文档系统的搭建 博客/文档搭建前言 有哪些选择 我做了哪些尝试 自己写:我 ...

  3. 计算机word如何插入新列表,电脑word文档中怎么给表格自动添加序号?怎么增加表目录...

    电脑word文档中怎么给表格自动添加序号?怎么增加表目录 腾讯视频/爱奇艺/优酷/外卖 充值4折起 我们看一篇word文件的时候,如果篇幅比较长而表格又比较多的话,一般会给这篇word设置一个表目录. ...

  4. java先删后保存数据库据功能,还在手工生成数据库文档?3个步骤自动完成了解一下...

    自动化生成数据库文档,简单的3个步骤即可完成,了解一下. 1 前言 平时工作中,大家应该都会遇到需要导出数据库说明文档(也叫数据字典)的情况,即把各数据表的字段信息整理成一个个的表说明,然后用 exc ...

  5. WPS文档如何设置或取消自动生成序号

    WPS文档如何设置或取消自动生成序号 文件  - 选项 - 编辑 - 取消勾选"自动编号"栏目下的"键入时自动应用自动编号列表",点击右下角的"确定& ...

  6. word格式转html自动编号,word文档中标题样式及自动编号操作方法

    在Word中使用样式是必不可少的尤其是在编辑标题的时候,很多小伙伴们对于word文档中的样式都是只知其一不知其二,不是非常熟练的运用,今天小编就来给大家分享下word文档中样式的使用方法及其自动编号的 ...

  7. 【在工程Word文档的大量表格中自动插入图片的python程序】

    在工程Word文档的大量表格中自动插入图片的python程序 一.问题描述 在word的表格中插入图片代码 图形界面GUI设计 程序打包 一.问题描述 我的姐姐是一个工程技术公司的资料员,经常需要在w ...

  8. 智能文档理解:通用文档预训练模型

    预训练模型到底是什么,它是如何被应用在产品里,未来又有哪些机会和挑战? 预训练模型把迁移学习很好地用起来了,让我们感到眼前一亮.这和小孩子读书一样,一开始语文.数学.化学都学,读书.网上游戏等,在脑子 ...

  9. 干掉 Postman?测试接口直接生成API文档,这个文档工具真香!

    欢迎关注方志朋的博客,回复"666"获面试宝典 实不相瞒我的收藏夹里躺着很多优质的开源项目,我有个爱好平时遇到感兴趣的开源项目都会记录下来,然后有时间在慢慢研究.前几天刚给同事分享 ...

最新文章

  1. WCF 4.0 Issues with IIS 7.0 on x86 and x64 bit Machines(转载)
  2. MySQL使用SHOW PROFILE进行SQL分析
  3. 深度 | 伯克利教授Stuart Russell:人工智能基础概念与34个误区
  4. Java中一个线程只有六个状态。至于阻塞、可运行、挂起状态都是人们为了便于理解,自己加上去的。...
  5. GPU GPGPU
  6. LambdaLoss | Google排序学习优化框架
  7. 别再一知半解啦,索引其实就这么回事!
  8. 二次函数计算机课件,《二次函数的应用》课件
  9. 汽油与消费需求问题的MonteCarlo求解方法
  10. linux shell 后台执行脚本的方法 脚本后台运行 后台运行程
  11. R语言基于S3的面向对象编程
  12. Freeswitch与外域IP对接之incoming call
  13. bootstrp_组件
  14. libxml2 常用接口
  15. 游戏动作3d模型素材推荐 精品 小众
  16. 2022年深圳杯建模A题思路: 破除“尖叫效应”与“回声室效应”,走出“信息茧房”
  17. 二级域名间相互请求 ajax跨域请求
  18. 房价下跌的“理由”越来越多
  19. 第1-6课:算法设计常用思想之穷举法
  20. OpenCV实践小项目(一): 信用卡数字识别

热门文章

  1. 中国艺术《先得月》孙溟㠭篆刻作品
  2. 惨!惨!惨!小木虫被封禁了
  3. 技术+服务:警翼智能欲筑高“护城河”
  4. 第52篇 Android Studio实现生命数字游戏(七)ListView与适配器
  5. PR字幕模板 12个大气紫色风格PR大屏字幕动态标题PR字幕模板
  6. Java手机号码归属地查询
  7. 鲁大师linux系统打印机驱动怎么安装,鲁大师如何安装打印机驱动 安装打印机驱动方法...
  8. Linux基础-字符设备
  9. uni-app框架+app端+ethers.js库+以太坊开发+常见错误
  10. 四十七、Vue路由导航卫视之实例解析