java - 当我更改宽度时,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));
解决方案
您尚未附上整个代码,但我想您使用的是默认页面大小 (A4)。考虑到 A4 页面的宽度为 595 pt(考虑到边距,它会更小)并且您将图像宽度设置为 600 pt,我假设您在处理代码时收到以下日志消息:com.itextpdf.layout.renderer.RootRenderer WARN Element does not fit current area.
这种面积不足是您以意想不到的方式处理图像的原因。只是为了确保您确定,请将文档的大小更改为更大的(例如,A3)并查看所有内容都按预期处理。
那么当无法在设定的区域处理图像时,iText 通常会做什么呢?iText会自动缩放它,试图占据尽可能多的位置,但要保留图像的比例。你说图像的高度正在改变:但宽度也是一样的。
推荐阅读
- wpf - WPF 文本块工具提示不换行
- javascript - Oracle JET - 使用 JSON 数据创建图表
- hive - 创建 hive 表时要使用的分隔符
- user-interface - JavaFX:禁用 ToggleGroup 中的所有按钮
- ios - iOS:如何用容器视图覆盖状态栏
- c# - 当鼠标指针进入 MenuflyoutSubItem 元素时会触发什么事件?
- vue.js - Font Awesome 无法使用 vue 正确更新
- assembly - x86 汇编器 putchar 是否需要堆栈中的地址?
- javascript - 定期将javascript客户端数据保存到服务器数据库并保持同步的最佳方法?
- arrays - json 模式 - 父数组(对象数组)项目有一个内部数组(基元数组)具有给定值