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 を有効な Web アドレスに変更してみましたが、ページは正しく表示されます。JFrameで同じ手順を実行しようとしましたが、同じ結果が発生しました。手順が間違っているのか、それとも DOCX4J ライブラリによって生成された HTML ファイルに問題があるのか​​ 疑問に思っていました。

HTML http://www.mediafire.com/?z3t8ksv3c2air27が必要な場合に備えて、HTML ファイルと DOCX ファイルを含めました 。

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 に答える