Page Margins - plutext/docx4j-ImportXHTML GitHub Wiki

Overall page margins are specified in the standard docx4j object.

Example:

    public static WordprocessingMLPackage createDocxDocumentWithCustomMargins()
    {
        WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage(PageSizePaper.A4, false);

        ObjectFactory objectFactory = new ObjectFactory();
        SectPr.PgMar pageMargin = new SectPr.PgMar();
        pageMargin.setTop(getDocxMarginFromMillis(10));
        pageMargin.setBottom(getDocxMarginFromMillis(10));
        pageMargin.setRight(getDocxMarginFromMillis(10));
        pageMargin.setLeft(getDocxMarginFromMillis(10));
        SectPr sectPr = objectFactory.createSectPr();
        wordMLPackage.getMainDocumentPart().getJaxbElement().getBody().setSectPr(sectPr);
        sectPr.setPgMar(pageMargin);
    }

    public static BigInteger getDocxMarginFromMillis(int marginInMillis)
    {
        // 1440[docx-margin-unit] is 1[inch] = 2.54[cm]
        int marginInDocxUnit = UnitsOfMeasurement.mmToTwip(marginInMillis);
        return new BigInteger(String.valueOf(marginInDocxUnit));
    }