![](/img/trans.png)
[英]How to get color of text, word by word, in a Docx file using apache poi java
[英]Write a docx file using Apache POI Word JAVA
我正在使用Apache POI Word在Java中創建docx文件。
現在我正在使用以下代碼
XWPFDocument document = new XWPFDocument();
XWPFParagraph tmpParagraph = document.createParagraph();
XWPFRun tmpRun = tmpParagraph.createRun();
tmpRun.setText(newDocxData);
try {
document.write(new FileOutputStream(new File("C:\\test.docx")));
} catch (FileNotFoundException ex) {
Logger.getLogger(PersonnelFileHandlingStreamAttributesHandlerImpl.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(PersonnelFileHandlingStreamAttributesHandlerImpl.class.getName()).log(Level.SEVERE, null, ex);
}
但這將全文放在一個段落下。
但是我想將給定的字符串原樣放入文檔中。
我嘗試將字符串轉換為輸入流並在創建文檔時傳遞它
XWPFDocument document = new XWPFDocument(inputstream);
但這也會產生錯誤。 有什么解決辦法嗎?
這是我要編寫的字符串的示例。
10-伊利諾伊州紹姆堡-美國xxx 2018-06-28
就業證明
這是為了證明John目前在xxx擔任經理。
約翰從00年12月7日開始在xxx工作。
當前工資是每月SalaryPerMonth SalaryCurrencyCode,每周工作40小時的100%。
這里的問題是您要檢索一個字符串中的所有文本。 您應該使用“ getBodyElements”解析文檔中的所有body元素,然后遍歷所有這些元素並為每個元素啟動一個段落。 這是如何執行此操作的示例:
public static XWPFDocument MergeDocument(XWPFDocument source, XWPFDocument output){
for(IBodyElement element : source.getBodyElements()) {
if(element instanceof XWPFParagraph) {
XWPFParagraph paragraph = (XWPFParagraph)element;
if(paragraph.getStyleID()!=null){
XWPFStyles styles= output.createStyles();
XWPFStyles stylesdoc2= source.getStyles();
styles.addStyle(stylesdoc2.getStyle(paragraph.getStyleID()));
}
XWPFParagraph x= output.createParagraph();
x.setStyle(((XWPFParagraph) element).getStyle());
XWPFRun runx=x.createRun();
runx.setText(((XWPFParagraph) element).getText());
}
}
return output;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.