Я пытаюсь определить фактический размер встроенных изображений в документах MS Word, используя
HWPFDocument docB = new HWPFDocument(fileInputStream);
PicturesTable picB = docB.getPicturesTable();
List picturesB = picB.getAllPictures();
for (Object o : picturesB) {
Picture pic = (Picture) o;
int height = pic.getHeight();
int width = pic.getWidht();
}
Это отлично работает для некоторых изображений, но для других getHeight() и getWidth() возвращают только -1, как указано в документации. Так есть ли другой способ получить фактический размер этих изображений в документе?
Вместо getHeight()
и getWidth()
вы можете прибегнуть к getDxaGoal()
, соответственно. getDyaGoal()
. Они представляют собой исходный размер изображения до масштабирования/обрезки в twips.
Затем вы можете умножить это с помощью getVerticalScalingFactor()/1000.0
соответственно. getHorizontalScalingFactor()/1000.0
чтобы получить окончательный (визуализированный) размер. Подразделение на 1000,0 необходимо, поскольку эти коэффициенты масштабирования даны на миллион.