我正在使用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);
答案 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);