2015-02-03 6 views
0

Я знаю, что уже можно добавить изображение в документ Word, с помощью методаДобавление изображения в документ Word с помощью Apache POI

XWPFRun: addPicture(java.io.InputStream pictureData, int pictureType, java.lang.String filename, int width, int height) throws InvalidFormatException, java.io.IOException 

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

Есть ли способ вставить изображение с исходным размером или масштабировать пропорционально ???

ответ

0

Я использовал Apache POI в течение некоторого времени, и я не думаю, что можно добавить изображение в документ WORD без указания высоты и ширины.

Я всегда использую следующий код, чтобы получить размер изображения и, при необходимости, масштабировать его.

BufferedImage bi = ImageIO.read(new File(filename)); 
int width   = bi.getWidth(); 
int height   = bi.getHeight(); 
+0

я вижу ... Грустно, что не может работать для меня, так как я использую его на Google App Engine и классов AWT не поддерживается там. Таким образом, ручное масштабирование в сочетании с передачей фактической ширины/высоты изображения после него является единственным решением в конце концов. –

+0

Существуют библиотеки метаданных изображений, основанных на AWT, для Java - что произойдет, если вы попробуете один из них? – Gagravarr

0

Вы можете использовать Apache POI ImageUtils следующим образом:

Dimension dimension = ImageUtils.getImageDimension(imageInputStream, XWPFDocument.PICTURE_TYPE_JPEG); 
double width = dimension.getWidth(); 
double height = dimension.getHeight(); 
Смежные вопросы