【问题标题】:How I can find the page size, page height and width of MS Word Document in Java? [closed]如何在 Java 中找到 MS Word 文档的页面大小、页面高度和宽度? [关闭]
【发布时间】:2015-04-06 05:41:56
【问题描述】:

我需要检查 word 文档的页面大小、高度和宽度。

我尝试使用 java POI API,但找不到解决方案。

如果有任何解决方案,请提出建议。

或者有没有更好的java API 请指教。

【问题讨论】:

  • 遗憾的是,我不在可以使用 API 的笔记本电脑上。我认为您应该使用调试器并查看当您通过getProperties 获取 POIXMLProperties 时可以使用哪些属性。也可以从XWPFDocument.getDocument()CTDocument1 获得一些东西,但我在这件事上找不到任何快速的javadoc

标签: java api apache-poi document


【解决方案1】:

假设您有简单的文档(.docx 格式),每个部分没有不同的布局,那么以下将为您提供页面大小(另请参阅 this blog entry 了解各种单位转换):

import org.apache.poi.openxml4j.opc.*;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;

public class DocxPageLayout {
    public static void main(String[] args) throws Exception {
        OPCPackage opc = OPCPackage.open("example.docx", PackageAccess.READ);
        XWPFDocument doc = new XWPFDocument(opc);
        opc.close();

        CTSectPr sectPr = doc.getDocument().getBody().getSectPr();
        if (sectPr == null) return;
        CTPageSz pageSize = sectPr.getPgSz();
        if (pageSize == null) return;

        double width_cm = Math.round(pageSize.getW().doubleValue()/20d/72d*2.54d*100d)/100d;
        double height_cm = Math.round(pageSize.getH().doubleValue()/20d/72d*2.54d*100d)/100d;

        System.out.println("width: "+width_cm+" cm; height: "+height_cm+" cm");
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 2014-05-30
    相关资源
    最近更新 更多