【问题标题】:Apache POI: Word get picture dimensionsApache POI:Word 获取图片尺寸
【发布时间】:2014-04-22 11:46:34
【问题描述】:

我正在尝试使用来确定 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,如 documentation 中所述。 那么有没有其他方法可以获取文档中这些图片的实际大小呢?

【问题讨论】:

  • 如何将它们复制并保存到磁盘以通过其他方法操作它们?我担心它们是无法确定大小的矢量图形。
  • 好吧,如果我将它们保存为图像,我将无法再分辨它在 Word 中的大小。即使矢量图形在 Word 文档中也会有一定的大小。
  • 我想知道在知道布局大小之前是否需要将文档与某种形式的渲染器或打印预览相关联。 (对不起,我不能提供更多帮助)
  • 您是否尝试过迭代部分、段落和字符运行?文档表明这是获取真实图片列表的更好方法。 (不确定它是否会解决尺寸问题)
  • 不,我还没有,但我可以试试。但是我不认为这会产生太大影响。

标签: java apache-poi doc


【解决方案1】:

您可以求助于getDxaGoal(),而不是getHeight()getWidth()getDyaGoal()。这些代表twips 中缩放/裁剪之前图像的原始大小。

然后您可以将其与getVerticalScalingFactor() / 1000.0 相乘。 getHorizontalScalingFactor() / 1000.0 获取最终(渲染)大小。除以 1000.0 是必要的,因为这些比例因子是按千分计算的。

【讨论】:

    猜你喜欢
    • 2018-07-28
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    • 2012-01-24
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多