`
jwinder
  • 浏览: 27225 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

如何解决POI生成WORD中文乱码问题?

    博客分类:
  • JAVA
阅读更多
需求:因为系统用户需要把合同,产品,证书导出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);
中文乱码问题。
分享到:
评论
1 楼 ap0406708 2010-08-23  
请问
HWPFDocument.write(out); 
的问题怎么解决?

相关推荐

    itext jar包组合-导出word文档案例,解决中文乱码问题

    本文将详细介绍如何使用iText Java库来创建、操作Word文档,并解决中文乱码的问题。 首先,我们需要理解iText库的核心功能。iText是一个开源的Java库,主要用于生成PDF和HTML文档,但通过一些扩展,它也可以用来...

    生成WORD freemarker导出WORD

    总结来说,“生成WORD freemarker导出WORD”项目提供了一种利用FreeMarker模板和Apache POI库生成Word文档的方法,解决了在实际开发中遇到的难题。通过学习和实践这个项目,开发者可以掌握动态生成Word文档的技术,...

    根据RTF模板生成WORD,WORD转PDF

    **解决FREEMARKER生成Word的问题** FREEMARKER是用于生成HTML、XML或其他文本格式的模板引擎,但直接生成Word文档可能存在兼容性问题,特别是当涉及到复杂格式和特殊字符时。可能出现的错误包括格式丢失、样式混乱...

    Java freemarker生成word文件

    - 模板文件的编码应与Java代码的编码一致,避免出现乱码问题。 - 谨慎处理模板中的动态内容,避免XSS攻击。 通过以上步骤,你可以使用Java FreeMarker成功生成Word文件。实际应用中,可以根据需求扩展模板和数据...

    poi-3.13读取word文档jar包

    此外,处理文档的编码问题也很重要,确保正确设置文件读写的编码,避免乱码问题。 总的来说,Apache POI为Java开发者提供了一套强大的工具,使得处理Word文档变得轻而易举。通过学习和熟练掌握Apache POI,你可以...

    ItextpdfboxPDFword生成和读取各种例子最详细的打包

    在这个压缩包中,你可能会找到一系列示例代码,展示了如何使用这两个库进行各种操作,包括读取PDF、解析PDF、生成PDF、生成Word文件以及解决中文乱码问题。 首先,让我们详细了解一下IText库。IText是一个开源的...

    word2pdfUtil.zip

    此工具的核心功能是通过调用开源库Apache POI来解析Word文档,并利用iText或PDFBox等库生成PDF文件。Apache POI是一个强大的API,能够读写Microsoft Office格式的文件,包括Word(.doc/.docx)。在处理Word文档时,...

    html转word,pdf

    以下将详细讲解如何使用iText、Apache POI以及pd4ml来实现这些转换,并着重解决中文乱码的问题。 首先,iText是一个Java库,主要用于创建和修改PDF文档。在将HTML转换为PDF时,iText可以通过解析HTML并将其内容转化...

    文件目录生成html 把WORD转HTML

    7. **编码问题**:确保Word文档的字符编码与HTML文件的编码一致,以防止乱码问题。 8. **自动化工具**:描述中提到的小工具就是一种自动化解决方案,它可以读取Word文档,解析其结构,然后生成HTML代码。这样的工具...

    POI批量导入导出

    在处理中文字符时,POI考虑到了Unicode编码问题,可以设置为双字节编码,从而正确处理中文字符,避免因编码问题导致的乱码。这使得POI在处理多语言环境,尤其是中文环境下的数据时,表现出良好的兼容性。 除了HSSF...

    Android word转html

    项目中可能包含了Word读取、HTML生成和Android显示的逻辑,可以作为学习和解决问题的参考。 6. **优化与注意事项** - 在转换过程中,注意保留原Word的样式信息,如字体、颜色、大小、对齐方式等,以便在HTML中正确...

    itext生成word需要的jar包

    `iText`是一个流行的开源库,它提供了在Java中创建和修改PDF文档的功能,同时也支持生成Word...不过,要注意,生成Word文档还有其他方法,比如使用Apache POI库直接操作Word的XML结构,这可能更适合复杂文档的编辑。

    POI导出表格

    接下来,我们讨论表格导出时URL链接定位中文乱码的问题。当在Excel中插入带有中文的超链接时,可能会出现乱码现象。这是由于Excel默认使用ISO-8859-1编码,而中文通常使用UTF-8编码。解决这个问题的方法是在创建...

    Java读取word文档内容并输出成网页(含图片,公式)

    Java POI库是Apache软件基金会开发的一个开源项目,专门用于处理Microsoft Office格式的文件,包括Word、Excel和PowerPoint等。在这个场景中,我们将重点讨论如何使用Java POI读取Word文档并将其内容转换为HTML网页...

    java开发word模板填充转PDF文件

    2.使用poi填充word报表标签及表格数据技术,解决标签替换不生效、不到位、替换错误,中文乱码等常见问题。 3.使用jacob操作com组件技术将word转为PDF文件,解决转换后部分中文丢失、乱码、表格丢失、转换后失真等...

    freemarker生成doc方案.pdf(内附代码下载地址)

    在实现Freemarker模板引擎生成Word文档的过程中,我们总结了一些问题和解决方案。比如,使用Freemarker生成Word文档时,需要特别注意图片在循环嵌套使用时的集合处理。另外,虽然doc格式的文档在2003-2007版本中使用...

    Html转Word(doc,docx),带样式以及图片

    转换过程中可能遇到的问题包括图片丢失、CSS样式不一致、特殊字符乱码等。处理这些问题需要深入理解HTML和Word的内在差异,并进行细致的错误检查和调整。 综上所述,HTML转Word的过程涉及多种技术,包括HTML解析、...

    Html转wordDemo和相关jar包

    5. 最后,使用PDF到Word转换工具(如Apache POI或其他第三方库)将生成的PDF转换为Word文档。 需要注意的是,这个过程可能会遇到编码问题,特别是处理中文字符时。iTextAsian扩展了iText,增强了对中文、日文和韩文...

    html转Word与PDFjar包与代码

    本篇文章将详细讲解如何使用Apache POI和pd4ml这两个Java库来实现这一目标,并解决在转换过程中可能出现的乱码问题。 Apache POI是Java社区开发的一个开源库,主要用于处理Microsoft Office格式的文件,如Word(....

    poi教程,用于java解析,excel文件转换

    - **中文乱码问题**:在处理包含中文字符的数据时,需要注意编码设置,确保文件保存时使用的编码与程序中设定的编码一致。 #### 七、总结 通过本文的介绍,我们不仅了解了Apache POI及其HSSF组件的基本概念和使用...

Global site tag (gtag.js) - Google Analytics