Как мне прочитать * .doc в JTextPane? - PullRequest
0 голосов
/ 31 марта 2012

Я использую apache POI для чтения документов Word. Я использую этот пример в качестве шаблона:

http://javamix.wordpress.com/2009/05/14/reading-data-from-the-doc-file-by-using-apache-poi-api/

Проблема в том, что я хочу, чтобы содержимое читалось в JTextPane. И insertString () не распознается HWPFDocument.

Из оператора 'for', который печатает на консоль, из примера, приведенного в ссылке выше, как изменить его для печати на JTextPane (если это возможно)?

Ответы [ 2 ]

1 голос
/ 31 марта 2012
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){}
    }
}
1 голос
/ 31 марта 2012

Это описано в учебнике Swing , более подробно в разделе «Пример использования текстовой панели». Следующий фрагмент кода скопирован из этого урока

String[] initString =
        { /* ...  fill array with initial text  ... */ };

String[] initStyles =
        { /* ...  fill array with names of styles  ... */ };

JTextPane textPane = new JTextPane();
StyledDocument doc = textPane.getStyledDocument();
addStylesToDocument(doc);

//Load the text pane with styled text.
try {
    for (int i=0; i < initString.length; i++) {
        doc.insertString(doc.getLength(), initString[i],
                         doc.getStyle(initStyles[i]));
    }
} catch (BadLocationException ble) {
    System.err.println("Couldn't insert initial text into text pane.");
}

Метод, который вы ищете, это StyledDocument#insertString метод, как показано выше

...