实际的项目需求中同样也会遇到合并word文件的情况,在此分两种情况分别介绍一下使用PageOffice解决此需求的实现方法。
1.把多个word文档分别插入到模板中指定数据区域生成一个Word文档。
首先介绍一下DataRegion的Value属性,如果给Value赋值一个字符串常量或变量,那么数据区域的内容就是这段文本;如果给Value赋值一个”[Word]”开头,”[/Word]”结尾的字符串常量或变量,PageOffice会认为[Word]和 [/Word]之间是另外的一个word文档的URL路径,PageOffice会自动的把这个word文档的整个内容插入到数据区域所在位置。
ASP.NET的代码:
doc.OpenDataRegion("PO_dr ").Value = "[Word]doc/001.doc[/Word]";
JAVA的代码:
doc.openDataRegion("PO_dr").setValue(“[Word]doc/001.doc[/Word]”);
实现插入多个文档到模板中指定的数据区域,只需要重复的对各个数据区域赋值对应的文档URL路径值。
2.把多个Word文档前后相连合并成一个文档的。
实现多个Word文件的连接,推荐使用给数据区域赋值“[Word] 文档下载路径[/Word]” 的方法,利用PageOffice.WordWriter.WordDocument对象的CreateDataRegion方法在文件的末尾连续创建数据区域,然后依次给各个数据区域赋值要插入的Word文档的URL路径。比如要合并doc目录下的1.doc、2.doc和3.doc到一个文件中。
ASP.NET的实现代码:
PageOffice.WordWriter.WordDocument doc = new PageOffice.WordWriter.WordDocument();
PageOffice.WordWriter.DataRegion dr1 = doc.CreateDataRegion("PO_dr1",
PageOffice.WordWriter.DataRegionInsertType.After, "[End]");
dr1.Value = "[Word]doc/1.doc[/Word]";
PageOffice.WordWriter.DataRegion dr2 = doc.CreateDataRegion("PO_dr2",
PageOffice.WordWriter.DataRegionInsertType.After, "[End]");
dr2.Value = "[Word]doc/2.doc[/Word]";
PageOffice.WordWriter.DataRegion dr3 = doc.CreateDataRegion("PO_dr3",
PageOffice.WordWriter.DataRegionInsertType.After, "[End]");
dr3.Value = "[Word]doc/3.doc[/Word]";
……
PageOfficeCtrl1.SetWriter(doc);
JAVA的实现代码:
WordDocument doc = new WordDocument();
DataRegion dr1= doc.createDataRegion("PO_dr1", DataRegionInsertType.After, "[End]");
dr1.setValue("[Word]doc/1.doc[/Word]");
DataRegion dr2= doc.createDataRegion("PO_dr2", DataRegionInsertType.After, "[End]");
dr2.setValue("[Word]doc/2.doc[/Word]");
DataRegion dr3= doc.createDataRegion("PO_dr3", DataRegionInsertType.After, "[End]");
dr3.setValue("[Word]doc/3.doc[/Word]");
……
poCtrl1.setWriter(doc);