0

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

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

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

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

4

1 回答 1

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");
    }
}
于 2013-09-09T22:58:04.727 回答