Когда я изменяю ширину, высота изменяется в itext - PullRequest
0 голосов
/ 07 апреля 2019

Когда я изменяю ширину, высота меняется на холсте.

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

когда я указываю:

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

Получается: enter image description here

когда я указываю:

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

Получается: enter image description here

Я не касаюсь высотыпочему он меняется?

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

оригинал img (800x800): enter image description here

1 Ответ

0 голосов
/ 08 апреля 2019

Вы не приложили весь код, но я полагаю, что вы используете размер страницы по умолчанию (A4). Принимая во внимание, что ширина страницы А4 составляет 595 пт (учитывая поля, она будет еще меньше), и вы устанавливаете ширину изображения равной 600 пт, я предполагаю, что при обработке кода вы получите следующее сообщение журнала: com.itextpdf.layout.renderer.RootRenderer WARN Element does not fit current area.

Этот недостаток области является причиной, по которой вы обрабатываете изображение неожиданным образом. Просто чтобы убедиться, измените размер документа на больший (например, A3) и убедитесь, что все обрабатывается, как и ожидалось.

Так что же обычно делает iText, когда невозможно обработать изображение в заданной области? iText автоматически масштабирует , пытаясь занять как можно больше места, но сохранить пропорции изображения. Вы сказали, что высота изображения меняется, но то же самое относится и к ширине.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...