首页 > 解决方案 > 当我更改宽度时,itext 中的高度会发生变化

问题描述

当我改变宽度时,画布中的高度会发生变化。

ImageData data = ImageDataFactory.create("C:\\800px-Cubicpoly.png");

当我指定:

data.setWidth(100);
data.setHeight(180*2.834646f);

事实证明: 在此处输入图像描述

当我指定:

data.setWidth(600);
data.setHeight(180*2.834646f);

事实证明: 在此处输入图像描述

我没有触摸高度,为什么它会改变?

doc.add(new Image(data).setPadding(0).setMargins(0,0,0,0));

原始图像(800x800): 在此处输入图像描述

标签: javaitext7

解决方案


您尚未附上整个代码,但我想您使用的是默认页面大小 (A4)。考虑到 A4 页面的宽度为 595 pt(考虑到边距,它会更小)并且您将图像宽度设置为 600 pt,我假设您在处理代码时收到以下日志消息:com.itextpdf.layout.renderer.RootRenderer WARN Element does not fit current area.

这种面积不足是您以意想不到的方式处理图像的原因。只是为了确保您确定,请将文档的大小更改为更大的(例如,A3)并查看所有内容都按预期处理。

那么当无法在设定的区域处理图像时,iText 通常会做什么呢?iText会自动缩放它,试图占据尽可能多的位置,但要保留图像的比例。你说图像的高度正在改变:但宽度也是一样的。


推荐阅读