如何在 Java 中找到 MS Word 文档的页面大小、页面高度和宽度?

Mah*_*dar 0 java api document apache-poi

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

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

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

或者在java中有没有更好的API请建议。

kiw*_*ngs 5

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

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");
    }
}
Run Code Online (Sandbox Code Playgroud)