Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java小程序查看.doc文件_Java_Ms Word_Applet - Fatal编程技术网

使用java小程序查看.doc文件

使用java小程序查看.doc文件,java,ms-word,applet,Java,Ms Word,Applet,我有一个web应用程序。我已经在服务器端生成了xml格式的MS Word文档(Word 2003 xml文档)。我需要使用某种查看器在客户端向用户显示此文档。所以,问题是:我可以使用什么库来解决这个问题?我需要一个API来使用java在客户端查看word文档。docx4all是一个基于Swing的小程序,它可以处理我们几年前编写的word 2007 XML(即不是word 2003 XML) 从我这里得到它 这是一种可能的编辑方法。如果您只需要一个查看器,而不转换为HTML或PDF?您可以使用d

我有一个web应用程序。我已经在服务器端生成了xml格式的MS Word文档(Word 2003 xml文档)。我需要使用某种查看器在客户端向用户显示此文档。所以,问题是:我可以使用什么库来解决这个问题?我需要一个API来使用java在客户端查看word文档。

docx4all是一个基于Swing的小程序,它可以处理我们几年前编写的word 2007 XML(即不是word 2003 XML)

从我这里得到它


这是一种可能的编辑方法。如果您只需要一个查看器,而不转换为HTML或PDF?您可以使用docx4j来实现这一点。(披露:“我的”项目)。

您可以看看,它可以读取各种word文档(分别是OLE2和OOXML格式、.doc和.docx扩展名)

读取文档文件很容易,如下所示:

import java.io.*;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;

public class ReadDocFile {
public static void main(String[] args) {
File file = null;
WordExtractor extractor = null ;
try {

file = new File("c:\\New.doc");
FileInputStream fis=new FileInputStream(file.getAbsolutePath());
HWPFDocument document=new HWPFDocument(fis);
extractor = new WordExtractor(document);
String [] fileData = extractor.getParagraphText();
for(int i=0;i<fileData.length;i++){
if(fileData[i] != null)
System.out.println(fileData[i]);
}
}
catch(Exception exep){}
}
}
import java.io.*;
导入org.apache.poi.hwpf.hwpf文档;
导入org.apache.poi.hwpf.extractor.WordExtractor;
公共类ReadDocFile{
公共静态void main(字符串[]args){
File=null;
WordExtractor-extractor=null;
试一试{
文件=新文件(“c:\\new.doc”);
FileInputStream fis=新的FileInputStream(file.getAbsolutePath());
HWPF文件=新的HWPF文件(fis);
提取器=新单词提取器(文档);
String[]fileData=extractor.getParagraphText();

对于(int i=0;i您无法使用Java(或任何其他简单的技术)在网页中可靠地显示Word文档。有几个商业库可以呈现Word,但您不会发现这些是简单、廉价或可靠的解决方案

您应该做以下几点:

(1) 使用.NET程序在服务器上打开Word引擎 (2) 使用Word引擎将文档转换为富文本 (3) 使用RTF Swing小部件或转换为HTML显示富文本:

String rtf = [your document rich text];
BufferedReader input = new BufferedReader(new StringReader(rtf));

RTFEditorKit rtfKit = new RTFEditorKit();
StyledDocument doc = (StyledDocument) rtfKit.createDefaultDocument();
rtfEdtrKt.read( input, doc, 0 );
input.close();

HTMLEditorKit htmlKit = new HTMLEditorKit();       
StringWriter output = new StringWriter();
htmlKit.write( output, doc, 0, doc.getLength());

String html = output.toString();

这种方法的主要风险是Word引擎可能会崩溃或内存泄漏。因此,您必须有一种机制定期重新启动它,并对其进行测试,以确保其功能正常且不会占用内存。

我建议查看openoffice源代码并实现它。
它应该是用java编写的。

既然服务器端代码生成了报告,为什么不将其生成为HTML并显示在
JEditorPane
browser选项卡中呢?因为任务是生成文档报告,必要时可以用ms word打开。如果用户想用ms word打开它,请将word文档直接推到浏览器中使用适当的内容类型。(注意,在这个框中,它将由Open Office加载。)如果用户希望首先预览它,请将其生成为HTML并在浏览器中显示。我正在从模板文档生成报告,该文档本身就是ms word xml文档。我正在替换一些占位符(使用简单的String.replaceAll()方法)使用数据库中的实际数据。我无法生成html,因为我真的不知道此报表中包含什么。如果我理解正确,docx4j可以通过小程序查看xml文档文件?是否可以使用jasperreport的JRViewer类查看文档文件?不是一个选项。我完全需要文档文件查看器(客户端要求)它应该可以使用word 2003 xml格式(我们的模板实现,因为我们没有找到任何合适的库来处理常用的二进制文档文件)。我需要编写文档文件。
POI
不适用于此。