【问题标题】:Validate Uploaded Word Template Javascript验证上传的 Word 模板 Javascript
【发布时间】:2020-09-22 16:15:48
【问题描述】:

我正在寻找一个 npm 包或一种在浏览器中访问上传的单词 .docx 文件客户端的方法。我想验证用户的 .docx 文件,该文件将与变量数组(动态创建的)进行比较,以确认 .docx 文件包含所有正在使用的变量。

首选方法是上传.docx,访问docx客户端的内容,并在提交表单之前在客户端搜索变量(模板变量的格式将是小胡子“{{ }}”)到服务器。

一个例子与此类似。


WORD DOCX

“我叫 {{ name }},我喜欢 {{ sport }}。我也喜欢喝 {{ drink }} 来享受 {{ food }}。” p>


const templateVariables = ["name","sport","food","beer"];

通知*您上传的模板未使用变量“beer”。

通知*您上传的模板包含一个额外的变量“drink”。


主要目标是能够通过客户端以表单形式访问上传的 .docx 的正文内容。我有比较代码来处理那部分,我只是无法让文件的内容也有一些东西要比较。

【问题讨论】:

    标签: javascript reactjs templates docx mustache


    【解决方案1】:

    如果我理解正确,您需要代码来读取客户端中的 docx 文件内容吗? 在这里。

    <html>
      <head>
        <meta charset="utf-8" />
        <title>title</title>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/docxtemplater/3.19.5/docxtemplater.js"></script>
        <script src="https://unpkg.com/pizzip@3.0.6/dist/pizzip.js"></script>
      </head>
      <body>
        <input type="file"></input>
        <script>
          const input = document.querySelector("input[type=file]")
          input.addEventListener("change", () => {
            const reader = new FileReader();
            reader.onload = (e) => {
              const content = e.target.result;
              const zip = new PizZip(content);
              const doc = new docxtemplater().loadZip(zip)
              const text = doc.getFullText();
              alert(text);
            };
            reader.readAsBinaryString(input.files.item(0));
          });
        </script>
      </body>
    </html>
    

    【讨论】:

    • 这正是我想要的!我一直在查看 DocxTemplater 和 Pizzip,但在一百万年内我永远不会找到这种组合。我需要查什么才能进一步理解这一点?从字面上看,我得到了新的 docxtemplater(zip) ,但这就是我得到的文件。再次感谢您!
    • 我也是,直到我看了stackoverflow.com/a/44719830/6871929
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-09
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    相关资源
    最近更新 更多