在评论中,我声称您的原始图像确实有边框.你声称它没有边框.现在您已经分享了图像,我们可以检查事实,看看谁是对的.
事实证明,我是对的.当我在GIMP中打开图像时,我清楚地看到一个透明的边框:
也许你没有看到它,因为你正在看Paint中的图像,或者你认为“透明”和“白色”是相同的颜色.显然这种假设是错误的.
我创建了一个包含您共享图像的PDF,当我使用iText RUPS打开此PDF时,我看到如下内容:
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压平了图像.结果就是这张图片:
此图像不再具有透明边框,当您将其引入PDF时,不会显示边框,并且不会向PDF添加蒙版: