导包 aspose-words-15.8.0-jdk16.jar
java
Map<String, String> map = new HashMap<>();
map.put("name", "1231");
try {
ClassPathResource classPathResource = new ClassPathResource("文档.docx");
InputStream in = classPathResource.getInputStream();
XWPFDocument document = new XWPFDocument(in);
Iterator<XWPFParagraph> itPara = document.getParagraphsIterator();
while (itPara.hasNext()) {
XWPFParagraph paragraph = (XWPFParagraph) itPara.next();
Set<String> set = map.keySet();
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
String key = iterator.next();
List<XWPFRun> run=paragraph.getRuns();
for(int i=0;i<run.size();i++)
{
System.out.println(run.get(i));
if(run.get(i).getText(run.get(i).getTextPosition())!=null &&
run.get(i).getText(run.get(i).getTextPosition()).equals(key))
{
run.get(i).setText(map.get(key),0);
}
}
}
}
Iterator<XWPFTable> itTable = document.getTablesIterator();
while (itTable.hasNext()) {
XWPFTable table = (XWPFTable) itTable.next();
int count = table.getNumberOfRows();
for (int i = 0; i < count; i++) {
XWPFTableRow row = table.getRow(i);
List<XWPFTableCell> cells = row.getTableCells();
for (XWPFTableCell cell : cells) {
for (Map.Entry<String, String> e : map.entrySet()) {
if (cell.getText().equals(e.getKey())) {
cell.removeParagraph(0);
cell.setText(e.getValue());
}
}
}
}
}
FontSettings.getDefaultFontName();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
document.write(baos);
ByteArrayInputStream in1 = new ByteArrayInputStream(baos.toByteArray());
Document doc = new Document(in1);
SaveOutputParameters save = doc.save(baos, SaveFormat.PDF);
} catch (Exception e) {
e.printStackTrace();
}