Avec l'évolution des temps, nos méthodes de traitement des documents évoluent également constamment. Dans le passé, nous pouvions utiliser divers logiciels de traitement de documents pour éditer et lire des documents, mais aujourd'hui, de plus en plus de personnes sont habituées au traitement de documents sur Internet. En termes de réalisation de traitement de documents en ligne, Node.js est devenu un outil très puissant.
L'aperçu Word est sans aucun doute l'un des besoins les plus courants dans le traitement des documents. Lorsque les utilisateurs téléchargent un document Word, ils doivent le prévisualiser sur la page Web et effectuer certaines opérations de base telles que la navigation et l'impression. Il s'agit d'une exigence à laquelle de nombreuses entreprises et particuliers doivent répondre. Cet article explique comment utiliser Node.js pour implémenter l'aperçu en ligne des documents Word.
1. Connaissances préalables
Avant de commencer, vous devez d'abord comprendre certaines connaissances préalables.
Le texte, les images, les tableaux et autres éléments du document Word seront stockés dans un fichier appelé "Office Open" lors de son enregistrement sous forme de document XML" dans un fichier ".docx" ou ".doc". Dans ce fichier, chaque élément se verra attribuer un nom de propriété étendue unique (Extended Property Name).
Dans notre application, nous devons utiliser certains noms de champs étendus couramment utilisés, comme indiqué dans le tableau suivant :
Tapez | Nom du champ d'extension |
---|---|
Text | docProps/core.xml /title |
creator | docProps/core.xml/creator |
docProps/core.xml/created | |
docProps/core.xml/ lastModifiedBy# 🎜🎜# | |
docProps/core.xml/modified | |
table | |
#🎜 🎜# | 2. Node.js |
3. Docxtemplater
Docxtemplater est un moteur de modèles basé sur Node.js, qui peut lire des documents Word et les modifier. Nous utiliserons Docxtemplater pour modifier le document Word afin d'implémenter la fonction d'aperçu en ligne.
Ensuite, nous présenterons comment utiliser la technologie ci-dessus pour obtenir un aperçu en ligne des documents Word.
1. Installez les modules nécessaires
Nous utilisons Node.js pour implémenter l'aperçu en ligne des documents Word, nous devons donc installer certains modules nécessaires. Dans cet article, les modules que nous devons utiliser sont docxtemplater, unzip et fs.
npm install docxtemplater unzip fs
2 Lisez le contenu du document Word
Utilisez docxtemplater pour modifier le Document Word Avant, nous devons d'abord lire le contenu du document Word. Nous pouvons utiliser le module fs intégré de Node.js pour implémenter la lecture de fichiers. Avant de lire, il faut décompresser le fichier ".docx".
// 解压docx文件 function unzipDocx(file) { return new Promise((resolve) => { const extractPath = path.join(__dirname, 'extracted'); const unzipper = new Unzipper(); mkdirp(extractPath); unzipper.on('extract', resolve); fs.createReadStream(file).pipe(unzipper).pipe(fs.createWriteStream(extractPath)); }); } // 读取Word文档内容 function readDocx(file) { const ext = path.extname(file); return ext === '.docx' ? readDocxXml(file) : ''; } function readDocxXml(file) { const contentXml = path.join(__dirname, `extracted/word/document.xml`); return fs.readFileSync(contentXml); }
Docxtemplater peut convertir des documents Word en HTML, ce qui est très pratique. Il nous suffit de spécifier le modèle de sortie au format HTML lors de l'appel du moteur de modèles.
// 将Word文档转换为HTML async function parseDocx(content) { const templater = new Docxtemplater(); templater.loadZip(new JSZip(content)); templater.setData({}); // 替换表格为HTML templater.attachModule(new HtmlModule()); templater.compile(); const { renderedHtml } = templater.getRendered(); return renderedHtml; }
4. Exécutez l'application
Après avoir terminé les étapes ci-dessus, nous obtiendrons une application capable de prévisualiser les documents Word. Dans cette application, nous utiliserons Express pour fournir des services.
const express = require('express'); const app = express(); app.get('/', (req, res) => { const filePath = req.query.file; if (!filePath) { res.send(`请指定需要预览的Word文档文件路径,如:http://localhost:3000/?file=/path/to/your/file.docx`); return; } unzipDocx(filePath).then(() => { const content = readDocx(filePath); parseDocx(content).then(html => { res.send(html); }); }); }); app.listen(3000, () => console.log('应用程序已启动,访问 http://localhost:3000 即可查看。'));
3. Résumé
Il est très pratique d'utiliser Node.js pour obtenir un aperçu en ligne des documents Word. Avec l'aide de Docxtemplater, un moteur de modèles, nous pouvons convertir rapidement des documents Word en HTML, puis, grâce à quelques opérations simples, nous pouvons implémenter la fonction d'aperçu dans le navigateur.
Il convient de noter que lors du processus d'utilisation de Node.js pour prévisualiser des documents Word, nous devons protéger la sécurité des fichiers de l'utilisateur. Nous pouvons utiliser des mots de passe, des droits d'accès, etc. pour protéger les fichiers des utilisateurs. Dans le même temps, nous devons également accorder une attention particulière à la sécurité du serveur pour éviter des problèmes tels que des fuites.
Node.js est largement utilisé dans le développement Web. Que ce soit pour la prévisualisation de documents en ligne ou pour le développement d'autres applications Web, Node.js peut devenir un outil très puissant. Je pense que Node.js deviendra de plus en plus populaire parmi les développeurs Web à l'avenir.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!