2013-02-24 3 views
0

J'essayais d'afficher un fichier xHTML généré par DOCX4J. J'ai réussi à générer le fichier mentionné, tout le formatage du texte apparaît correctement dans le navigateur. Cependant, j'essayais de le voir sur un JEditorPane, et il n'affiche que les textes dans le fichier HTML mais pas le formatage comme si la page entière utilisait la police par défaut. Voici mon code pour le JInternalFrameDOCX4J: Affichage du fichier de document HTML exporté dans JEditorPane

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

J'ai essayé de changer l'URL dans une adresse Web valide et la page est affichée correctement. J'ai essayé de faire la même procédure dans un JFrame et les mêmes résultats se sont produits. Je me demandais si je faisais quelque chose de mal dans la procédure ou le problème réside dans le fichier HTML généré par la bibliothèque DOCX4J.

J'ai inclus le fichier HTML et un fichier DOCX juste au cas où il est nécessaire HTML http://www.mediafire.com/?z3t8ksv3c2air27

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

+0

Par "mêmes résultats", voulez-vous dire que la page a été affichée correctement, ou la mise en forme était toujours perdue? Peut-être que vous devriez ajouter le code HTML que vous essayez d'afficher à la question. – JasonPlutext

+0

Voici comment il ressemblait à la HTML visualisé dans mon application http://www.mediafire.com/view/?r67p8xr49hauyus HTML étant affiché dans un navigateur web http://www.mediafire.com/view /? 8nh9o202ba4mjyb Quand je dis les mêmes résultats se sont produits, ce qui est arrivé dans JEditorPane du JInternalFrame est également produit dans un JEditorPane de JFrame (je pensais que ce pourrait être un problème au sujet de la JEditorPane, JFrame ou JInternalFrame ne pas être en mesure de soutenir le type de html étant généré par la bibliothèque DOCX4J, je ne suis pas vraiment sûr. –

Répondre

1

En fait JEditorPane (HTMLEditorKit en fait) supporte la version html 3.2 uniquement.

Vous pouvez essayer d'afficher le fichier docx directement à l'aide du kit http://java-sl.com/docx_editor_kit.html Ce n'est pas parfait mais il peut y avoir aussi quelques problèmes.

Questions connexes