我正在使用PdfStamper getOverContent(),所以我可以使用Identity类型的AffineTransform将图像添加到输出PDF文件 .
PdfContentByte content = stamper.getOverContent(1);
data.image.setAbsolutePosition(desc.X,desc.Y);
content.addImage(data.image,desc.transform);
//content.addImage(data.image);
如果我使用没有变换的注释行,它可以完美地将图像添加到生成的PDF中,但是使用AffineTransform(setToIdentity())它不会显示 .
有人可以帮助我吗?我打算使用更复杂的转换,但Identity应该先工作......
编辑(从无效答案复制)
我删除了对setAbsolutePosition的调用并使用了setToIdentity()作为唯一的转换而图像没有显示...然后添加了setToTranslation(X,Y),其中X和Y是在我做的成功案例中使用的相同值不要将转换作为第二个参数,但它仍然不显示图像 . 是否有一个例子将AffineTransform作为PdfContentByte addImage()调用的参数使用AffineTransform作为参数?我已经买了你的书但不能鳍 .
1 回答
我已经检查了你的问题,我很确定你的图像被添加了 . 但是:您无法看到它,因为图像的尺寸是1个用户单位乘以1个用户单位 .
我举了一个例子来告诉你如何解决这个问题:AddImageAffineTransform
在本例中,我从翻译开始:左边框有36个用户单元,底部有300个用户单元 . 如果我要使用这个变换添加图像,我会在这些坐标处添加图像,但是用肉眼看它太小了 .
为了确保图像可见,我连接了一个缩放比例,将图像缩放到X方向的宽度和Y方向的高度 .