การแปลงหน้า HTML ที่มีรูปแบบหลากหลายเป็นไฟล์ DOCX ที่สามารถแก้ไขได้เป็นความต้องการที่พบบ่อยสำหรับกระบวนการรายงานและการทำงานอัตโนมัติของเอกสาร. GroupDocs.Conversion Cloud SDK for Node.js ช่วยให้นักพัฒนาสามารถทำการแปลงนี้ได้ทั้งหมดผ่านไลบรารีที่ใช้ REST. ในบทเรียนนี้คุณจะได้เห็นวิธีตั้งค่า SDK, เขียนโค้ด Node.JS ที่ทำการแปลง HTML เป็น DOCX ใน Node.JS, ใช้ cURL เพื่อเรียก API, และใช้ตัวเลือกการกำหนดค่าเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด.
ข้อกำหนดเบื้องต้นและการตั้งค่า
ก่อนที่คุณจะเริ่ม, ตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:
- Node.js 14 หรือใหม่กว่าติดตั้งบนเครื่องพัฒนาของคุณ
- บัญชี GroupDocs.Conversion Cloud ที่ใช้งานได้ (คุณสามารถลงทะเบียนเพื่อทดลองใช้ฟรีได้บนหน้าผลิตภัณฑ์)
- Client ID และ Client Secret ของคุณจากแดชบอร์ด GroupDocs Cloud
- การเชื่อมต่ออินเทอร์เน็ตสำหรับเรียกใช้ REST API ของคลาวด์
ติดตั้ง SDK ผ่าน npm:
npm install groupdocs-conversion-cloud
ดาวน์โหลดแพ็กเกจล่าสุดและดูซอร์สโค้ดบน GitHub หากคุณต้องการสำรวจโค้ด:
ดาวน์โหลด GroupDocs.Conversion Cloud SDK for Node.js
เมื่อ SDK ถูกติดตั้งและข้อมูลประจำตัวพร้อมแล้ว คุณสามารถดำเนินการต่อไปยังการใช้งานได้
การแปลง HTML เป็น DOCX ใน Node.JS: คู่มือแบบทีละขั้นตอน
ด้านล่างเป็นขั้นตอนสรุปที่แสดงแต่ละขั้นตอนเชิงตรรกะอย่างกระชับ โค้ดต้นฉบับเต็มจะถูกให้ในภายหลัง.
ขั้นตอนที่ 1: เริ่มต้น Conversion API Client
สร้างอินสแตนซ์ของ ConversionApi และกำหนดค่าการรับรองความถูกต้อง
const { ConversionApi, Configuration } = require('groupdocs-conversion-cloud');
const config = new Configuration({
clientId: 'YOUR_CLIENT_ID',
clientSecret: 'YOUR_CLIENT_SECRET'
});
const conversionApi = new ConversionApi(config);
ขั้นตอนที่ 2: อัปโหลดไฟล์ต้นฉบับ HTML
อัปโหลดไฟล์ HTML ที่คุณต้องการแปลง. API จะคืนค่าไฟล์ไอดีที่คุณจะใช้สำหรับการแปลง.
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;
ขั้นตอนที่ 3: ตั้งค่าตัวเลือกการแปลง
กำหนดค่าตัวเลือกเฉพาะของ DOCX เช่น การฝังแบบอักษรหรือการตั้งค่าขอบหน้ากระดาษ ขั้นตอนนี้แสดงการปรับแต่ง DOCX Generation from HTML.
const convertSettings = {
outputFormat: 'DOCX',
options: {
embedFonts: true,
pageSize: 'A4',
marginTop: 20,
marginBottom: 20,
marginLeft: 15,
marginRight: 15
}
};
ขั้นตอนที่ 4: ดำเนินการแปลง
เรียกเมธอด convert พร้อมกับ ID ของไฟล์ต้นทางและการตั้งค่าที่กำหนดไว้ข้างต้น.
const convertResponse = await conversionApi.convert({
fileId: sourceFileId,
convertSettings: convertSettings
});
const docxFileId = convertResponse.id;
ขั้นตอนที่ 5: ดาวน์โหลดไฟล์ DOCX ที่ได้
ดึงไฟล์ DOCX ที่สร้างขึ้นและบันทึกไว้ในเครื่องท้องถิ่น
const docxData = await conversionApi.downloadFile({ fileId: docxFileId });
fs.writeFileSync(path.resolve(__dirname, 'output.docx'), docxData);
console.log('DOCX file saved as output.docx');
ขั้นตอนข้างต้นแสดงให้เห็นถึงกระบวนการทำงานที่สมบูรณ์ HTML to DOCX conversion in Node.JS โดยใช้ GroupDocs.Conversion Cloud SDK.
ตัวอย่างโค้ดเต็ม: การสร้าง DOCX จากเนื้อหา HTML
โปรแกรมต่อไปนี้จะรวมส่วนต่าง ๆ เข้าด้วยกันเป็นสคริปต์เดียวที่สามารถเรียกใช้ได้.
// 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);
});
หมายเหตุ: ตัวอย่างโค้ดนี้แสดงการทำงานหลักของฟังก์ชัน ก่อนนำไปใช้ในโครงการของคุณ ให้ตรวจสอบและอัปเดตเส้นทางไฟล์ (
sample.html,output.docx), ยืนยันว่าการพึ่งพาทั้งหมดได้ติดตั้งอย่างถูกต้อง และทดสอบอย่างละเอียดในสภาพแวดล้อมการพัฒนา หากพบปัญหาใด ๆ โปรดดูที่ เอกสารอย่างเป็นทางการ หรือ ติดต่อทีม สนับสนุน เพื่อขอความช่วยเหลือ.
การดำเนินการแปลงโดยใช้ cURL และ REST API
หากคุณต้องการทำงานโดยตรงกับ HTTP คำสั่ง cURL ด้านล่างนี้จะทำการแปลงเดียวกัน
- รับโทเค็นการเข้าถึง
แทนที่ YOUR_CLIENT_ID และ YOUR_CLIENT_SECRET ด้วยข้อมูลประจำตัวของคุณ.
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"
การตอบสนองมี access_token
- อัปโหลดไฟล์ HTML
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/files/sample.html" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@sample.html"
- เริ่มการแปลง
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"
}
}'
- ดาวน์โหลด DOCX ที่แปลงแล้ว
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/files/output.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.docx
สำหรับรายการพารามิเตอร์ทั้งหมด ดูที่ เอกสาร API อย่างเป็นทางการ.
การกำหนดค่าตัวเลือกสำหรับการแปลงเนื้อหา HTML เป็น DOCX
SDK เปิดเผยคุณสมบัติต่าง ๆ ที่ให้คุณปรับแต่งผลลัพธ์ได้อย่างละเอียด:
- embedFonts - ฝังฟอนต์ทั้งหมดที่อ้างอิงไว้ในไฟล์ DOCX เพื่อรักษาความเที่ยงตรงของการแสดงผล
- pageSize - กำหนดขนาดหน้ากระดาษ (
A4,Letter, เป็นต้น) - marginTop / marginBottom / marginLeft / marginRight - ปรับระยะขอบของหน้าเป็นหน่วยจุด
ตัวอย่างการใช้ตัวเลือกเหล่านี้:
const convertSettings = {
outputFormat: 'DOCX',
options: {
embedFonts: true,
pageSize: 'Letter',
marginTop: 30,
marginBottom: 30,
marginLeft: 20,
marginRight: 20
}
};
ดูที่ คลาส ConversionOptions สำหรับรายการทั้งหมด.
การพิจารณาด้านประสิทธิภาพสำหรับการแปลงเนื้อหา HTML เป็น DOCX
เมื่อแปลงเอกสาร HTML ขนาดใหญ่หรือซับซ้อน ให้คำนึงถึงเคล็ดลับต่อไปนี้:
- ใช้ไคลเอนต์ API ซ้ำ - การสร้างอินสแตนซ์
ConversionApiใหม่สำหรับแต่ละไฟล์จะเพิ่มภาระการทำงาน. - สตรีมไฟล์ HTML ขนาดใหญ่ - แทนที่จะโหลดไฟล์ทั้งหมดเข้าสู่หน่วยความจำ ให้ใช้สตรีม (
fs.createReadStream) และเมธอดuploadFileStreamของ SDK. - จำกัดทรัพยากรที่ฝังอยู่ - ลบรูปภาพหรือสคริปต์ที่ไม่จำเป็นออกจาก HTML ก่อนอัปโหลดเพื่อ ลดเวลาในการประมวลผล.
- การแปลงเป็นชุด - ประมวลผลไฟล์แบบต่อเนื่องในลูป แต่ต้องเคารพขีดจำกัดอัตราการเรียก API เพื่อหลีกเลี่ยงการจำกัดความเร็ว.
การนำแนวปฏิบัติเหล่านี้ไปใช้ช่วยรักษาความหน่วงต่ำและการใช้หน่วยความจำที่พอเหมาะ
สรุป
HTML to DOCX conversion in Node.JS becomes straightforward with the GroupDocs.Conversion Cloud SDK for Node.js. โดยทำตามขั้นตอนข้างต้น คุณสามารถรวมการสร้าง DOCX ที่เชื่อถือได้จาก HTML ไปยังแอปพลิเคชันฝั่งเซิร์ฟเวอร์ใดก็ได้ ปรับแต่งผลลัพธ์และเพิ่มประสิทธิภาพการทำงานสำหรับงานที่มีปริมาณมาก จำไว้ว่าให้รับใบอนุญาตที่เหมาะสมสำหรับการใช้งานในผลิตภัณฑ์; คุณสามารถซื้อการสมัครสมาชิกหรือรับใบอนุญาตชั่วคราวจาก หน้าลิขสิทธิ์ชั่วคราว. ขอให้สนุกกับการเขียนโค้ด!
คำถามที่พบบ่อย
ฉันจะเริ่มการแปลง HTML เป็น DOCX ใน Node.JS อย่างไร?
ใช้ SDK เพื่อสร้างไคลเอนต์ ConversionApi อัปโหลดไฟล์ HTML ของคุณ ตั้งค่าตัวเลือกการแปลงที่ต้องการ และเรียกเมธอด convert กระบวนการนี้ทำงานแบบอะซิงโครนัสเต็มรูปแบบและจะคืนค่าไอดีไฟล์ DOCX สำหรับดาวน์โหลด.
ตัวเลือกใดบ้างที่ฉันสามารถปรับได้สำหรับการสร้าง DOCX จาก HTML?
อ็อบเจ็กต์ ConversionOptions ให้คุณฝังฟอนต์, เลือกขนาดหน้า, ตั้งค่าขอบกระดาษ, และควบคุมการจัดการภาพ ดู อ้างอิง API สำหรับการตั้งค่าที่มีให้ทั้งหมด.
ฉันสามารถแปลง HTML ที่มี CSS ภายนอกหรือรูปภาพได้หรือไม่?
ใช่. อัปโหลดทรัพยากรที่อ้างอิง (CSS, รูปภาพ) ไปยังโฟลเดอร์จัดเก็บเดียวกันก่อนเริ่มการแปลง และ SDK จะทำการแก้ไขลิงก์ระหว่างการประมวลผล.
ฉันต้องการใบอนุญาตสำหรับการปรับใช้ในสภาพแวดล้อมการผลิตหรือไม่?
ต้องมีใบอนุญาตที่ถูกต้องสำหรับการใช้งานในสภาพแวดล้อมการผลิต คุณสามารถรับใบอนุญาตชั่วคราวสำหรับการทดสอบได้จาก หน้าลิขสิทธิ์ชั่วคราว และซื้อการสมัครสมาชิกเต็มรูปแบบเมื่อคุณพร้อมที่จะเปิดใช้งานจริง
