如何使用Aspose Word for Java从.doc中读取文本和字体

时间:2017-07-29 17:00:01

标签: java ms-word ms-office aspose aspose.words

我有一个读写 .doc 文件的作业,必须能够阅读 字体设置 < / strong>对于每个单词。我目前在开发中使用Aspose字来表示Java,对单词的写入以及每个单词的字体设置都在运行。唯一的问题是,当我尝试选择 .doc 文件并使用下面的代码阅读时,它不会从 System.out.print 中返回任何内容。但有时也会出现但只有几个字而不是整个内容。

final JFileChooser fc = new JFileChooser();
            HomeForm form = new HomeForm();
             if (evt.getSource() == jButton2)
             {
                int returnVal = fc.showOpenDialog(HomeForm.this);
                File file = fc.getSelectedFile();
                if (returnVal == JFileChooser.APPROVE_OPTION) {
                        JOptionPane.showMessageDialog(null, "File " +file.getName()+" choosed", "Alert", JOptionPane.CLOSED_OPTION);
                        jTextField1.setText(file.getName());

                        String dataDir = file.getPath();
                        String filename = file.getName();

                    try {
                        InputStream in = new FileInputStream(dataDir);
                        Document doc = new Document(in);
                        System.out.println(file.getName());;
                        System.out.println(doc.getText());
                        in.close();FileInputStream(file.getAbsolutePath());Logger.getLogger(HomeForm.class.getName()).log(Level.SEVERE, null, ex);InputStreamReader(fis, Charset.forName("UTF-8"));
                    } catch (FileNotFoundException ex) {
                        Logger.getLogger(HomeForm.class.getName()).log(Level.SEVERE, null, ex);
                    } catch (Exception ex) {
                        Logger.getLogger(HomeForm.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    } else {
                        JOptionPane.showMessageDialog(null, "File choose canceled", "Alert", JOptionPane.CLOSED_OPTION);
                    }
                 }

使用此代码读取每个单词和每个单词字体设置,我是朝着正确的方向前进吗?或者也许Aspose无法处理这些处理?请帮助,谢谢你的时间。

1 个答案:

答案 0 :(得分:2)

您可以使用Aspose.Words for Java API使用以下代码获取每个文档中的Run的文本和字体名称:

Document doc = new Document("D:\temp\in.doc");

for(Run run : (Iterable) doc.getChildNodes(NodeType.RUN, true)) {
    System.out.println(run.getText());
    System.out.println(run.getFont().getName());
}

我与Aspose一起担任开发者布道者。