文章目录

  • 需求
  • 问题
  • 解决

需求

需要在导出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,这也就能解释为什么印章实际预览效果为原图的两倍了。

于是,我们使用 ImagescaleAbsolute 方法,通过计算来精确设置打印大小:

 /*** 每英寸的像素*/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中添加指定尺寸大小的图片印章相关推荐

  1. java窗体中添加图片_在java窗体程序中添加图片的方法

    在java窗体程序中添加图片的方法 发布时间:2020-06-16 11:24:13 来源:亿速云 阅读:148 作者:Leah 这篇文章主要为大家详细介绍了在java窗体程序中添加图片的方法,图文详 ...

  2. R语言ggplot2在可视化图像中添加横线并在横线中添加文本、为横线中添加的文本添加文本框、自定义文本框的填充色(background color for a text annotation)

    R语言ggplot2在可视化图像中添加横线并在横线中添加文本.为横线中添加的文本添加文本框.自定义文本框的填充色(background color for a text annotation) 目录

  3. java数组元素序号,Java在数组中查找指定元素

    Java在数组中查找指定元素 以下实例演示了如何使用 contains () 方法来查找数组中的指定元素: Main.java 文件 import java.util.ArrayList; publi ...

  4. 将页面中的指定 div 下载为图片

    文章目录 1. 下载页面div为本地图片 2. 下载页面 div 为本地图片并添加水印 1. 下载页面div为本地图片 要将页面中的指定 div 下载为图片,可以使用 JavaScript 的 htm ...

  5. Java 在PPT中添加SmartArt图形

    SmartArt图形是信息和观点的视觉表示形式,它具有强大的文字转图示功能及排版功能.本文将演示如何使用Java代码在幻灯片中创建SmartArt图形并自定义布局. 使用工具:Free Spire.P ...

  6. java在Excel中添加png图片作为页眉(已解决)

    1.背景 Excel在打印的时候需要附带水印打出,水印需要在下载Excel文件时就设置好 需要在打印的时候打印出水印,使用添加背景添加的水印在打印的时候不会出现,只有设置页眉,并将页眉设置为一长与打印 ...

  7. Word处理控件Aspose.Words功能演示:使用 Java 在 Word 中添加或更新目录

    Word 文档中的目录(TOC) 为您提供了文档内容的概述.此外,它还允许导航到文档的特定部分.在本文中,将学习如何以编程方式处理 Word 文档中的目录.特别地,本文介绍了如何使用 Java 在 W ...

  8. eclipse给mysql修改表数据_Eclipse中java向数据库中添加数据,更新数据,删除数据...

    ASP.NET网页动态添加.更新或删除数据行 看过此篇 http://www.cnblogs.com/insus/p/3247935.html的网友,也许明白Insus.NET是怎样实现动态添加数据行 ...

  9. Java数据结构 栈中添加辅助栈实现min函数

    栈中添加辅助栈实现min函数 class MinStack {Stack<Integer> A, B;public MinStack() {A = new Stack<>(); ...

最新文章

  1. matplotlib命令与格式:图像(figure)与子区域(axes)布局与规划
  2. codevs 1531 山峰
  3. window10 android-ndk-r10d 编译ffmpeg 3.4
  4. SQL Server2019数据库查询所有数据库名、表名、表结构、表字段、主键方法演示,执行sql提示对象名‘user_tab_columns‘、 ‘user_cons_columns‘ 无效问题解决
  5. 2017 OWASP十大安全趋势榜单变化解析
  6. .NET连接MySQL数据库方法
  7. Refusing to install package with name “vue-i18n“ under a package
  8. 实战!阿里神器 Seata 实现 TCC模式 解决分布式事务,真香!
  9. 404为什么是404?
  10. 微星主板节能模式怎么关闭_技嘉小雕、微星迫击炮、华硕电竞特工三款主板对比...
  11. PHP表格数据Excel转图片输出通用方法,列可自动拓展
  12. 智齿调用a标签时触发绑定事件
  13. 51系列、arduino、stm32系列驱动DAC模块TLC5615输出指定电压(可修改为波形输出)
  14. arcgis html图像标记,图片标记
  15. 数据库 之带子查询的操作--插入子查询结果、带子查询的修改语句、带子查询的删除语句
  16. CentOS 7 LVM创建与使用
  17. dede taglist模板中调用自定义字段
  18. c#实现控制打印机并绘图
  19. 亚马逊、Lazada、ebay、速卖通、shopee、敦煌、mercari、沃尔玛、测评(补单)自养号技术篇(论ip的重要性)
  20. 02.08_学习Java的day25(详解)

热门文章

  1. android 获取textview的高度,Android TextView 高度问题
  2. s5pv210-Linux驱动之ME3760
  3. JAVA后端程序员英文-自我介绍
  4. 关于魅族note无法连接mac调试
  5. centos 挂载 onedirve
  6. 有趣的递归缩写(Recursive acronym)
  7. Elasticsearch数据结构——倒排索引
  8. 三角形的塔叫什么名字_疯狂猜图城市一个类似三角形的塔天空三朵白云答案
  9. 合并两个有序链表——递归与迭代
  10. vscode如何查看修改过的部分_VS Code 使用小技巧