Maison > interface Web > Questions et réponses frontales > nodejs implémente l'aperçu des mots

nodejs implémente l'aperçu des mots

WBOY
Libérer: 2023-05-27 19:15:07
original
2239 Les gens l'ont consulté

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.

1. Nom du champ d'extension Office

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 :

#🎜🎜 # Heure de créationdocProps/core.xml/createdModifierdocProps/core.xml/ lastModifiedBy# 🎜🎜#Heure de modification Image# 🎜🎜#word/media/image1tableword/document.xml/table2. Node.jsNode.js est un environnement d'exécution pour la programmation côté serveur utilisant le langage JavaScript. Grâce à lui, nous pouvons utiliser JavaScript pour écrire des applications côté serveur afin de fournir une variété de services. Node.js utilise un modèle d'E/S non bloquant et piloté par les événements pour garantir des performances élevées et une très bonne évolutivité.
Tapez Nom du champ d'extension
Text docProps/core.xml /title
creator docProps/core.xml/creator
docProps/core.xml/modified
#🎜 🎜#

Dans cet article, nous utiliserons Node.js pour lire le contenu du document Word et convertir le document Word en HTML.

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.

2. Processus de mise en œuvre

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.

Vous pouvez utiliser la commande npm pour installer ces modules :

npm install docxtemplater unzip fs
Copier après la connexion

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);
}
Copier après la connexion

3. Convertir des documents Word en HTML

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;
}
Copier après la connexion

Il est à noter que dans le processus de conversion de documents Word en HTML, nous utilisons le module HtmlModule de Docxtemplater. Ce module peut convertir des tableaux et autres contenus de documents Word en HTML.

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 即可查看。'));
Copier après la connexion

Après avoir exécuté cette application, nous pouvons visiter http://localhost:3000/?file=/path/to/your/file.docx dans le navigateur pour prévisualiser le document Word.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal