Вопрос по java, applet, ms-word – Просмотр файла .doc с помощью Java-апплета

5

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

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

Ваш Ответ

4   ответа
1

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

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

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

Можно ли просматривать файл Doc с помощью класса JRViewer jasperreport? kant
если я правильно вас понял, docx4j может просматривать файлы XML-документов через апплет? kant
не вариант. Мне нужен именно просмотрщик файлов doc (требование клиента), и он должен работать с форматом Word 2003 xml (наша реализация шаблона, потому что мы не нашли подходящей библиотеки для работы с обычными двоичными файлами doc). kant
Апплет docx4all использует docx4j для просмотра / редактирования файла docx
4

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

1

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.

Мне нужно написать документы.POI не применимо для этого. kant
0

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

Похожие вопросы