如上面的标题。现在我正在制作一个电子应用程序,其功能是显示docx文件的内容,其中包括文字和图像。有没有人知道一个nodejs库可以做到这一点?
dphi5xsq1#
这个问题我已经问过几次了(所以很想听听你最后用的是什么)。我们已经使用了Texract(https://www.npmjs.com/package/textract)(NB.有一个Python包和一个AWS服务,它们具有相同的名称;这两个都是不相关的。)它只是把纯文本拿出来。它一直在努力与一些格式,特别是PDF。如果你还想要图像和格式,这并不是你真正想要的。Google很快找到了这个列表:https://libraries.io/search?keywords=docx&languages=JavaScript猛犸(https://github.com/mwilliamson/mammoth.js)正在积极开发中。注意它所描述的限制。然而,它产生HTML的事实将使您在Electron应用程序中的显示更加容易。LibreOffice-convert(https://github.com/elwerene/libreoffice-convert)对我来说是新的,因为我上次搜索。利用LibreOffice听起来是一件明智的事情。它只是LibreOffice无头模式的一个简单 Package 。依赖性使它不太适合Electron应用程序。同样,您可以尝试使用pandoc的 Package 器(https://github.com/eshinn/node-pandoc)。
ewm0tg9j2#
2021年7月
如果你只想使用DOCX或纯文本,你可以使用textract-lite
textract中提供更多文档类型(10+)
yarn add @nosferatu500/textract
https://github.com/nosferatu500/textract
yarn add @nosferatu500/textract-lite
https://github.com/nosferatu500/textract-lite
**注意:**当发现各种CVE时,我分叉并更新了deps。我还砍掉了轻量级版本的所有功能,只留下对docx和txt的支持
y1aodyip3#
const {DOMParser} = require('xmldom'); const xpath = require("xpath"); const JsZip = require("jszip"); const fs = require("fs");
//需要添加declare:"} docxInputPath =“”“";
// Read the docx internal xdocument let wSelect = xpath.useNamespaces({"w": "http://schemas.openxmlformats.org/wordprocessingml/2006/main"}); let docxFile = fs.readFileSync(docxInputPath); await JsZip.loadAsync(docxFile).then(async (zip) => { await zip.file('word/document.xml').async("string").then(docx_str => { let docx = new DOMParser().parseFromString(docx_str); let outputString = ""; let paragraphElements = this.wSelect("//w:p",docx); paragraphElements.forEach(paragraphElement => { let textElements = this.wSelect(".//w:t",paragraphElement); textElements.forEach(textElement => outputString += textElement.textContent); if(textElements.length > 0) outputString += "\n"; }); fs.writeFileSync(strOutputPath,outputString); }); });
3条答案
按热度按时间dphi5xsq1#
这个问题我已经问过几次了(所以很想听听你最后用的是什么)。
我们已经使用了Texract(https://www.npmjs.com/package/textract)(NB.有一个Python包和一个AWS服务,它们具有相同的名称;这两个都是不相关的。)它只是把纯文本拿出来。它一直在努力与一些格式,特别是PDF。如果你还想要图像和格式,这并不是你真正想要的。
Google很快找到了这个列表:https://libraries.io/search?keywords=docx&languages=JavaScript
猛犸(https://github.com/mwilliamson/mammoth.js)正在积极开发中。注意它所描述的限制。然而,它产生HTML的事实将使您在Electron应用程序中的显示更加容易。
LibreOffice-convert(https://github.com/elwerene/libreoffice-convert)对我来说是新的,因为我上次搜索。利用LibreOffice听起来是一件明智的事情。它只是LibreOffice无头模式的一个简单 Package 。依赖性使它不太适合Electron应用程序。
同样,您可以尝试使用pandoc的 Package 器(https://github.com/eshinn/node-pandoc)。
ewm0tg9j2#
2021年7月
如果你只想使用DOCX或纯文本,你可以使用textract-lite
textract中提供更多文档类型(10+)
https://github.com/nosferatu500/textract
https://github.com/nosferatu500/textract-lite
**注意:**当发现各种CVE时,我分叉并更新了deps。我还砍掉了轻量级版本的所有功能,只留下对docx和txt的支持
y1aodyip3#
//需要添加declare:"} docxInputPath =“”“";