Dengan perkembangan zaman, kaedah pemprosesan dokumen kami juga sentiasa berubah. Pada masa dahulu, kita mungkin menggunakan pelbagai perisian pemprosesan dokumen untuk mengedit dan membaca dokumen, tetapi kini, semakin ramai orang semakin terbiasa memproses dokumen di Internet. Dari segi merealisasikan pemprosesan dokumen dalam talian, Node.js telah menjadi alat yang sangat berkuasa.
Pratonton perkataan sudah pasti salah satu keperluan yang paling biasa dalam pemprosesan dokumen. Apabila pengguna memuat naik dokumen Word, mereka perlu pratonton pada halaman web dan melakukan beberapa operasi asas seperti menyemak imbas dan mencetak Ini adalah keperluan yang mesti dipenuhi oleh banyak syarikat dan individu. Artikel ini akan memperkenalkan cara menggunakan Node.js untuk melaksanakan pratonton dalam talian bagi dokumen Word.
1. Pengetahuan prasyarat
Sebelum anda bermula, anda perlu memahami beberapa pengetahuan prasyarat terlebih dahulu.
Teks, gambar, jadual dan elemen lain dalam dokumen Word akan disimpan dalam "Office Open XML" apabila ia disimpan sebagai dokumen . docx" atau fail ".doc". Dalam fail ini, setiap elemen akan diberikan nama sifat lanjutan yang unik (Nama Harta Lanjutan).
Dalam aplikasi kami, kami perlu menggunakan beberapa nama medan lanjutan yang biasa digunakan, seperti yang ditunjukkan dalam jadual berikut:
类型 | 扩展字段名 |
---|---|
文本 | docProps/core.xml/title |
创建者 | docProps/core.xml/creator |
创建时间 | docProps/core.xml/created |
修改者 | docProps/core.xml/lastModifiedBy |
修改时间 | docProps/core.xml/modified |
图片 | word/media/image1 |
表格 | word/document.xml/table |
Dalam artikel ini, kami akan menggunakan Node.js untuk membaca kandungan dalam dokumen Word dan menukar dokumen Word kepada HTML.
3. Docxtemplater
2. Proses pelaksanaan
Seterusnya, kami akan memperkenalkan cara menggunakan teknologi di atas untuk mencapai pratonton dalam talian bagi dokumen Word.
1. Pasang modul yang diperlukan
Anda boleh menggunakan arahan npm untuk memasang modul ini:
npm install docxtemplater unzip fs
2 Baca kandungan dokumen Word
// 解压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. Tukar dokumen Word kepada HTML
// 将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; }
Perlu diperhatikan bahawa dalam proses menukar dokumen Word kepada HTML, kami menggunakan modul HtmlModule Docxtemplater. Modul ini boleh menukar jadual dan kandungan lain dalam dokumen Word kepada HTML.
4. Jalankan aplikasi
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 即可查看。'));
Selepas menjalankan aplikasi ini, kami boleh mengakses http://localhost:3000/?file=/path/to/your/file.docx dalam penyemak imbas untuk pratonton dokumen Word.
3. Ringkasan
Sangat mudah untuk menggunakan Node.js untuk mencapai pratonton dalam talian bagi dokumen Word. Dengan bantuan Docxtemplater, enjin templat, kami boleh menukar dokumen Word ke dalam HTML dengan cepat, dan kemudian melalui beberapa operasi mudah, kami boleh melaksanakan fungsi pratonton dalam penyemak imbas.
Perlu diambil perhatian bahawa apabila menggunakan Node.js untuk pratonton dokumen Word, kami perlu melindungi keselamatan fail pengguna. Kami boleh menggunakan kata laluan, hak akses, dsb. untuk melindungi fail pengguna. Pada masa yang sama, kita juga perlu memberi perhatian khusus kepada keselamatan pelayan untuk mengelakkan masalah seperti kebocoran.
Node.js digunakan secara meluas dalam pembangunan web Sama ada untuk pratonton dokumen dalam talian atau pembangunan aplikasi web lain, Node.js boleh menjadi alat yang sangat berkuasa. Saya percaya bahawa Node.js akan menjadi semakin popular di kalangan pembangun web pada masa hadapan.
Atas ialah kandungan terperinci nodejs melaksanakan pratonton perkataan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!