使用Docx.js在JavaScript中生成Word文档?

Pet*_*ter 14 javascript ms-word docx

我正在尝试使用docx.js生成Word文档,但我似乎无法让它工作.

在修改第247行以修复"'textAlign'未定义错误"后,我将原始代码复制到Google Chrome控制台中

if (inNode.style && inNode.style.textAlign){..}
Run Code Online (Sandbox Code Playgroud)

这使得该功能convertContent可用.其结果是Object,例如

JSON.stringify( convertContent($('<p>Word!</p>)[0]) )
Run Code Online (Sandbox Code Playgroud)

结果是 -

"{"string":
      "<w:body>
            <w:p>
                <w:r>
                    <w:t xml:space=\"preserve\">Word!</w:t>
                </w:r>
            </w:p>
       </w:body>"
 ,"charSpaceCount":5
 ,"charCount":5,
 "pCount":1}"
Run Code Online (Sandbox Code Playgroud)

我复制了

<w:body>
    <w:p>
        <w:r>
            <w:t xml:space="preserve">Word!</w:t>
        </w:r>
    </w:p>
</w:body>
Run Code Online (Sandbox Code Playgroud)

进入Notepad ++并将其保存为扩展名为"docx"的文件,但是当我在MS Word中打开它但是它说"由于内容存在问题而无法打开".

我错过了一些属性或XML标签或其他什么?

edi*_*999 21

您可以使用docxtemplater(我创建的库)从模板生成Docx文档.

它可以用它们的值替换标签(比如模板引擎),也可以替换付费版本中的图像.

以下是模板引擎的演示:https://docxtemplater.com/demo/

  • [使用图像的模块似乎是付费的](https://docxtemplater.com/modules/image/) (3认同)

edi*_*999 4

由于对本地文件(文件夹中的所有内容blank)的 ajaxCalls,此代码无法在 JSFiddle 上运行,或者您应该以 ByteArray 格式输入所有文件并使用jsFiddleecho API: http: //doc.jsfiddle.net/使用/echo.html

  • 如果您想要一个仅 javascript 的解决方案来从 docx 模板生成 docx,请查看我创建的库:https://github.com/edi9999/docxgenjs (2认同)