我最近一直在研究一个自动化系统,用来制作和打印要邮寄的信件。系统的工作原理如下:
- 我创建了一个文件,其中包含所有信息,并将一些内容替换为%…占位符。例如%名称、%日期等。
- 当我运行应用程序时,我可以从列表中选择一个名称,它会自动加载文档,用MySQL数据库提供的信息替换所有占位符,并打印出文档。出于测试的目的,我现在只是保存文档。
我在网上找到了一些教程,并找到了一个适合我需要的代码。不幸的是,这段代码只适用于2007年以前的Word版本(.doc文件)。我应该为2007+兼容性(.docx文件)更改什么?
public static void main(String[] args){
try{
FileInputStream fis = new FileInputStream("/Users/Jasper/Desktop/document.doc");
POIFSFileSystem fs = new POIFSFileSystem(fis);
HWPFDocument doc = new HWPFDocument(fs);
Range range = doc.getRange();
range.replaceText("%name", "Jasper");
range.replaceText("%age", "17");
FileOutputStream fos = new FileOutputStream("/Users/Jasper/Desktop/document2.doc");
doc.write(fos);
fis.close();
fos.close();
}catch(Exception e){
e.printStackTrace();
}
}
我使用这个解决方案来自动生成文档,它已经在生产中使用了一年多了。