2013-02-24 49 views
0

我試圖查看由DOCX4J生成的xHTML文件。我能夠成功生成所提及的文件,文本的所有格式都在瀏覽器中正確顯示。但是,我試圖在JEditorPane上查看它,它只顯示HTML文件中的文本,但不顯示它的格式,就好像整個頁面使用默認文本字體一樣。這裏是我的代碼JInternalFrameDOCX4J:在JEditorPane中查看HTML導出的文檔文件

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(); 
     } 
    } 
} 

我試着將網址更改爲有效的網址,並正確查看頁面。我嘗試在JFrame中執行相同的過程併發生相同的結果。我想知道如果我在這個過程中做錯了什麼,或者問題在於DOCX4J庫生成的HTML文件。

我已經包含HTML文件和DOCX文件,以防萬一它是需要 HTML http://www.mediafire.com/?z3t8ksv3c2air27

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

+0

通過「發生了同樣的結果」,你的意思是頁面正確查看,或格式仍然丟失?也許你應該添加你試圖展示給問題的html。 – JasonPlutext 2013-02-24 18:12:25

+0

這是怎麼看起來像 在我的應用程序 http://www.mediafire.com/view/?r67p8xr49hauyus HTML的Web瀏覽器正在觀看 http://www.mediafire.com正在查看 HTML /圖/?8nh9o202ba4mjyb 當我說了同樣的結果發生了,發生了什麼事的是JInternalFrame的JEditorPane中的一個JFrame的JEditorPane中也發生 (我想這可能是關於JEditorPane中,JFrame的或者是JInternalFrame不能夠支持的問題在DOCX4J庫中生成的html類型,我不太確定,但我仍然在試驗) – 2013-02-25 01:50:57

回答

1

的JEditorPane(一個HTMLEditorKit事實上)只支持HTML 3.2的版本。

您可以嘗試直接使用該工具包顯示docx文件http://java-sl.com/docx_editor_kit.html 儘管如此也可能存在一些問題,但這並不完美。