1. Produk
  2.   Pemrosesan Kata
  3.   JavaScript
  4.   Docx-templates
 
  

API JavaScript untuk Membuat Dokumen Word Dinamis

Perpustakaan JavaScript Open Source untuk Membuat Dokumen Word Dinamis dengan Node.js dan Aplikasi Berbasis Browser.

Apa itu Docx-templates?

Docx-Templates adalah perpustakaan JavaScript sumber terbuka yang memungkinkan pengembang perangkat lunak menghasilkan dokumen Microsoft Word (.docx) dinamis menggunakan templat yang telah ditentukan sebelumnya. Alih-alih membangun dokumen Word secara manual melalui pemrograman, pengembang dapat merancang templat di Microsoft Word dan menyuntikkan data dinamis menggunakan perintah yang disematkan. Perpustakaan ini bekerja baik di lingkungan Node.js maupun browser, menjadikannya sangat serbaguna untuk aplikasi web modern dan sisi server. Ia memproses file DOCX dengan mengurai struktur XML internalnya dan menggantikan perintah templat dengan data sebenarnya pada waktu berjalan.

Library Docx-Templates adalah alat sumber terbuka yang kuat, dirancang untuk lingkungan Node.js dan peramban. Keunggulan utama perpustakaan ini adalah pemisahan antara desain dan logika. Pengguna non-teknis dapat merancang tata letak dan gaya di Word, sementara pengembang fokus pada penyuntikan data. Ia mendukung logika kompleks seperti loop, pemformatan bersyarat, dan bahkan eksekusi potongan kode JavaScript langsung di dalam dokumen. Hal ini menjadikannya solusi ideal bagi pengembang yang perlu menghasilkan laporan berfidelitas tinggi tanpa harus berurusan dengan XML atau alat desain proprietari.

Previous Next

Memulai dengan Docx-templates

Cara yang disarankan untuk menginstal library Docx-templates adalah melalui npm. Silakan gunakan perintah berikut untuk instalasi yang lancar

Instal Docx-Templates via NPM

$ npm install docx-templates 

Instal Docx-Templates via Yarn/strong>

$ yarn add docx-templates 

Pembuatan Dokumen Berbasis Template melalui API JS

Perpustakaan open source Docx-Templates memungkinkan pengembang perangkat lunak merancang dokumen di Word dan menyuntikkan data secara dinamis menggunakan perintah sederhana. Pendekatan ini memisahkan presentasi dari logika, sehingga templat mudah dikelola dan diperbarui tanpa mengubah kode. Anda dapat mengakses properti secara langsung dari objek data Anda atau bahkan menjalankan ekspresi sederhana. Misalnya, untuk menyisipkan nama lengkap, templat Anda akan terlihat seperti ini: {firstName} {surname}. Perpustakaan ini mengevaluasi kode dan menggantinya secara mulus.

Bagaimana Cara Membuat Dokumen Word Secara Dinamis di Dalam Aplikasi JavaScript?

import createReport from 'docx-templates';
import fs from 'fs';

const template = fs.readFileSync('template.docx');

const report = await createReport({
  template,
  data: { name: 'John', surname: 'Doe' },
});

fs.writeFileSync('output.docx', report);

Penyisipan Gambar Dinamis melalui JavaScript

Selain teks, perpustakaan open source Docx-Templates dapat menyuntikkan gambar secara langsung. Ini mencakup file lokal, gambar dari URL, atau bahkan kode QR yang dihasilkan secara programatik. Anda dapat mengontrol ukuran gambar dan penempatannya. Fitur ini menjadi pengubah permainan untuk membuat lencana identifikasi, katalog produk, atau laporan yang memerlukan diagram dinamis dan bukti visual. Berikut adalah contoh sederhana yang menunjukkan cara menyisipkan gambar ke dalam dokumen Word melalui API JavaScript.

Bagaimana Cara Menyisipkan Gambar Secara Dinamis di Dalam Dokumen Word melalui API JavaScript?

const buffer = await createReport({
  template,
  data: {
    userAvatar: async () => {
      const resp = await fetch('https://example.com/photo.png');
      return { width: 3, height: 3, data: await resp.arrayBuffer(), extension: '.png' };
    }
  },
});
// In Word: {IMAGE userAvatar()}

Loop yang Kuat (FOR/END-FOR)

Menangani daftar data menjadi mulus dengan perintah FOR. Fitur ini memungkinkan Anda mengiterasi array untuk menghasilkan baris tabel, daftar, atau bahkan seluruh bagian dokumen. Perpustakaan Docx-Templates telah menyertakan dukungan untuk loop bersarang, memungkinkan Anda merepresentasikan struktur data hierarkis yang kompleks, seperti daftar departemen dengan masing-masing karyawannya, sambil mempertahankan gaya Word asli. Contoh kode berikut menunjukkan cara mencapainya.

Bagaimana Cara Menerapkan Loop Lanjutan di Dalam Aplikasi JavaScript?

const buffer = await createReport({
  template,
  data: {
    projects: [
      { name: 'SEO Optimization', status: 'Completed' },
      { name: 'API Integration', status: 'In Progress' }
    ]
  },
});
/* In Word:
{FOR project IN projects}
Project: {project.name} - Status: {project.status}
{END-FOR}
*/

Konteks JavaScript Kustom (EXEC)

Salah satu fitur paling canggih dari perpustakaan Docx-Templates adalah kemampuan menjalankan potongan kode JavaScript arbitrer menggunakan perintah EXEC (atau !). Dengan menyediakan additionalJsContext, Anda dapat mengekspos fungsi pembantu khusus ke dalam templat. Hal ini memungkinkan templat melakukan perhitungan, memformat tanggal, atau memanipulasi string secara internal tanpa perlu memproses terlebih dahulu setiap data dalam logika aplikasi utama Anda.

 Indonesia