希望使用客户端技术(HTML / JS)打开/读取docx文件。
如果可能的话,请帮忙。找到了一个名为docx.js的Javascript库,但个人似乎无法找到它的任何文档。 (http://blog.innovatejs.com/?p=184)目标是为docx文件和txt文件制作基于浏览器的搜索工具。
任何帮助表示感谢。
答案 0 :(得分:5)
使用docxtemplater,您可以使用doc.getFullText()方法轻松获取单词的全文(仅适用于docx)。
<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
}