Heim >Web-Frontend >Front-End-Fragen und Antworten >nodejs implementiert die Wortvorschau
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.
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:
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 |
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. |
3. Docxtemplater | Docxtemplater 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. |
Als nächstes stellen wir vor, wie Sie mit der oben genannten Technologie eine Online-Vorschau von Word-Dokumenten erreichen. | 1. Erforderliche Module 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); }
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
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 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.
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!