Apache POI: Word получить размеры изображения

Я пытаюсь определить фактический размер встроенных изображений в документах 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, как указано в документации. Так есть ли другой способ получить фактический размер этих картинок в документе?

1 ответ

Вместо getHeight() а также getWidth() Вы можете прибегнуть к getDxaGoal() соответственно getDyaGoal(), Они представляют исходный размер изображения до масштабирования / кадрирования в два раза.

Затем вы можете умножить это на getVerticalScalingFactor() / 1000.0 соответственно getHorizontalScalingFactor() / 1000.0 получить окончательный (обработанный) размер. Деление на 1000.0 необходимо, потому что эти коэффициенты масштабирования приведены в промилле.

Другие вопросы по тегам