【PDF添加印章】Java在PDF中添加指定尺寸大小的图片印章
文章目录
- 需求
- 问题
- 解决
需求
需要在导出PDF时,添加指定大小为 4cm × 4cm
大小的图片印章
问题
客户提供的图片由 PhotoShop 导出,尺寸大小为 4cm × 4cm
,按说使用 itext 添加到 PDF 文件时,只需要保持 100%
缩放就能保证打印出预期的效果。
FileOutputStream outputStream = new FileOutputStream("a.pdf");Document document = new Document();PdfWriter writer = PdfWriter.getInstance(document, outputStream);document.open();writer.getDirectContent();Image image = Image.getInstance("stamp.png");image.scalePercent(100);document.add(image);document.close();
但是,实际预览时,印章大约为预期效果的两倍,已经快有半张纸的大小了
解决
查阅资料发现,iext 默认的 DPI(每英寸像素)为 72
,而客户提供的图片尺寸虽然为 40mm × 40mm
,但为了保持图像清晰,DPI 设置了 144
,这也就能解释为什么印章实际预览效果为原图的两倍了。
于是,我们使用 Image
的 scaleAbsolute
方法,通过计算来精确设置打印大小:
/*** 每英寸的像素*/public static final float DPI = 72f;/*** 每毫米像素(1英寸=25.4毫米)*/public static final float DPMM = DPI / 25.4f;public static void main(String[] args) throws IOException, DocumentException {FileOutputStream outputStream = new FileOutputStream("a.pdf");Document document = new Document();PdfWriter writer = PdfWriter.getInstance(document, outputStream);document.open();writer.getDirectContent();Image image = Image.getInstance("stamp.png");// 设置印章大小为 40mm × 40mmimage.scaleAbsolute(40 * DPMM, 40 * DPMM);document.add(image);document.close();}
这样就得到了最终想要的 4cm × 4cm
大小
【PDF添加印章】Java在PDF中添加指定尺寸大小的图片印章相关推荐
- java窗体中添加图片_在java窗体程序中添加图片的方法
在java窗体程序中添加图片的方法 发布时间:2020-06-16 11:24:13 来源:亿速云 阅读:148 作者:Leah 这篇文章主要为大家详细介绍了在java窗体程序中添加图片的方法,图文详 ...
- R语言ggplot2在可视化图像中添加横线并在横线中添加文本、为横线中添加的文本添加文本框、自定义文本框的填充色(background color for a text annotation)
R语言ggplot2在可视化图像中添加横线并在横线中添加文本.为横线中添加的文本添加文本框.自定义文本框的填充色(background color for a text annotation) 目录
- java数组元素序号,Java在数组中查找指定元素
Java在数组中查找指定元素 以下实例演示了如何使用 contains () 方法来查找数组中的指定元素: Main.java 文件 import java.util.ArrayList; publi ...
- 将页面中的指定 div 下载为图片
文章目录 1. 下载页面div为本地图片 2. 下载页面 div 为本地图片并添加水印 1. 下载页面div为本地图片 要将页面中的指定 div 下载为图片,可以使用 JavaScript 的 htm ...
- Java 在PPT中添加SmartArt图形
SmartArt图形是信息和观点的视觉表示形式,它具有强大的文字转图示功能及排版功能.本文将演示如何使用Java代码在幻灯片中创建SmartArt图形并自定义布局. 使用工具:Free Spire.P ...
- java在Excel中添加png图片作为页眉(已解决)
1.背景 Excel在打印的时候需要附带水印打出,水印需要在下载Excel文件时就设置好 需要在打印的时候打印出水印,使用添加背景添加的水印在打印的时候不会出现,只有设置页眉,并将页眉设置为一长与打印 ...
- Word处理控件Aspose.Words功能演示:使用 Java 在 Word 中添加或更新目录
Word 文档中的目录(TOC) 为您提供了文档内容的概述.此外,它还允许导航到文档的特定部分.在本文中,将学习如何以编程方式处理 Word 文档中的目录.特别地,本文介绍了如何使用 Java 在 W ...
- eclipse给mysql修改表数据_Eclipse中java向数据库中添加数据,更新数据,删除数据...
ASP.NET网页动态添加.更新或删除数据行 看过此篇 http://www.cnblogs.com/insus/p/3247935.html的网友,也许明白Insus.NET是怎样实现动态添加数据行 ...
- Java数据结构 栈中添加辅助栈实现min函数
栈中添加辅助栈实现min函数 class MinStack {Stack<Integer> A, B;public MinStack() {A = new Stack<>(); ...
最新文章
- matplotlib命令与格式:图像(figure)与子区域(axes)布局与规划
- codevs 1531 山峰
- window10 android-ndk-r10d 编译ffmpeg 3.4
- SQL Server2019数据库查询所有数据库名、表名、表结构、表字段、主键方法演示,执行sql提示对象名‘user_tab_columns‘、 ‘user_cons_columns‘ 无效问题解决
- 2017 OWASP十大安全趋势榜单变化解析
- .NET连接MySQL数据库方法
- Refusing to install package with name “vue-i18n“ under a package
- 实战!阿里神器 Seata 实现 TCC模式 解决分布式事务,真香!
- 404为什么是404?
- 微星主板节能模式怎么关闭_技嘉小雕、微星迫击炮、华硕电竞特工三款主板对比...
- PHP表格数据Excel转图片输出通用方法,列可自动拓展
- 智齿调用a标签时触发绑定事件
- 51系列、arduino、stm32系列驱动DAC模块TLC5615输出指定电压(可修改为波形输出)
- arcgis html图像标记,图片标记
- 数据库 之带子查询的操作--插入子查询结果、带子查询的修改语句、带子查询的删除语句
- CentOS 7 LVM创建与使用
- dede taglist模板中调用自定义字段
- c#实现控制打印机并绘图
- 亚马逊、Lazada、ebay、速卖通、shopee、敦煌、mercari、沃尔玛、测评(补单)自养号技术篇(论ip的重要性)
- 02.08_学习Java的day25(详解)