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

使用JavaScript在浏览器中查看Office文档到HTML的转换

宗政功
2023-03-14

我们正在研究AngularJS应用程序。要求是在HTML格式的新选项卡中显示文档。因此,我们实现了一个转换器,它基本上将office文档(doc、docx和odt)转换为HTML查看器。我们使用Apache POI实现了转换器。我们编写了三个converter将doc、docx和odt转换成HTML。

问题

文本转换工作正常,但当文档包含任何图像时,问题就会出现。所以转换器通过在我的本地系统上下载image提取image,参考代码:

protected void doGenerateHTMLFile( String fileInName )
        throws IOException
    {

        String root = "target";
        String fileOutName = root + "/" + fileInName + ".html";

        long startTime = System.currentTimeMillis();

        XWPFDocument document = new XWPFDocument( AbstractXWPFPOIConverterTest.class.getResourceAsStream( fileInName ) );

        XHTMLOptions options = XHTMLOptions.create();// .indent( 4 );
        // Extract image
        File imageFolder = new File( root + "/images/" + fileInName );
        options.setExtractor( new FileImageExtractor( imageFolder ) );
        // URI resolver
        options.URIResolver( new FileURIResolver( imageFolder ) );

        OutputStream out = new FileOutputStream( new File( fileOutName ) );
        XHTMLConverter.getInstance().convert( document, out, options );

    }

现在,下一个任务是将转换后的文档显示为HTML(它包括包含图像的本地文件系统路径),不会将图像显示为JS:

 Not allowed to load local resource: file:///C:/Users/admin/M_Test/image/image1.JPG

这是将doc转换为HTML的正确方法还是可以采用任何更好的方法?

共有1个答案

濮阳品
2023-03-14

与其编写自定义代码来隐藏这些,您可能想要利用mammoth JS library。看起来可能已经晚了4年了:)但无论如何,它是一个通过在浏览器端将文档转换为html来显示doc、docx文档的库,并且可以在后端处理这些文档。

  • 库支持-JavaScript,浏览器和node.js都支持。在NPM上提供。蟒蛇。在PYPI上提供。WordPress.Java/JVM。在Maven Central上提供。.NET。在NuGet上提供。
  • 链接:https://mike.zwobble.org/projects/mammoth/(演示和文章)
  • Github:https://github.com/mwilliamson/mammoth.js
 类似资料:
  • 需要显示pdf、docx、ppt、图像等内容。使用iframe标记。 当我们使用时,就像这个文件被下载。而不是下载,我们需要显示的内容在浏览器本身。 试用了另一个示例来查看计算机中本地存在的文档https://view.officeapps.live.com/op/view.aspx?src=c%3a%5cusers%5c123456%5cdesktop%5cttk.docx,这导致显示错误页。

  • 问题内容: 如何在浏览器中打开和查看文件扩展名?该文件位于我的服务器上。 问题答案: 有两种选择:第一种是仅链接到它,第二种是使用iframe并将其指向文档。但是,要使此功能起作用,大多数浏览器都要求服务器发送带有文档的标头。如果您无法配置Web服务器来执行此操作,则可以将文档包装在php中: 然后链接到该脚本而不是您的Word文档。 但是,这不能保证能正常工作。content-dispositi

  • 使用Notepad++,您可以选择在浏览器中运行。如何使用Visual Studio代码执行相同的操作?

  • 问题内容: 我已经成功完成了在浏览器中而不是“打开/保存”对话框中显示PDF文件的代码。现在,我一直试图在浏览器中显示Word文档。我想在Firefox,IE7+,Chrome等中显示Word文档。 有人可以帮忙吗?在浏览器中显示Word文档时,总是会出现“打开/保存”对话框。我想使用JavaScript实现此功能。 问题答案: 目前没有浏览器具有呈现Word文档所必需的代码,据我所知,当前也没有

  • 问题内容: 我知道在iPhone上的Safari中,您可以通过侦听事件并查询角度来检测屏幕的方向和方向变化。 Android手机上的浏览器有可能吗? 明确地说,我想问的是,运行在标准网页上的JavaScript是否可以检测到Android设备的旋转。可以在iPhone上使用,我想知道是否可以在Android手机上完成。 问题答案: 要检测Android浏览器上的方向变化,请将侦听器附加到上的或事件

  • 在我当前的项目中,我的目标是从AWS S3 bucket访问视频文件(在)。我已经创建了S3 bucket,名为。这是一个具有以下权限的公用文件夹(如下所示)。 bucket的访问控制列表(ACL)如下: 现在,桶""包含许多子文件夹(或子桶),包括一个名为""的子文件夹。这个子桶包含一些文件(如下图所示)。 我的问题是,当我单击其时,浏览器可以直接访问一些文件(如和)。我可以在浏览器中播放它们。