如何在Java中找到MS Word Document的页面大小,页面高度和宽度?

时间:2013-09-07 15:21:12

标签: java api apache-poi document

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

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

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

或者有没有更好的Java在Java中建议。

1 个答案:

答案 0 :(得分:4)

让我们假设您有简单的文档(.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");
    }
}