使用javascript / jquery获取docx文件内容

时间:2015-02-10 19:27:30

标签: javascript jquery docx

希望使用客户端技术(HTML / JS)打开/读取docx文件。

如果可能的话,请帮忙。找到了一个名为docx.js的Javascript库,但个人似乎无法找到它的任何文档。 (http://blog.innovatejs.com/?p=184

目标是为docx文件和txt文件制作基于浏览器的搜索工具。

任何帮助表示感谢。

3 个答案:

答案 0 :(得分:5)

使用docxtemplater,您可以使用doc.getFullText()方法轻松获取单词的全文(仅适用于docx)。

HTML code:

<script src="build/docxgen.js"></script>
<script src="vendor/FileSaver.min.js"></script>
<script src="vendor/jszip-utils.js"></script>
<script>
    var loadFile=function(url,callback){
        JSZipUtils.getBinaryContent(url,callback);
    }
    loadFile("examples/tagExample.docx",function(err,content){
        var doc=new Docxgen(content);
        text=doc.getFullText();
        console.log(text);
    });
</script>

获取源代码:

git clone https://github.com/edi9999/docxtemplater.git && cd docxtemplater
# git checkout v1.0.4 # Optional
npm install -g gulp jasmine-node uglify-js browserify
npm install
gulp allCoffee
mkdir build -p
browserify -r ./js/docxgen.js -s Docxgen > build/docxgen.js
uglifyjs build/docxgen.js > build/docxgen.min.js # Optional

答案 1 :(得分:0)

如果您希望能够在Web浏览器中显示docx文件,您可能会对Native Documents&#39;最近发布的商业Word文件编辑器;试试https://nativedocuments.com/test_drive.html

如果你这样做,你会获得更好的布局保真度,而不是试图转换为(X)HTML并以这种方式查看。

它专为嵌入webapp而设计,因此有一个用于加载文档的API,它可以很好地放在webapp的安全上下文中。

披露:我对原生文件有商业兴趣

答案 2 :(得分:0)

我知道这是一篇过时的文章,但是doctemplater进行了,接受的答案不再起作用。这对我有用:

function loadDocx(filename) {
  // Read document.xml from docx document
  const AdmZip = require("adm-zip");
  const zip = new AdmZip(filename);
  const xml = zip.readAsText("word/document.xml");
  // Load xml DOM
  const cheerio = require('cheerio');
  $ = cheerio.load(xml, {
    normalizeWhitespace: true,
    xmlMode: true
  })
  // Extract text
  let out = new Array()
  $('w\\:t').each((i, el) => {
    out.push($(el).text())
  })
  return out
}