簡體   English   中英

JAVA如何對word文件中的頁碼進行編號

[英]How do numbering of page in word file by JAVA

我如何通過 Java 對 word 文件中的頁面進行編號。

我正在使用 Apache POI 驅動程序來交互 JAVA 和 word 。 當我從 JAVA 創建文件時,我希望在我的 word 文件中也有邊框和頁碼。

請幫忙。

標記為重復的問題對相對簡單的問題有復雜的答案。

簡單的答案(頁碼)與這個答案非常相似: https : //stackoverflow.com/a/40264237/2296441 區別只是要插入哪個字段。 前面提到的答案顯示了如何插入TOC字段。 在您的情況下,您需要一個PAGE字段。

XWPFParagraph p;
...
// get or create your paragraph
....
CTP ctP = p.getCTP();
CTSimpleField page = ctP.addNewFldSimple();
page.setInstr("PAGE");
page.setDirty(STOnOff.TRUE);

注意: setDirty告訴 Word 更新字段,從而在打開文檔時打開對話框。 此對話框是 MS Word,確保您要更新該字段。 我認為您不能禁用對話框並仍然在打開時計算該字段。

要設置頁面邊框,您將不得不再次進入 CT 類。 在這種情況下,文檔中的適當位置是部分屬性。 下面是如何在整個頁面周圍設置雙線邊框,從頁面邊緣向后 24 點。

// Page Borders
CTDocument1 ctDoc = doc.getDocument();
CTBody ctBody = ctDoc.getBody();
CTSectPr ctSectPr = ctBody.isSetSectPr() ? ctBody.getSectPr() : ctBody.addNewSectPr();
CTPageBorders ctPgBorders = ctSectPr.isSetPgBorders() ? ctSectPr.getPgBorders() : ctSectPr.addNewPgBorders();
ctPgBorders.setOffsetFrom(STPageBorderOffset.PAGE);
CTBorder ctBorder = CTBorder.Factory.newInstance();
ctBorder.setVal(STBorder.DOUBLE);
ctBorder.setSpace(new BigInteger("24"));
ctPgBorders.setTop(ctBorder);
ctPgBorders.setBottom(ctBorder);
ctPgBorders.setRight(ctBorder);
ctPgBorders.setLeft(ctBorder);

免責聲明
POI 中的 MS-Word 功能在很大程度上仍未完成,可能會發生變化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM