Просмотр файла .doc с помощью Java-апплета

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

 Andrew Thompson27 авг. 2012 г., 15:31
Учитывая, что код на стороне сервера генерирует отчет, почему бы не сгенерировать его как HTML и не отобразить в виде & lt; del & gt;JEditorPane& Lt; / дел & GT; вкладка браузера?
 kant27 авг. 2012 г., 15:41
Я создаю отчет из шаблона документа, который является самим документом MS Word xml. Я просто заменяю некоторые заполнители (используя простой метод String.replaceAll ()) фактическими данными из базы данных. Я не могу сгенерировать html, потому что я действительно не знаю, что в этом отчете.
 kant27 авг. 2012 г., 15:32
потому что задача состоит в том, чтобы создать отчет документа, который может быть открыт в MS Word при необходимости.
 Andrew Thompson27 авг. 2012 г., 15:37
Если пользователь хочет открыть его в MS Word, отправьте слово doc прямо в браузер с соответствующим типом контента. (Обратите внимание, что в этом поле он будет загружен Open Office.) Если пользователь хочет предварительно просмотреть его, сгенерируйте его как HTML и покажите в браузере.

Ответы на вопрос(4)

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

Получи это отСВН.

Это возможный подход к редактированию. Если все, что вам нужно, это просмотрщик, который не конвертировать в HTML или PDF? Вы можете использовать docx4j для этого. (Раскрытие: «Мой» проект).

 kant31 авг. 2012 г., 13:57
Можно ли просматривать файл Doc с помощью класса JRViewer jasperreport?
 kant31 авг. 2012 г., 13:23
если я правильно вас понял, docx4j может просматривать файлы XML-документов через апплет?
 kant01 сент. 2012 г., 11:40
не вариант. Мне нужен именно просмотрщик файлов doc (требование клиента), и он должен работать с форматом Word 2003 xml (наша реализация шаблона, потому что мы не нашли подходящей библиотеки для работы с обычными двоичными файлами doc).
 31 авг. 2012 г., 23:26
Апплет docx4all использует docx4j для просмотра / редактирования файла docx
Решение Вопроса

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

Что вы должны сделать, это следующее:

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

Apache POI - Java API для обработки файлов Microsoft 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){}
}
}

Вы можете найти больше на:Краткое руководство по HWPF (в частности,Модульные испытания HWPF)

Обратите внимание, что, согласно сайту POI:

HWPF is still in early development.

 kant11 сент. 2012 г., 11:27
Мне нужно написать документы.POI не применимо для этого.

Он должен быть написан на Java.

Ваш ответ на вопрос