日期:2014-05-17  浏览次数:20728 次

java操作word模板? 在线等...
如题,公司要用程序打印一个出货单,

也就是按照他们给的模板动态的填写里面的内容...

小弟不知道用什么样的方法来完成...

请指教..本人在线等.....



------解决方案--------------------
fop 导出rtf格式的
------解决方案--------------------
是用java2word做的
也是模板
但是你要在你模板里标注你要填写的位置
比如 word中 姓名:张三 你要填写张三对吧
你就在word写 姓名:${bo.name} 当然这名称你自己定义
然后替换 ${bo.name} 为 张三 OK了
下面是我的代码 我用到了 java反射 你程序简单的话 可以省略

Java code
String inFile = fileUrl + "wordModel.doc";
        // 要报存的目标文件
        String tpFile = fileUrl + Date2.getDate() + Date2.getTime()
                + "wordModel.doc";
        Document doc;
        try {
            doc = new Document();
            doc.open(inFile);
            // java反射
            Class clazz = bfo.getClass();
            // Field[] fields = clazz.getDeclaredFields();// 所有属性
            Field[] fields = clazz.getDeclaredFields();
            //
            for (int i = 0; i < fields.length; i++) {
                if (fields[i].get(bfo) == null) {
                    doc.replaceAll("${" + fields[i].getName() + "}", "");
                } else {
                    doc.replaceAll("${" + fields[i].getName() + "}", fields[i]
                            .get(bfo).toString());
                }
            }
            doc.saveAs(tpFile);
            doc.close(false);
        } catch (Exception e1) {
            e1.printStackTrace();
        }
        try {
            Object obj = CommonUtil.downloadFileEx(tpFile);
            CommonUtil.downLoadFile(obj, fileName, "application/msword");
            File file = new File(tpFile);
            file.delete();
        } catch (Exception e) {
            e.printStackTrace();
        }

------解决方案--------------------
关键字:iText

最近刚做了一个iText套打PDF文件的prototype