2013-03-26 101 views
1

我有一个将Word文档转换为PDF的程序。转换后,我想在新PDF中查找所有图像。如果图像是特定尺寸(200x100),那么我想在其上绘制另一个图像。更好的是,如果我可以创建一个签名字段并在其上绘制。如何在PDF中查找图像并在其上绘制另一个图像

请帮忙吗?

回答

2

首先尝试这个例子:ExtractImages

我知道这个例子没有你所需要的,但看看所使用的MyImageRenderListener类。这是RenderListener接口的实现。

满足您的要求,你应该写自己RenderListener实现,更具体一个,让你的图像的坐标。 iText会通过ImageRenderInfo对象为您提供这些坐标,更具体地说是getCTM()方法返回的Matrix对象。这个矩阵可以用普通的高中代数来解释。 I31和I32给你X和Y的位置。在大多数情况下,I11和I22会为您提供宽度和高度(除非图像旋转)。

一旦你有X,Y,宽度和高度,绘制任何你想要的东西很容易。如果您想添加签名字段,请阅读我写的digital signatures manual

+0

谢谢。这是一个很好的起点。 – Haoest 2013-03-26 15:59:59

+0

嗨布鲁诺。我能够与XYHW非常接近。实际上,我可以通过获取索引6,7,0和4从getImageCTM获取这些值。但是,获得的宽度和高度值比实际图像小。两者都缩小了〜= 1.367的比例。如果我将图像作为单个文件写入磁盘,则尺寸是正确的;另外如果我使用调试器来观看图像信息,其专用字段也会显示正确的尺寸。 你是否推荐我使用反射来从私人领域读取,或者是否有某处我可以得到比率来乘以缩小值? – Haoest 2013-03-26 16:56:37

+0

我对这个问题感到困惑。我们必须通过一个例子来测试这个并找出哪里出了问题。请注意,提取图像的尺寸可能与页面上图像的尺寸不同。例如:尺寸为300 x 300像素的图像可以呈现为72 x 72点(分辨率300 dpi)的图像,而不管图像中存储的分辨率如何。 – 2013-03-27 07:32:47

相关问题