Heim >Web-Frontend >Front-End-Fragen und Antworten >nodejs implementiert die Wortvorschau

nodejs implementiert die Wortvorschau

WBOY
WBOYOriginal
2023-05-27 19:15:072233Durchsuche

Mit der Entwicklung der Zeit ändern sich auch unsere Dokumentenverarbeitungsmethoden ständig. Früher nutzten wir zum Bearbeiten und Lesen von Dokumenten möglicherweise verschiedene Software zur Dokumentenverarbeitung, doch mittlerweile sind immer mehr Menschen daran gewöhnt, Dokumente im Internet zu verarbeiten. Im Hinblick auf die Realisierung der Online-Dokumentenverarbeitung hat sich Node.js zu einem sehr leistungsstarken Tool entwickelt.

Die Word-Vorschau ist zweifellos einer der häufigsten Anforderungen bei der Dokumentenverarbeitung. Wenn Benutzer ein Word-Dokument hochladen, müssen sie es auf der Webseite in der Vorschau anzeigen und einige grundlegende Vorgänge wie Durchsuchen und Drucken ausführen. Dies ist eine Anforderung, die viele Unternehmen und Einzelpersonen erfüllen müssen. In diesem Artikel wird erläutert, wie Sie mit Node.js eine Online-Vorschau von Word-Dokumenten implementieren.

1. Vorkenntnisse

Bevor Sie beginnen, müssen Sie zunächst einige Vorkenntnisse verstehen.

1. Erweiterte Office-Feldnamen

Texte, Bilder, Tabellen und andere Elemente in Word-Dokumenten werden in einer „.docx“- oder „.doc“-Datei mit dem Namen „Office Open XML“ gespeichert, wenn sie als Dokumente gespeichert werden Datei. In dieser Datei wird jedem Element ein eindeutiger erweiterter Eigenschaftsname (Extended Property Name) zugewiesen.

In unserer Anwendung müssen wir einige häufig verwendete erweiterte Feldnamen verwenden, wie in der folgenden Tabelle gezeigt:

2. Node.js Node .js ist eine Laufzeitumgebung für serverseitige Programmierung mithilfe der JavaScript-Sprache. Dadurch können wir mithilfe von JavaScript serverseitige Anwendungen schreiben, um eine Vielzahl von Diensten bereitzustellen. Node.js verwendet ein ereignisgesteuertes, nicht blockierendes I/O-Modell, um eine hohe Leistung und eine sehr gute Skalierbarkeit zu gewährleisten. In diesem Artikel verwenden wir Node.js, um den Inhalt in Word-Dokumenten zu lesen und Word-Dokumente in HTML zu konvertieren. 3. DocxtemplaterDocxtemplater ist eine auf Node.js basierende Template-Engine, die Word-Dokumente lesen und ändern kann. Wir werden Docxtemplater verwenden, um das Word-Dokument zu ändern, um die Online-Vorschaufunktion zu implementieren. 2. ImplementierungsprozessAls nächstes stellen wir vor, wie Sie mit der oben genannten Technologie eine Online-Vorschau von Word-Dokumenten erreichen. 1. Erforderliche Module installierenWir verwenden Node.js, um die Online-Vorschau von Word-Dokumenten zu implementieren, daher müssen wir einige notwendige Module installieren. In diesem Artikel müssen wir die Module docxtemplater, unzip und fs verwenden.
Typ Erweiterter Feldname
Text docProps/core.xml/ Titel: Ersteller: docProps/core.xml/creator
Geänderte Zeit docProps/core.xml/modified
image word/media/image1
table word/document.xml/table

Sie können den Befehl npm verwenden, um diese Module zu installieren:

npm install docxtemplater unzip fs

2 Lesen Sie den Inhalt des Word-Dokuments

Bevor wir docxtemplater zum Ändern des Word-Dokuments verwenden, müssen wir zuerst den Inhalt des Word-Dokuments lesen. Wir können das integrierte FS-Modul von Node.js verwenden, um das Lesen von Dateien zu implementieren. Vor dem Lesen müssen wir die Datei „.docx“ dekomprimieren.

// 解压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);
}

3. Word-Dokumente in HTML konvertieren

Docxtemplater kann Word-Dokumente in HTML konvertieren, was sehr praktisch ist. Beim Aufruf der Template-Engine müssen wir lediglich die Ausgabevorlage als HTML angeben.

// 将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;
}

Es ist erwähnenswert, dass wir beim Konvertieren von Word-Dokumenten in HTML das HtmlModule-Modul von Docxtemplater verwenden. Dieses Modul kann Tabellen und andere Inhalte in Word-Dokumenten in HTML konvertieren.

4. Führen Sie die Anwendung aus

Nach Abschluss der oben genannten Schritte erhalten wir eine Anwendung, die eine Vorschau von Word-Dokumenten anzeigen kann. In dieser Anwendung verwenden wir Express zur Bereitstellung von Diensten.

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 即可查看。'));

Nachdem wir diese Anwendung ausgeführt haben, können wir im Browser auf http://localhost:3000/?file=/path/to/your/file.docx zugreifen, um eine Vorschau des Word-Dokuments anzuzeigen.

3. Zusammenfassung

Es ist sehr praktisch, Node.js zu verwenden, um eine Online-Vorschau von Word-Dokumenten zu erhalten. Mit Hilfe von Docxtemplater, einer Vorlagen-Engine, können wir Word-Dokumente schnell in HTML konvertieren und dann durch einige einfache Vorgänge die Vorschaufunktion im Browser implementieren.

Es ist zu beachten, dass wir bei der Verwendung von Node.js zur Vorschau von Word-Dokumenten die Dateisicherheit des Benutzers schützen müssen. Wir können Passwörter, Zugriffsrechte usw. verwenden, um die Dateien der Benutzer zu schützen. Gleichzeitig müssen wir auch besonders auf die Sicherheit des Servers achten, um Probleme wie Lecks zu vermeiden.

Node.js wird häufig in der Webentwicklung verwendet, sei es für die Online-Dokumentvorschau oder die Entwicklung anderer Webanwendungen, Node.js kann zu einem sehr leistungsstarken Tool werden. Ich glaube, dass Node.js in Zukunft bei Webentwicklern immer beliebter werden wird.

Das obige ist der detaillierte Inhalt vonnodejs implementiert die Wortvorschau. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn