需求:因为系统用户需要把合同,产品,证书导出WORD。
设计:写好合同,产品,证书的模板,然后读取模板,写入WORD,最后弹出窗口让用户保存。
我写了二个方法,但是感觉方法一对以后的表单问题不能解决,而方法二我用POI实现生成WORD时出现乱码,这个不知道怎么解决,我已研究了一天了。还没有解决。
方法一:
[C:\\doc.doc]内容:
我是$[name];
Word.java-writeWord方法:
public void writeWord(HttpServletResponse response) {
String URL = "C:\\doc.doc";
File file = new File(URL);
try {
FileInputStream in = new FileInputStream(file);
POIFSFileSystem pfs = new POIFSFileSystem(in);
HWPFDocument hwpf = new HWPFDocument(pfs);
Range range = hwpf.getRange();
String str = range.text();
str = str.replace("$[name]", "黄锋");
System.out.println(str);
response.setCharacterEncoding("GB2312");
response.setContentType("application/ms-word");
response.setHeader("Content-disposition", "attachment; filename=1.doc");
PrintWriter out = response.getWriter();
out.println(str);
out.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
方法二:生成时出现乱码问题,待解决。
public void printWord(HttpServletResponse response) {
String URL = "C:\\test.doc";
File file = new File(URL);
try {
FileInputStream in = new FileInputStream(file);
POIFSFileSystem pfs = new POIFSFileSystem(in);
HWPFDocument hwpf = new HWPFDocument(pfs);
Range range = hwpf.getRange();
String str = FileKit.readFile("C:\\doc.text");
str = str.replace("$[name]", "黄锋");
System.out.println(str);
//str = StringKit.getISO8859ToGBK(str);
range.insertBefore(str);
response.setContentType("application/ms-word");
response.setHeader("Content-disposition", "attachment; filename=2.doc");
OutputStream out = response.getOutputStream();
hwpf.write(out);
out.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
现在需要解决的是
HWPFDocument.write(out);
中文乱码问题。
分享到:
相关推荐
本文将详细介绍如何使用iText Java库来创建、操作Word文档,并解决中文乱码的问题。 首先,我们需要理解iText库的核心功能。iText是一个开源的Java库,主要用于生成PDF和HTML文档,但通过一些扩展,它也可以用来...
总结来说,“生成WORD freemarker导出WORD”项目提供了一种利用FreeMarker模板和Apache POI库生成Word文档的方法,解决了在实际开发中遇到的难题。通过学习和实践这个项目,开发者可以掌握动态生成Word文档的技术,...
**解决FREEMARKER生成Word的问题** FREEMARKER是用于生成HTML、XML或其他文本格式的模板引擎,但直接生成Word文档可能存在兼容性问题,特别是当涉及到复杂格式和特殊字符时。可能出现的错误包括格式丢失、样式混乱...
- 模板文件的编码应与Java代码的编码一致,避免出现乱码问题。 - 谨慎处理模板中的动态内容,避免XSS攻击。 通过以上步骤,你可以使用Java FreeMarker成功生成Word文件。实际应用中,可以根据需求扩展模板和数据...
此外,处理文档的编码问题也很重要,确保正确设置文件读写的编码,避免乱码问题。 总的来说,Apache POI为Java开发者提供了一套强大的工具,使得处理Word文档变得轻而易举。通过学习和熟练掌握Apache POI,你可以...
在这个压缩包中,你可能会找到一系列示例代码,展示了如何使用这两个库进行各种操作,包括读取PDF、解析PDF、生成PDF、生成Word文件以及解决中文乱码问题。 首先,让我们详细了解一下IText库。IText是一个开源的...
此工具的核心功能是通过调用开源库Apache POI来解析Word文档,并利用iText或PDFBox等库生成PDF文件。Apache POI是一个强大的API,能够读写Microsoft Office格式的文件,包括Word(.doc/.docx)。在处理Word文档时,...
以下将详细讲解如何使用iText、Apache POI以及pd4ml来实现这些转换,并着重解决中文乱码的问题。 首先,iText是一个Java库,主要用于创建和修改PDF文档。在将HTML转换为PDF时,iText可以通过解析HTML并将其内容转化...
7. **编码问题**:确保Word文档的字符编码与HTML文件的编码一致,以防止乱码问题。 8. **自动化工具**:描述中提到的小工具就是一种自动化解决方案,它可以读取Word文档,解析其结构,然后生成HTML代码。这样的工具...
在处理中文字符时,POI考虑到了Unicode编码问题,可以设置为双字节编码,从而正确处理中文字符,避免因编码问题导致的乱码。这使得POI在处理多语言环境,尤其是中文环境下的数据时,表现出良好的兼容性。 除了HSSF...
项目中可能包含了Word读取、HTML生成和Android显示的逻辑,可以作为学习和解决问题的参考。 6. **优化与注意事项** - 在转换过程中,注意保留原Word的样式信息,如字体、颜色、大小、对齐方式等,以便在HTML中正确...
`iText`是一个流行的开源库,它提供了在Java中创建和修改PDF文档的功能,同时也支持生成Word...不过,要注意,生成Word文档还有其他方法,比如使用Apache POI库直接操作Word的XML结构,这可能更适合复杂文档的编辑。
接下来,我们讨论表格导出时URL链接定位中文乱码的问题。当在Excel中插入带有中文的超链接时,可能会出现乱码现象。这是由于Excel默认使用ISO-8859-1编码,而中文通常使用UTF-8编码。解决这个问题的方法是在创建...
Java POI库是Apache软件基金会开发的一个开源项目,专门用于处理Microsoft Office格式的文件,包括Word、Excel和PowerPoint等。在这个场景中,我们将重点讨论如何使用Java POI读取Word文档并将其内容转换为HTML网页...
2.使用poi填充word报表标签及表格数据技术,解决标签替换不生效、不到位、替换错误,中文乱码等常见问题。 3.使用jacob操作com组件技术将word转为PDF文件,解决转换后部分中文丢失、乱码、表格丢失、转换后失真等...
在实现Freemarker模板引擎生成Word文档的过程中,我们总结了一些问题和解决方案。比如,使用Freemarker生成Word文档时,需要特别注意图片在循环嵌套使用时的集合处理。另外,虽然doc格式的文档在2003-2007版本中使用...
转换过程中可能遇到的问题包括图片丢失、CSS样式不一致、特殊字符乱码等。处理这些问题需要深入理解HTML和Word的内在差异,并进行细致的错误检查和调整。 综上所述,HTML转Word的过程涉及多种技术,包括HTML解析、...
5. 最后,使用PDF到Word转换工具(如Apache POI或其他第三方库)将生成的PDF转换为Word文档。 需要注意的是,这个过程可能会遇到编码问题,特别是处理中文字符时。iTextAsian扩展了iText,增强了对中文、日文和韩文...
本篇文章将详细讲解如何使用Apache POI和pd4ml这两个Java库来实现这一目标,并解决在转换过程中可能出现的乱码问题。 Apache POI是Java社区开发的一个开源库,主要用于处理Microsoft Office格式的文件,如Word(....
- **中文乱码问题**:在处理包含中文字符的数据时,需要注意编码设置,确保文件保存时使用的编码与程序中设定的编码一致。 #### 七、总结 通过本文的介绍,我们不仅了解了Apache POI及其HSSF组件的基本概念和使用...