5

私はウェブアプリケーションを持っています。サーバー側で MS Word ドキュメントを xml 形式 (Word 2003 XML ドキュメント) で生成しました。ある種のビューアーを使用して、このドキュメントをクライアント側のユーザーに表示する必要があります。質問は、この問題を解決するためにどのライブラリを使用できるかということです。Java を使用してクライアント側で Word 文書を表示するには、API が必要です。

4

4 に答える 4

4

Java (またはその他の単純なテクノロジ) を使用して Web ページに 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 エンジンがクラッシュするか、メモリ リークが発生することです。このため、定期的に再起動してテストし、機能してメモリを占有していないことを確認するメカニズムが必要です。

于 2012-09-07T20:53:57.850 に答える
1

Apache POI - Java API to Handle Microsoft Word Filesを見たことがあるかもしれません。これは、あらゆる種類の Word ドキュメント (OLE2 および OOXML 形式、それぞれ .doc および .docx 拡張子) を読み取ることができます。

doc ファイルの読み取りは次のように簡単です。

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){}
}
}

詳細については、HWPF クイックガイド(具体的には HWPF 単体テスト)を参照してください。

POIサイトによると、次のことに注意してください。

HWPF はまだ開発の初期段階にあります。

于 2012-09-07T18:03:44.160 に答える
1

docx4all は、数年前に作成した Word 2007 XML (つまり、Word 2003 XML ではない) を処理する Swing ベースのアプレットです。

svnから取得します。

それが編集の可能なアプローチです。HTML や PDF に変換できないビューアーだけが必要ですか? そのためにdocx4jを使用できます。(開示:「私の」プロジェクト)。

于 2012-08-28T21:54:55.530 に答える
0

I'd suggest looking at the openoffice source code and implement that. It's supposed to be written in java.

于 2012-09-10T07:54:16.663 に答える