Rumah  >  Artikel  >  hujung hadapan web  >  nodejs melaksanakan pratonton perkataan

nodejs melaksanakan pratonton perkataan

WBOY
WBOYasal
2023-05-27 19:15:072186semak imbas

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.

1. Nama medan lanjutan pejabat

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

2. js ialah persekitaran masa jalan untuk pengaturcaraan sisi pelayan menggunakan bahasa JavaScript. Melaluinya, kami boleh menggunakan JavaScript untuk menulis aplikasi sisi pelayan untuk menyediakan pelbagai perkhidmatan. Node.js menggunakan model I/O yang dipacu peristiwa dan tidak menyekat untuk memastikan prestasi tinggi dan kebolehskalaan yang sangat baik.

Dalam artikel ini, kami akan menggunakan Node.js untuk membaca kandungan dalam dokumen Word dan menukar dokumen Word kepada HTML.

3. Docxtemplater

Docxtemplater ialah enjin templat berdasarkan Node.js, yang boleh membaca dokumen Word dan mengubah suainya. Kami akan menggunakan Docxtemplater untuk mengubah suai dokumen Word untuk melaksanakan fungsi pratonton dalam talian.

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

Kami menggunakan Node.js untuk melaksanakan pratonton dalam talian bagi dokumen Word, jadi kami perlu memasang beberapa modul yang diperlukan. Dalam artikel ini, modul yang perlu kami gunakan ialah docxtemplater, unzip dan fs.

Anda boleh menggunakan arahan npm untuk memasang modul ini:

npm install docxtemplater unzip fs

2 Baca kandungan dokumen Word

Sebelum menggunakan docxtemplater untuk mengubah suai dokumen Word, kita perlu. untuk membacanya dahulu Dapatkan kandungan dokumen Word. Kita boleh menggunakan modul fs terbina dalam Node.js untuk melaksanakan pembacaan fail. Sebelum membaca, kita perlu menyahmampat fail ".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);
}

3. Tukar dokumen Word kepada HTML

Docxtemplater boleh menukar dokumen Word kepada HTML, yang sangat mudah. Kami hanya perlu menentukan templat output sebagai HTML apabila memanggil enjin templat.

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

Selepas melengkapkan langkah di atas, kami akan mendapat aplikasi yang boleh pratonton dokumen Word. Dalam aplikasi ini, kami akan menggunakan Express untuk menyediakan perkhidmatan.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn