การแปลงไฟล์ PDF เป็นรูปแบบ DOCX เป็นความต้องการที่พบบ่อยเมื่อต้องสร้างแอปพลิเคชันที่เน้นเอกสาร โดยเฉพาะเมื่อคุณต้องการผลลัพธ์เป็น Word ที่สามารถแก้ไขได้ GroupDocs.Conversion Cloud SDK for Node.js มี API ที่แข็งแกร่งซึ่งทำให้งานนี้ง่ายและสามารถขยายได้ ในคู่มือนี้คุณจะได้เห็นตัวอย่างโค้ดแบบอะซิงโครนัสเต็มรูปแบบ เรียนรู้วิธีทำผลลัพธ์เดียวกันด้วยการเรียก cURL REST ตั้งค่า SDK และใช้คำแนะนำแนวปฏิบัติที่ดีที่สุดสำหรับการแปลงที่เชื่อถือได้
ตัวอย่างโค้ดเต็ม: การแปลง PDF เป็น DOCX แบบอะซิงโครนัสใน Node.JS
ตัวอย่างนี้แสดงวิธีการทำการแปลง PDF เป็น DOCX แบบอะซิงโครนัสโดยใช้ GroupDocs.Conversion Cloud SDK for Node.js.
// PDF to DOCX conversion using GroupDocs.Conversion Cloud SDK for Node.js
const GroupDocsConversionCloud = require('groupdocs-conversion-cloud');
const path = require('path');
// -------------------- Configuration --------------------
const CLIENT_ID = process.env.GROUPDOCS_CLIENT_ID || 'YOUR_CLIENT_ID';
const CLIENT_SECRET = process.env.GROUPDOCS_CLIENT_SECRET || 'YOUR_CLIENT_SECRET';
// Initialize API client
const apiInstance = new GroupDocsConversionCloud.ConversionApi();
apiInstance.apiClient = new GroupDocsConversionCloud.ApiClient();
apiInstance.apiClient.basePath = 'https://api.groupdocs.cloud';
apiInstance.apiClient.authentications['JWT'].clientId = CLIENT_ID;
apiInstance.apiClient.authentications['JWT'].clientSecret = CLIENT_SECRET;
// -------------------- Conversion Logic --------------------
async function convertPdfToDocx() {
try {
// Input file information (must already be uploaded to GroupDocs Cloud storage)
const inputFileInfo = new GroupDocsConversionCloud.FileInfo();
inputFileInfo.filePath = path.normalize('input.pdf'); // generic path in cloud storage
// DOCX specific conversion options (optional, shown for demonstration)
const docxOptions = new GroupDocsConversionCloud.DocxConvertOptions();
docxOptions.preserveOriginalFormatting = true; // keep original PDF layout as much as possible
docxOptions.password = null; // if PDF is password protected, set it here
// Build conversion request
const convertRequest = new GroupDocsConversionCloud.ConvertDocumentRequest();
convertRequest.format = 'docx';
convertRequest.fileInfo = inputFileInfo;
convertRequest.outputPath = path.normalize('output.docx'); // result will be stored in cloud storage
convertRequest.options = docxOptions; // attach format‑specific options
// Perform conversion (async)
const conversionResult = await apiInstance.convertDocument(convertRequest);
// conversionResult contains the path of the generated file and other metadata
console.log('Conversion succeeded.');
console.log('Output file path:', conversionResult.path);
console.log('File size (bytes):', conversionResult.size);
} catch (error) {
// Detailed error handling
if (error.response && error.response.body) {
console.error('API error:', error.response.body);
} else {
console.error('Unexpected error:', error.message);
}
}
}
// -------------------- Execution --------------------
(async () => {
// Optional: set a timeout to avoid hanging indefinitely
const timeoutMs = 300000; // 5 minutes
const timeout = setTimeout(() => {
console.error('Conversion timed out after', timeoutMs / 1000, 'seconds');
process.exit(1);
}, timeoutMs);
await convertPdfToDocx();
clearTimeout(timeout);
// Graceful shutdown
process.exit(0);
})();
หมายเหตุ: ตัวอย่างโค้ดนี้แสดงการทำงานหลัก ก่อนนำไปใช้ในโครงการของคุณ ให้แน่ใจว่าได้อัปเดตเส้นทางไฟล์ (
input.pdf,output.docx, เป็นต้น) ให้ตรงกับตำแหน่งจริงของคุณ ตรวจสอบว่าการพึ่งพาที่จำเป็นทั้งหมดได้ถูกติดตั้งแล้ว และทำการทดสอบอย่างละเอียดในสภาพแวดล้อมการพัฒนาของคุณ หากคุณพบปัญหาใด ๆ โปรดดูที่ เอกสารอย่างเป็นทางการ หรือ ติดต่อกับ ทีมสนับสนุน เพื่อขอความช่วยเหลือ.
แปลงเอกสารโดยใช้ cURL และ REST API
คุณสามารถทำการแปลง PDF เป็น DOCX เดียวกันได้โดยไม่ต้องเขียนโค้ดโดยการเรียกใช้ REST endpoint ของ GroupDocs.Conversion Cloud โดยตรง ขั้นตอนด้านล่างแสดงวิธีการรับโทเค็นการเข้าถึง, อัปโหลดไฟล์ PDF, เริ่มการแปลง, และดาวน์โหลดไฟล์ DOCX ที่ได้
- รับรองความถูกต้องและรับโทเคนการเข้าถึง
แทนที่YOUR_CLIENT_IDและYOUR_CLIENT_SECRETด้วยข้อมูลประจำตัวของคุณ.
curl -X POST "https://api.groupdocs.cloud/v1.0/oauth2/token" \
-H "Content-Type: application/json" \
-d '{
"grant_type":"client_credentials",
"client_id":"YOUR_CLIENT_ID",
"client_secret":"YOUR_CLIENT_SECRET"
}'
การตอบสนองจะมี access_token ที่คุณจะใช้ในการเรียกต่อไป
- อัปโหลด PDF แหล่งที่มา
curl -X PUT "https://api.groupdocs.cloud/v1.0/storage/file/input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/pdf" \
--data-binary @./local/input.pdf
- ดำเนินการแปลง
curl -X POST "https://api.groupdocs.cloud/v1.0/conversion/convert" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"format":"docx",
"fileInfo":{"filePath":"input.pdf"},
"outputPath":"output.docx",
"options":{"preserveOriginalFormatting":true}
}'
การตอบสนองจะคืนเส้นทางของไฟล์ DOCX ที่สร้างขึ้น
- ดาวน์โหลด DOCX ที่แปลงแล้ว
curl -X GET "https://api.groupdocs.cloud/v1.0/storage/file/output.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o ./local/output.docx
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับ payload ของคำขอและตัวเลือกเพิ่มเติม โปรดดูที่ เอกสาร API อย่างเป็นทางการ.
แยกการแปลง PDF เป็น DOCX ใน Node.JS
ด้านล่างเป็นการอธิบายสั้น ๆ เกี่ยวกับส่วนสำคัญของตัวอย่างโค้ดแบบอะซิงโครนัส
- นำเข้าและกำหนดค่าไคลเอนต์
const GroupDocsConversionCloud = require('groupdocs-conversion-cloud');
const apiInstance = new GroupDocsConversionCloud.ConversionApi();
ConversionApi คลาส (อ้างอิง API) คือจุดเริ่มต้นสำหรับการดำเนินการแปลงทั้งหมด.
- ตั้งค่าข้อมูลประจำตัวการรับรอง
apiInstance.apiClient.authentications['JWT'].clientId = CLIENT_ID;
apiInstance.apiClient.authentications['JWT'].clientSecret = CLIENT_SECRET;
การตรวจสอบ JWT ทำให้แต่ละคำขอไปยังบริการคลาวด์มีความปลอดภัย
- เตรียมข้อมูลไฟล์อินพุต
const inputFileInfo = new GroupDocsConversionCloud.FileInfo();
inputFileInfo.filePath = path.normalize('input.pdf');
FileInfo บอก API ว่าไฟล์ PDF ต้นทางอยู่ที่ไหนในที่จัดเก็บของ GroupDocs Cloud storage.
- กำหนดค่าตัวเลือกเฉพาะสำหรับ DOCX
const docxOptions = new GroupDocsConversionCloud.DocxConvertOptions();
docxOptions.preserveOriginalFormatting = true;
DocxConvertOptions ช่วยให้คุณรักษาเค้าโครงเดิมและจัดการรหัสผ่านหากจำเป็น.
- สร้างและส่งคำขอการแปลง
const convertRequest = new GroupDocsConversionCloud.ConvertDocumentRequest();
convertRequest.format = 'docx';
convertRequest.fileInfo = inputFileInfo;
convertRequest.outputPath = path.normalize('output.docx');
convertRequest.options = docxOptions;
const conversionResult = await apiInstance.convertDocument(convertRequest);
เมธอด convertDocument ทำการแปลงจริงและคืนค่าเมตาดาต้า เช่น เส้นทางไฟล์ผลลัพธ์และขนาดไฟล์
การติดตั้งและกำหนดค่า GroupDocs.Conversion Cloud SDK for Node.JS
- ติดตั้งแพ็กเกจ
npm install groupdocs-conversion-cloud
แพ็คเกจนี้พร้อมให้บริการจากรีจิสทรี npm สาธารณะ ดูที่ หน้าดาวน์โหลด สำหรับรายละเอียดเวอร์ชัน.
ข้อกำหนดเบื้องต้น
- Node.js 12 หรือสูงกว่า.
- บัญชี GroupDocs Cloud พร้อม client ID และ client secret.
เริ่มต้น SDK ในโครงการของคุณ (ส่วนย่อยจากตัวอย่างเต็ม)
const GroupDocsConversionCloud = require('groupdocs-conversion-cloud');
const apiInstance = new GroupDocsConversionCloud.ConversionApi();
apiInstance.apiClient.basePath = 'https://api.groupdocs.cloud';
ปรับ basePath หากคุณใช้จุดเชื่อมต่อแบบภูมิภาค
แนวทางปฏิบัติที่ดีที่สุดสำหรับการแปลงเอกสารประสิทธิภาพสูง
- ใช้ไคลเอนต์ API ซ้ำ แทนการสร้างอินสแตนซ์ใหม่สำหรับแต่ละการแปลง; สิ่งนี้ช่วยลดภาระการตรวจสอบสิทธิ์.
- เปิดใช้งานการอัปโหลดแบบสตรีมมิ่ง สำหรับ PDF ขนาดใหญ่เพื่อหลีกเลี่ยงการโหลดไฟล์ทั้งหมดเข้าสู่หน่วยความจำ.
- ตั้งค่า timeout ที่เหมาะสม (เช่น 5 นาที) เพื่อป้องกันงานค้างขณะยังคงให้เอกสารที่ซับซ้อนทำงานจนเสร็จ.
- รักษาการจัดรูปแบบต้นฉบับเฉพาะเมื่อจำเป็น; การปิดใช้งานจะช่วยเร่งการแปลงสำหรับ PDF ที่เป็นข้อความอย่างเดียวแบบง่าย.
- ตรวจสอบขีดจำกัดการใช้ API ในแดชบอร์ดบัญชี GroupDocs ของคุณเพื่อหลีกเลี่ยงการจำกัดความเร็วระหว่างการดำเนินการแบบแบตช์.
บทสรุป
GroupDocs.Conversion Cloud SDK for Node.js ทำให้การแปลง PDF เป็น DOCX เป็นเรื่องง่าย ไม่ว่าคุณจะชอบใช้ไลบรารีที่มีฟีเจอร์ครบถ้วนหรือการเรียก REST โดยตรงด้วย cURL. โดยทำตามตัวอย่างโค้ดแบบ async, การกำหนดค่าคลไอเอนท์อย่างถูกต้อง, และการใช้เคล็ดลับประสิทธิภาพที่กล่าวไว้ข้างต้น, คุณสามารถผสานการแปลงเอกสารที่เชื่อถือได้เข้าไปในบริการ Node.JS ใดก็ได้. จำไว้ว่าให้รับใบอนุญาตที่เหมาะสมสำหรับการใช้งานในสภาพแวดล้อมการผลิต; รายละเอียดราคาอยู่ในหน้าผลิตภัณฑ์, และสามารถรับใบอนุญาตชั่วคราวจาก หน้าลิขสิทธิ์ชั่วคราว เพื่อการประเมินค่า.
FAQs
การแปลง PDF เป็น DOCX ใน Node.JS จัดการกับเลย์เอาต์ที่ซับซ้อนอย่างไร?
SDK พยายามรักษาการจัดรูปแบบเดิมโดยค่าเริ่มต้น. คุณสามารถสลับpreserveOriginalFormattingในDocxConvertOptionsเพื่อแลกเปลี่ยนความแม่นยำกับความเร็ว. ดูที่ API reference สำหรับตัวเลือกทั้งหมด.ขีดจำกัดขนาดไฟล์สำหรับการแปลง PDF เป็น DOCX คืออะไร?
บริการคลาวด์รับไฟล์ได้สูงสุด 200 MB สำหรับบัญชีฟรี; ไฟล์ที่ใหญ่กว่าจะต้องอัปเกรดแผนการใช้งาน. การอัปโหลดทำแบบสตรีมมิ่ง ทำให้การใช้หน่วยความจำบนเซิร์ฟเวอร์ของคุณต่ำ.ฉันสามารถแปลง PDF หลายไฟล์เป็น DOCX ในคำขอเดียวได้หรือไม่?
API จะประมวลผลเอกสารหนึ่งไฟล์ต่อคำขอ แต่คุณสามารถวนลูปรายการไฟล์ใน Node.JS และทำการแปลงพร้อมกันได้ โดยคำนึงถึงขีดจำกัดการทำงานพร้อมกันของบัญชีของคุณมีวิธีทดสอบการแปลงในเครื่องโดยไม่ต้องใช้ไลเซนส์ที่ต้องชำระเงินหรือไม่?
ใช่ คุณสามารถขอรับไลเซนส์การประเมินชั่วคราวจาก หน้าไลเซนส์ชั่วคราว. ซึ่งให้ฟังก์ชันเต็มสำหรับการพัฒนาและการทดสอบ.
