docxtemplater
Tạo Word DOCX từ Mẫu qua JavaScript
Thư viện JavaScript để tạo, sửa đổi và chuyển đổi các tệp Microsoft ® Word DOCX.
Docxtemplater là gì?
docxtemplater là một thư viện JavaScript mã nguồn mở giúp tạo và chỉnh sửa các tệp Word DOCX từ một mẫu. Thư viện Word JavaScript cho phép người dùng tùy chỉnh các tài liệu được tạo bằng chính Word. Thư viện dễ dàng xử lý và không yêu cầu bất kỳ kỹ năng kỹ thuật nào để chỉnh sửa mẫu Word. Thư viện cũng đã cung cấp một số mô-đun cho các chức năng cụ thể.
Thư viện docxtemplater hỗ trợ một số tính năng liên quan đến việc tạo và xử lý tệp DOCX như thêm hình ảnh, chèn văn bản định dạng vào tài liệu Word, chèn đầu trang / chân trang, thay thế hình ảnh bằng bất kỳ thuộc tính hiện có nào, tạo bảng, thêm hình mờ văn bản, cập nhật lề trang, chèn chú thích cuối trang cho một tài liệu và nhiều hơn nữa.
Làm thế nào để cài đặt docxtemplater?
Khuyến nghị và cách dễ nhất để cài đặt docxtemplater là thông qua npm. Vui lòng sử dụng lệnh sau để cài đặt suôn sẻ.
Cài đặt docxtemplater qua npm
npm install docxtemplater pizzip
Tạo Word DOCX qua JavaScript
Thư viện docxtemplater giúp tạo tài liệu DOCX trong ứng dụng Node.js cũng như trong trình duyệt một cách dễ dàng. Nó cũng cho phép sửa đổi các tài liệu DOCX hiện có để chèn bảng, hình ảnh, văn bản, đoạn văn và hơn thế nữa.
Cập nhật tin tức DOCX qua JavaScript
const PizZip = require("pizzip");
const Docxtemplater = require("docxtemplater");
const fs = require("fs");
const path = require("path");
// Load the docx file as binary content
const content = fs.readFileSync(
path.resolve(__dirname, "input.docx"),
"binary"
);
const zip = new PizZip(content);
const doc = new Docxtemplater(zip, {
paragraphLoop: true,
linebreaks: true,
});
// Render the document (Replace {first_name} by John, {last_name} by Doe, ...)
doc.render({
first_name: "John",
last_name: "Doe",
phone: "0652455478",
});
const buf = doc.getZip().generate({
type: "nodebuffer",
compression: "DEFLATE",
});
// buf is a nodejs Buffer, you can either write it to a
// file or res.send it with express for example.
fs.writeFileSync(path.resolve(__dirname, "output.docx"), buf);
Chèn & Quản lý Bảng trong Tài liệu Word
Thư viện docxtemplater cho phép các nhà phát triển phần mềm tạo một bảng chỉ với một vài dòng mã JavaScript. Thư viện đã bao gồm một số phương pháp để tạo và quản lý bảng trong tài liệu như tạo bảng từ đầu, tạo bảng vòng lặp dọc hoặc bằng cách sao chép ô, hợp nhất ô của bảng, chèn hàng và cột, xác định độ rộng cho hàng và cột và như thế.
Thêm chú thích chân trang vào tài liệu Word
Thư viện docxtemplater miễn phí bao gồm hỗ trợ thêm chú thích cuối trang vào tài liệu DOCX Word. Thư viện cung cấp toàn quyền kiểm soát việc tùy chỉnh các chú thích cuối trang. Bạn có thể thêm các số trong chỉ số trên và áp dụng các kiểu khác nhau cho nội dung của chú thích một cách dễ dàng.
Thêm Footnote vào tài liệu thông qua JavaScript
const imageOpts = {
getProps: function (img, tagValue, tagName) {
/*
* If you don't want to change the props
* for a given tagValue, you should write :
*
* return null;
*/
return {
rotation: 90,
// flipVertical: true,
// flipHorizontal: true,
};
},
getImage: function (tagValue, tagName) {
return fs.readFileSync(tagValue);
},
getSize: function (img, tagValue, tagName) {
return [150, 150];
},
};
const doc = new Docxtemplater(zip, {
modules: [new ImageModule(imageOpts)],
});
Thêm và sửa đổi hình ảnh trong DOCX
Thư viện docxtemplater mã nguồn mở cung cấp cho các nhà lập trình phần mềm sức mạnh để chèn hình ảnh vào bên trong tài liệu word. Thư viện cho phép thiết lập chiều rộng và chiều cao của hình ảnh, căn chỉnh hình ảnh, thêm chú thích cho hình ảnh, sử dụng các biểu thức góc để đặt kích thước hình ảnh, v.v. Bạn cũng có thể truy xuất dữ liệu hình ảnh từ bất kỳ nguồn dữ liệu nào như dữ liệu base64, hệ thống tệp, URL và hình ảnh được lưu trữ trên Amazon S3. Một tính năng tuyệt vời của thư viện là bạn có thể tránh những bức ảnh lớn hơn vùng chứa của chúng.
Xoay và lật hình ảnh bằng JavaScript
const imageOpts = {
getProps: function (img, tagValue, tagName) {
/*
* If you don't want to change the props
* for a given tagValue, you should write :
*
* return null;
*/
return {
rotation: 90,
// flipVertical: true,
// flipHorizontal: true,
};
},
getImage: function (tagValue, tagName) {
return fs.readFileSync(tagValue);
},
getSize: function (img, tagValue, tagName) {
return [150, 150];
},
};
const doc = new Docxtemplater(zip, {
modules: [new ImageModule(imageOpts)],
});