Просмотр.doc файл с java апплетом


У меня есть веб-приложение. Я сгенерировал документ MS Word в формате xml (Word 2003 XML Document) на стороне сервера. Мне нужно показать этот документ пользователю на стороне клиента с помощью какого-то средства просмотра. Итак, вопрос: какие библиотеки я могу использовать для решения этой проблемы? Мне нужен API для просмотра документа word на стороне клиента с помощью java.

4 5

4 ответа:

Вы не можете надежно отобразить документ Word на веб-странице с помощью Java (или любой другой простой технологии, если на то пошло). Существует несколько коммерческих библиотек для визуализации Word, но вы не найдете их легкими, дешевыми или надежными решениями.

Вам следует сделать следующее:

(1) Откройте Word engine на сервере с помощью программы .NET (2) преобразование документа в форматированный текст с помощью Word engine (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 либо выйдет из строя, либо произойдет утечка памяти. По этой причине вы должны иметь механизм для его периодического перезапуска и тестирования, чтобы убедиться, что он работает и не засоряет память.

Docx4all-это апплет на основе Swing, который делает Word 2007 XML (то есть не Word 2003 XML), который мы написали несколько лет назад.

Получить его из svn .

Это возможный подход для редактирования. Если все, что вам нужно-это просмотрщик, который не конвертируется в HTML или PDF? Для этого можно использовать docx4j. (Раскрытие информации:" мой " проект).

Вы можете взглянуть на Apache POI - Java API для обработки файлов Microsoft Word , который способен читать все виды документов word (форматы OLE2 и OOXML,.док и .расширения 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 все еще находится на ранней стадии разработки.

Я бы предложил посмотреть исходный код openoffice и реализовать его. Он должен быть написан на java.