Java 按钮字段中的旋转图像无效

Java 按钮字段中的旋转图像无效,java,itext,Java,Itext,我正在使用com.itextpdf.text.Image。我有2个图像,我想把它放到一个模板pdf的特定字段。 我可以将图像放入pdf,但如果图像宽度>高度,我想旋转它。我尝试过这个,但它不工作-没有错误,但在输出的pdf图像没有按预期旋转 Image a = Image.getInstance(front); if(a.getWidth()>a.getHeight()) { a.setRotationDegrees(90); a.setAbsolutePosition(

我正在使用com.itextpdf.text.Image。我有2个图像,我想把它放到一个模板pdf的特定字段。 我可以将图像放入pdf,但如果图像宽度>高度,我想旋转它。我尝试过这个,但它不工作-没有错误,但在输出的pdf图像没有按预期旋转

Image a = Image.getInstance(front);
if(a.getWidth()>a.getHeight()) {
    a.setRotationDegrees(90); 
    a.setAbsolutePosition(0, 0);
}

PdfReader reader = new PdfReader("C:/Users/Desktop/Template.pdf");  
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("C:/Users/Desktop/out.pdf")); 
AcroFields form = stamper.getAcroFields();

PushbuttonField ad = form.getNewPushbuttonFromField("Front");
ad.setLayout(PushbuttonField.LAYOUT_ICON_ONLY);
ad.setProportionalIcon(true);
ad.setImage(a);
form.replacePushbuttonField("Front", ad.getField());

stamper.setFormFlattening(true);
stamper.close();
reader.close();
奇怪,但是

img.setRotationDegrees(90);
pushbuttonField.setImage(img);
不在按钮字段内旋转图像。所以我用PdfTemplate做了


作为输出-旋转图像在按钮字段中按比例缩放。

在ad1.setImageb;行中;,B从何处开始?你应该从示例中删除所有无关紧要的代码,这将使理解你的问题变得更容易。我不这么认为,我还尝试旋转模板第一个图像的PushbuttonField字段,这样做第一个图像有效地旋转了,但字段也旋转了,这也改变了我的第二张图片的位置。@LizLamperouge我们是想解决你的图片旋转问题,还是你不成功的PushbuttonField旋转?如果是图像,那么请按照javahippie的要求做。我不想旋转PushbuttonField,但是我想放在上面的图像,我已经尝试旋转PushbuttonField只是为了测试。
PdfReader reader = new PdfReader("D://testPdf.pdf");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("D://stamperPdf.pdf"));
AcroFields form = stamper.getAcroFields();

// get Image and rotate it
Image img = Image.getInstance("D://testImg.png");
img.setRotationDegrees(90);
img.setAbsolutePosition(0, 0);

// create template with scaled width and height
PdfTemplate tp = PdfTemplate.createTemplate(stamper.getWriter(), img.getScaledWidth(),
                                            img.getScaledHeight());
tp.addImage(img);


PushbuttonField field = form.getNewPushbuttonFromField("Field");
field.setLayout(PushbuttonField.LAYOUT_ICON_ONLY);
field.setProportionalIcon(true);
field.setTemplate(tp);  // set template with image to field
form.replacePushbuttonField("Field", field.getField());