2014-04-22 54 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是必要的,因爲這些縮放因子是按千分之一給出的。