当前位置: 首页 > 知识库问答 >
问题:

DOCX4J:在窗格中查看HTML导出的文档文件

彭霄
2023-03-14

我试图查看一个由DOCX4J生成的xHTML文件。我能够成功生成提到的文件,文本的所有格式都正确地出现在浏览器中。然而,我试图在JEditorPane上查看它,它只显示超文本标记语言文件内部的文本,但不显示它的格式就好像整个页面使用默认文本字体一样。这是我的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文件,以防需要HTMLhttp://www.mediafire.com/?z3t8ksv3c2air27

DOCXhttp://www.mediafire.com/view/?p5yr4v6isai3452

共有1个答案

申阳伯
2023-03-14

实际上,JEditorPane(实际上是HTMLEditorKit)只支持HTML3.2版本。

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

 类似资料:
  • 进入某个项目时,依次选择 菜单 -> 查看文档,就可以查看项目的文档了: 或者,选择某个接口后,点击“查看文档”,可以查看某个接口的文档: NEI 并没有提供导出功能,不过可以借助浏览器的打印功能。以 Chrome 浏览器为例,在项目文档页面,选择右上角的“打印”,根据自己的要求,可以选择打印不同的内容: 在打印界面中,目标打印机选择保存为 PDF 即可:

  • 如何从docx4j中删除图像。 假设我有10个映像,我想用我自己的字节数组/二进制数据替换8个映像,我想删除剩下的2个。 我也有麻烦在定位图像。 是否可以用图像替换文档中的文本占位符?

  • 对于某些应用程序来说,窗口查看围绕特定主题的多个文档是很有用的。上下文视图能够帮助设置包含时序性事件的索引模式。 想要显示与锚文档相关的上下文,点击文档表条目左侧的 Expand 按钮 ,然后点击 View surrounding documents 链接。 上下文视图会显示锚文档前后的多个文档。锚文档会用蓝色突出显示。该视图是根据索引模式配置的时间字段而检索出的结果,并使用 Discover 浏

  • 我在用docx4j将docx文档导出为html时遇到问题。我的应用程序从几个文档中剪切出段落,然后将其连接成一个文档,然后将其导出为html。 问题在于清单。生成的docx打开,我想要的内容就在那里(尽管它声明文档有错误,并且没有项目符号列表,而是有编号的项目符号列表),但是在html导出过程中,我收到以下错误消息: 错误组织。docx4j。模型房地产经纪人。getEffectivePPr第635

  • 提交一个搜索查询后,Documents 表中就会列出500个匹配查询的最新文档。您可以通过 Advanced Settings 中的 discover:sampleSize 设置表中显示的文档个数。默认情况下,该表显示的是为所选索引模式和文本 _source 配置的时间域的本地化版本。 您可以从 Fields 表中选择字段向 Documents 表中添加。您可以通过表中包含的任意索引字段对所列文档

  • 我们正在研究AngularJS应用程序。要求是在HTML格式的新选项卡中显示文档。因此,我们实现了一个转换器,它基本上将office文档(doc、docx和odt)转换为HTML查看器。我们使用Apache POI实现了转换器。我们编写了三个converter将doc、docx和odt转换成HTML。 问题 文本转换工作正常,但当文档包含任何图像时,问题就会出现。所以转换器通过在我的本地系统上下载