0

我试图查看 DOCX4J 生成的 xHTML 文件。我能够成功生成上述文件,所有文本格式都正确显示在浏览器中。但是,我试图在 JEditorPane 上查看它,它只显示 HTML 文件中的文本,而不显示它的格式,就好像整个页面使用默认文本字体一样。这是我的 JInternalFrame 代码

package com.docx.ui.tools;

import java.awt.Desktop;
import java.awt.Dimension;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;

import javax.swing.JEditorPane;
import javax.swing.JInternalFrame;
import javax.swing.JScrollPane;

public class Preview extends JInternalFrame 
{
    private static JScrollPane scrollPane;
    private static JEditorPane htmlPane;

    public Preview()
    {
        htmlPane = new JEditorPane();
        htmlPane.setEditable(false);
        htmlPane.setContentType("text/html");
        scrollPane = new JScrollPane(htmlPane);
        scrollPane.setAutoscrolls(true);
        scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        scrollPane.setPreferredSize(new Dimension(250, 145));
        setSize(800, 600);
        scrollPane.setMinimumSize(getSize());
        setVisible(true);
        setResizable(true);
        setMaximizable(true);
        setTitle("Document Preview");
        getContentPane().add(scrollPane);
        loadfile();
    }

    public void loadfile()
    {
        Desktop d;
        URL url = null;
        try {
            url = new URL("File:F:\\out.html");
            //          url = new URL("https://www.youtube.com/");
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            htmlPane.setPage(url);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

我尝试将 URL 更改为有效的网址,并且页面可以正确查看。我尝试在 JFrame 中执行相同的过程,并出现了相同的结果。我想知道我是否在程序中做错了什么,或者问题在于 DOCX4J 库生成的 HTML 文件。

我已经包含了 HTML 文件和 DOCX 文件以防万一需要 HTML http://www.mediafire.com/?z3t8ksv3c2air27

DOCX http://www.mediafire.com/view/?p5yr4v6isai3452

4

1 回答 1

1

实际上 JEditorPane(实际上是 HTMLEditorKit)仅支持 html 3.2 版本。

您可以尝试使用工具包http://java-sl.com/docx_editor_kit.html直接显示 docx 文件 。虽然它并不完美,因此也可能存在一些问题。

于 2013-02-25T06:21:12.820 回答