【问题标题】:Office docs to HTML conversion to view in browser using JavaScriptOffice 文档到 HTML 转换以使用 JavaScript 在浏览器中查看
【发布时间】:2015-04-30 01:57:39
【问题描述】:

我们正在开发 AngularJS 应用程序。要求是以 HTML 格式在新选项卡中显示文档。因此,我们正在实现一个转换器,它基本上会将办公文档(doc、docx 和 odt)转换为 HTML 查看器。我们已经使用Apache POI 实现了转换器。我们编写了三个转换器来将 doc、docx 和 odt 转换为 HTML。

问题

文本转换工作正常,但是当文档包含任何图像时会出现问题。所以转换器通过在我的本地系统上下载图像来提取图像,reference code

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

更新

我已将图像路径更改为我的网站路径:http:\localhost:111\temp\ebe6a869-3df7-4ef4-b798-5ed323e4090f\images\myimage/wor‌​d/media/image1.JPG at @ 987654325@

但在转换时,它会附加我的项目路径,例如:C:\MY_DRIVE\PROJECTS\OutSource\svn\IAP-Dynamic-Sql\http:\localhost:111\temp\ebe6‌​a869-3df7- 4ef4-b798-5ed323e4090f\images\myimage/word/media/image1.JPG,

它怎么只能是我的本地主机路径?

因此,我们无法在新标签页中将文档加载到格式良好的文件中。

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

【问题讨论】:

  • 我认为您需要将图像 URL 路径到新的 FileURIResolver(File baseURL) 而不是本地文件夹
  • @KostyaShkryob 我已将图像更改为我的网站路径为 http:\localhost:111\temp\ebe6a869-3df7-4ef4-b798-5ed323e4090f\images\myimage/word/media/image1.JPG ,但是在转换时它会附加我的项目的路径,例如: C:\MY_DRIVE\PROJECTS\OutSource\svn\IAP-Dynamic-Sql\http:\localhost:111\temp\ebe6a869-3df7-4ef4-b798-5ed323e4090f\images \myimage/word/media/image1.JPG,它怎么只能是我的本地主机路径。

标签: java javascript html angularjs apache


【解决方案1】:

而不是编写自定义代码来隐藏这些,您可能想要使用庞大的 JS 库。可能为时已晚 4 年,似乎:) 但无论如何它是一个用于显示 doc、docx 文档的库,通过将它们转换为 html在浏览器端也可以在后端处理。

【讨论】:

  • 不支持doc文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-04
相关资源
最近更新 更多