【问题标题】:html docx js blank docx issuehtml docx js空白docx问题
【发布时间】:2015-10-07 15:12:43
【问题描述】:

我正在尝试使用 github 项目 HTML-DOCX-JS 创建 docx 文件,但由于我想在本地执行此过程,我下载了该项目并发现它存在一些问题。我可以在 tinymce 编辑器中进行编辑,当我按下转换时,我确实得到了 docx 文件,但它是空白的。我对 sample.html 文件进行了一些更改,因为默认项目甚至没有在点击时提供 docx。请检查下面的代码,让我知道是什么导致了问题,JS 也不例外。

    <!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>HTML-DOCX test</title>
  <script src="http://tinymce.cachefly.net/4.1/tinymce.min.js"></script>
  <script src="vendor/FileSaver.js"></script>
  <script src="../dist/html-docx.js"></script>
</head>
<body>
  <p>Enter/paste your document here:</p>
  <textarea id="content" cols="60" rows="10"></textarea>
  <div class="page-orientation">
    <span>Page orientation:</span>
    <label><input type="radio" name="orientation" value="portrait" checked>Portrait</label>
    <label><input type="radio" name="orientation" value="landscape">Landscape</label>
  </div>
  <button id="convert">Convert</button>
  <div id="download-area"></div>

  <script>
    tinymce.init({
      selector: '#content',
      plugins: [
        "advlist autolink lists link image charmap print preview anchor",
        "searchreplace visualblocks code fullscreen fullpage",
        "insertdatetime media table contextmenu paste"
      ],
      toolbar: "insertfile undo redo | styleselect | bold italic | " +
        "alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | " +
        "link image"
    });
    document.getElementById('convert').addEventListener('click', function(e) {
      e.preventDefault();
      var content = tinymce.get('content').getContent();
      var orientation = document.querySelector('.page-orientation input:checked').value;
      var converted = htmlDocx.asBlob(content, {orientation: orientation});

      saveAs(converted, 'test.docx');

      var link = document.createElement('a');
      link.href = URL.createObjectURL(converted);
      link.download = 'document.docx';
      link.appendChild(
        document.createTextNode('Click here if your download has not started automatically'));
      var downloadArea = document.getElementById('download-area');
      downloadArea.innerHTML = '';
      downloadArea.appendChild(link);
    });
  </script>
</body>
</html>

文件结构是这样的: http://i.stack.imgur.com/qBgGW.png

【问题讨论】:

  • 有人对此有任何想法吗?
  • 看看我的回答!

标签: javascript jquery html docx


【解决方案1】:

NPM 库html-docx-js 使用“altChunk”标记在 Docx 文件中嵌入原始 HTML 文档。

很遗憾,MacOS 或 Google 云端硬盘不支持此功能,这就是您看到的是空白文档的原因。在 Windows 上的 Word 中打开它(甚至在 Office365 上在线打开它)以使其工作。

【讨论】:

    猜你喜欢
    • 2018-10-06
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 2021-10-01
    • 2012-03-04
    • 2011-01-31
    相关资源
    最近更新 更多