nodejs melaksanakan pratonton perkataan

WBOY
Lepaskan: 2023-05-27 19:15:07
asal
2166 orang telah melayarinya

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
Salin selepas log masuk

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);
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!