尝试设置图像字段时出现iText错误

时间:2012-12-11 15:07:30

标签: java itext

我正在使用iText 5.3.4并尝试设置图像字段,下面的代码是Bruno建议我使用但是我得到的错误“表达式的类型必须是数组类型但它解决了列表”。 我没有看到如何以api要求的方式编写代码的文档。 有没有人知道应该怎么写? 或者如何将图像发送到图像区域?

Rectangle rect = form.getFieldPositions(fieldName)[0].position;
int page = form.getFieldPositions(fieldName)[0].page;
image1.scaleAbsolute(rect.getWidth(), rect.getHeight());
img.setAbsolutePosition(rect.getLeft(), rect.getBottom());
stamper.getOverContent(page).addImage(img);

1 个答案:

答案 0 :(得分:1)

getFieldPositions的回复属于List<AcroFields.FieldPosition>类型,因此投诉有效。您应该使用.get(0)而不是[0]来引用集合中的第一项。

简单的重构可能是:

List<AcroFields.FieldPosition> positions = form.getFieldPositions(fieldName);
Rectangle rect = positions.get(0).position;
int page = positions.get(0).page;
image1.scaleAbsolute(rect.getWidth(), rect.getHeight());
img.setAbsolutePosition(rect.getLeft(), rect.getBottom());
stamper.getOverContent(page).addImage(img);