2014-04-22 56 views
1

我试图用的Apache POI:搭话图片后尺寸

 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(确定MS Word文档中嵌入图像的实际尺寸)会只返回-1,如documentation所述。 那么有没有其他方法可以在文档中获得这些图片的实际大小?

+0

复制它们并将它们保存到磁盘以通过另一种方法操作它们呢?我会担心它们是无法确定尺寸的矢量图形。 – Kieveli

+0

好吧,如果我将它们保存为图像,我将无法分辨Word中的大小。甚至矢量图形在Word文档中也会有一定的大小。 – silent

+0

我想知道是否需要在布局大小已知之前将文档与某种形式的渲染器或打印预览相关联。 (对不起,我不能更有帮助) – Kieveli

回答

0

而不是getHeight()getWidth()你可以求助于getDxaGoal(),分别。 getDyaGoal()。这些代表在缩放/修剪twips之前图像的原始尺寸。

然后,您可以将其与getVerticalScalingFactor()/1000.0分别相乘。 getHorizontalScalingFactor()/1000.0以获得最终(呈现)大小。除以1000.0是必要的,因为这些缩放因子是按千分之一给出的。