gpt4 book ai didi

java - 在 PushbuttonField 中旋转图像不起作用

转载 作者:行者123 更新时间:2023-12-02 13:08:18 24 4
gpt4 key购买 nike

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

不在 PushbuttonField 内旋转图像。所以我用 PdfTemplate 做到了。

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());

作为输出 - 在 PushbuttonField 中按比例缩放的旋转图像。

关于java - 在 PushbuttonField 中旋转图像不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44063824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com