java itext 不要边框_java – itext – 添加没有边框的png图像

本文分析了在使用Java iText添加PNG图像到PDF时出现的边框问题。通过研究,发现原图实际上存在透明边框,iText将其正确转化为图像蒙版。PDF查看器因设备限制将透明边框表现为可见线条。解决方案是通过编辑工具如GIMP去除原始图像的透明边框,从而避免PDF中出现边框。
摘要由CSDN通过智能技术生成

在评论中,我声称您的原始图像确实有边框.你声称它没有边框.现在您已经分享了图像,我们可以检查事实,看看谁是对的.

事实证明,我是对的.当我在GIMP中打开图像时,我清楚地看到一个透明的边框:

Jgzvt.png

也许你没有看到它,因为你正在看Paint中的图像,或者你认为“透明”和“白色”是相同的颜色.显然这种假设是错误的.

我创建了一个包含您共享图像的PDF,当我使用iText RUPS打开此PDF时,我看到如下内容:

2uKoL.png

ISO-32000-1(又称PDF规范)不支持PNG,因此想要将PNG引入PDF文件的软件需要将该PNG转换为另一种格式.在iText的情况下,“普通”PNG被转换为带有filter / FlateDecode的位图.

在您的情况下,您有一个带透明度的PNG.在ISO-32000-1中,透明图像始终存储为两个图像:您有不透明图像(在我的屏幕截图中,/ Img1与对象编号2)和图像蒙版(在我的屏幕截图中,/ Img0与对象编号1 ).

如果仔细观察图像蒙版(使不透明图像透明的图像),您会发现它是一个黑白图像,显示非常小的边框.此图像显示在右下方的面板中,其中显示“Stream”(这是渲染图像流的位置).这个非常小的边框是我们也可以在GIMP(或其他支持透明图像的图像查看器)中看到的透明边框.

如果此边框是透明的,那么为什么在PDF查看器中看到它?好吧,这个边框被视为零宽度的线.在PDF查看器中,使用可用于查看PDF的设备上显示的最小宽度显示宽度为零的行.如果放大PDF,您会注意到线条的宽度保持不变.

总结:您声称您的图片没有任何边框,并且iText添加了边框.我已经证明你错了:图像确实有一个透明边框,iText正确地将这个透明边框作为蒙版引入. PDF查看器将此边框显示为符合ISO-32000-1的零宽度线.

您可以通过删除原始图像中的透明边框来解决您的问题.例如:我使用GIMP压平了图像.结果就是这张图片:

w5CMg.png

此图像不再具有透明边框,当您将其引入PDF时,不会显示边框,并且不会向PDF添加蒙版:

DTzNe.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值