Việc chuyển đổi các trang HTML phong phú thành các tệp DOCX có thể chỉnh sửa là một nhu cầu thường gặp trong các quy trình báo cáo và tự động hoá tài liệu. GroupDocs.Conversion Cloud SDK for Node.js cho phép các nhà phát triển thực hiện chuyển đổi này hoàn toàn thông qua một thư viện dựa trên REST. Trong hướng dẫn này, bạn sẽ thấy cách thiết lập SDK, viết mã Node.JS thực hiện chuyển đổi HTML sang DOCX trong Node.JS, sử dụng cURL để gọi API, và áp dụng các tùy chọn cấu hình để đạt kết quả tối ưu.
Các yêu cầu và cài đặt
Trước khi bắt đầu, hãy chắc chắn rằng bạn đã có những thứ sau:
- Node.js 14 hoặc mới hơn được cài đặt trên máy phát triển của bạn.
- Một tài khoản GroupDocs.Conversion Cloud đang hoạt động (bạn có thể đăng ký dùng thử miễn phí trên trang sản phẩm).
- Client ID và Client Secret của bạn từ bảng điều khiển GroupDocs Cloud.
- Kết nối internet để gọi API REST đám mây.
Cài đặt SDK qua npm:
npm install groupdocs-conversion-cloud
Tải xuống gói mới nhất và xem mã nguồn trên GitHub nếu bạn cần khám phá mã:
Tải xuống GroupDocs.Conversion Cloud SDK for Node.js
Sau khi đã cài đặt SDK và chuẩn bị xong thông tin xác thực, bạn có thể tiếp tục thực hiện.
Chuyển đổi HTML sang DOCX trong Node.JS: Hướng dẫn từng bước
Dưới đây là một hướng dẫn ngắn gọn thể hiện từng bước logic. Mã nguồn đầy đủ sẽ được cung cấp sau.
Bước 1: Khởi tạo Conversion API Client
Tạo một thể hiện của ConversionApi và cấu hình xác thực.
const { ConversionApi, Configuration } = require('groupdocs-conversion-cloud');
const config = new Configuration({
clientId: 'YOUR_CLIENT_ID',
clientSecret: 'YOUR_CLIENT_SECRET'
});
const conversionApi = new ConversionApi(config);
Bước 2: Tải lên tệp nguồn HTML
Tải lên tệp HTML mà bạn muốn chuyển đổi. API trả về một định danh tệp mà bạn sẽ sử dụng để chuyển đổi.
const fs = require('fs');
const path = require('path');
const htmlPath = path.resolve(__dirname, 'sample.html');
const fileBytes = fs.readFileSync(htmlPath);
const uploadResponse = await conversionApi.uploadFile({
file: fileBytes,
fileName: 'sample.html'
});
const sourceFileId = uploadResponse.id;
Bước 3: Thiết lập tùy chọn chuyển đổi
Cấu hình bất kỳ tùy chọn đặc thù cho DOCX, chẳng hạn như nhúng phông chữ hoặc thiết lập lề trang. Bước này trình bày việc tùy chỉnh DOCX Generation from HTML.
const convertSettings = {
outputFormat: 'DOCX',
options: {
embedFonts: true,
pageSize: 'A4',
marginTop: 20,
marginBottom: 20,
marginLeft: 15,
marginRight: 15
}
};
Bước 4: Thực hiện chuyển đổi
Gọi phương thức convert với ID tệp nguồn và các cài đặt đã được định nghĩa ở trên.
const convertResponse = await conversionApi.convert({
fileId: sourceFileId,
convertSettings: convertSettings
});
const docxFileId = convertResponse.id;
Bước 5: Tải xuống tệp DOCX kết quả
Lấy tệp DOCX đã tạo và lưu nó cục bộ.
const docxData = await conversionApi.downloadFile({ fileId: docxFileId });
fs.writeFileSync(path.resolve(__dirname, 'output.docx'), docxData);
console.log('DOCX file saved as output.docx');
Các bước trên minh họa một quy trình HTML sang DOCX trong Node.JS hoàn chỉnh sử dụng GroupDocs.Conversion Cloud SDK.
Ví dụ mã hoàn chỉnh: Tạo DOCX từ nội dung HTML
Chương trình sau đây kết hợp tất cả các phần lại thành một script duy nhất, có thể chạy được.
// Full working example for HTML to DOCX conversion using GroupDocs.Conversion Cloud SDK for Node.js
const { ConversionApi, Configuration } = require('groupdocs-conversion-cloud');
const fs = require('fs');
const path = require('path');
async function convertHtmlToDocx() {
// 1. Configure the API client
const config = new Configuration({
clientId: 'YOUR_CLIENT_ID',
clientSecret: 'YOUR_CLIENT_SECRET'
});
const conversionApi = new ConversionApi(config);
// 2. Read the HTML file
const htmlPath = path.resolve(__dirname, 'sample.html');
const htmlBytes = fs.readFileSync(htmlPath);
// 3. Upload the HTML file
const uploadResult = await conversionApi.uploadFile({
file: htmlBytes,
fileName: 'sample.html'
});
const sourceFileId = uploadResult.id;
// 4. Define conversion settings
const convertSettings = {
outputFormat: 'DOCX',
options: {
embedFonts: true,
pageSize: 'A4',
marginTop: 20,
marginBottom: 20,
marginLeft: 15,
marginRight: 15
}
};
// 5. Perform the conversion
const convertResult = await conversionApi.convert({
fileId: sourceFileId,
convertSettings: convertSettings
});
const docxFileId = convertResult.id;
// 6. Download the DOCX file
const docxBytes = await conversionApi.downloadFile({ fileId: docxFileId });
const outputPath = path.resolve(__dirname, 'output.docx');
fs.writeFileSync(outputPath, docxBytes);
console.log(`Conversion successful. DOCX saved to ${outputPath}`);
}
// Execute the conversion
convertHtmlToDocx().catch(err => {
console.error('Conversion failed:', err);
});
Lưu ý: Ví dụ mã này minh họa chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy chắc chắn cập nhật các đường dẫn tệp (
sample.html,output.docx), xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển của bạn. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng tham khảo tài liệu chính thức hoặc liên hệ với đội hỗ trợ để được trợ giúp.
Thực hiện chuyển đổi qua cURL và REST API
Nếu bạn muốn làm việc trực tiếp với HTTP, các lệnh cURL sau thực hiện cùng một chuyển đổi.
- Lấy token truy cập
Thay thế YOUR_CLIENT_ID và YOUR_CLIENT_SECRET bằng thông tin xác thực của bạn.
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
Phản hồi chứa access_token.
- Tải lên tệp HTML
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/files/sample.html" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@sample.html"
- Bắt đầu chuyển đổi
curl -X POST "https://api.groupdocs.cloud/v2.0/conversion/convert" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"sourceFilePath": "sample.html",
"outputFilePath": "output.docx",
"outputFormat": "DOCX",
"options": {
"embedFonts": true,
"pageSize": "A4"
}
}'
- Tải xuống DOCX đã chuyển đổi
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/files/output.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.docx
Để xem danh sách đầy đủ các tham số, hãy tham khảo tài liệu API chính thức.
Cấu hình các tùy chọn cho việc chuyển đổi nội dung HTML sang DOCX
SDK cung cấp một số thuộc tính cho phép bạn tinh chỉnh đầu ra:
- embedFonts - Nhúng tất cả các phông chữ được tham chiếu vào DOCX, đảm bảo độ trung thực về hình ảnh.
- pageSize - Đặt kích thước trang (
A4,Letter, v.v.). - marginTop / marginBottom / marginLeft / marginRight - Điều chỉnh lề trang tính bằng điểm.
Ví dụ về việc áp dụng các tùy chọn này:
const convertSettings = {
outputFormat: 'DOCX',
options: {
embedFonts: true,
pageSize: 'Letter',
marginTop: 30,
marginBottom: 30,
marginLeft: 20,
marginRight: 20
}
};
Tham khảo lớp ConversionOptions class để biết danh sách đầy đủ.
Các yếu tố cần cân nhắc về hiệu năng khi chuyển đổi nội dung HTML sang DOCX
Khi chuyển đổi các tài liệu HTML lớn hoặc phức tạp, hãy ghi nhớ những mẹo sau:
- Tái sử dụng client API - Tạo một thể hiện mới của
ConversionApicho mỗi tệp sẽ gây tốn tài nguyên. - Phát luồng các tệp HTML lớn - Thay vì tải toàn bộ tệp vào bộ nhớ, hãy sử dụng luồng (
fs.createReadStream) và phương thứcuploadFileStreamcủa SDK. - Giới hạn tài nguyên nhúng - Loại bỏ các hình ảnh hoặc script không cần thiết khỏi HTML trước khi tải lên để giảm thời gian xử lý.
- Chuyển đổi hàng loạt - Xử lý các tệp một cách tuần tự trong vòng lặp, nhưng tuân thủ giới hạn tốc độ của API để tránh bị throttling.
Áp dụng những thực hành này giúp duy trì độ trễ thấp và tiêu thụ bộ nhớ vừa phải.
Kết luận
HTML to DOCX conversion in Node.JS becomes straightforward with the GroupDocs.Conversion Cloud SDK for Node.js. By following the steps above, you can integrate reliable DOCX generation from HTML into any server‑side application, customize the output, and optimize performance for large workloads. Remember to acquire a proper license for production use; you can purchase a subscription or obtain a temporary license from the temporary license page. Happy coding!
FAQs
Làm sao để bắt đầu chuyển đổi HTML sang DOCX trong Node.JS?
Sử dụng SDK để tạo một client ConversionApi, tải lên tệp HTML của bạn, thiết lập các tùy chọn chuyển đổi mong muốn và gọi phương thức convert. Quá trình này hoàn toàn bất đồng bộ và trả về định danh tệp DOCX để tải xuống.
Những tùy chọn nào tôi có thể điều chỉnh cho việc tạo DOCX từ HTML?
ConversionOptions cho phép bạn nhúng phông chữ, chọn kích thước trang, đặt lề và kiểm soát việc xử lý hình ảnh. Xem Tham khảo API để biết tất cả các cài đặt khả dụng.
Tôi có thể chuyển đổi HTML chứa CSS bên ngoài hoặc hình ảnh không?
Có. Tải lên bất kỳ tài nguyên nào được tham chiếu (CSS, hình ảnh) lên cùng thư mục lưu trữ trước khi bắt đầu chuyển đổi, và SDK sẽ giải quyết các liên kết trong quá trình xử lý.
Tôi có cần giấy phép cho việc triển khai trong môi trường sản xuất không?
Cần có giấy phép hợp lệ cho môi trường sản xuất. Bạn có thể lấy giấy phép tạm thời để thử nghiệm từ trang giấy phép tạm thời và mua gói đăng ký đầy đủ khi bạn đã sẵn sàng triển khai.
