การแปลงไฟล์ 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 ที่ได้

  1. รับรองความถูกต้องและรับโทเคนการเข้าถึง
    แทนที่ 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 ที่คุณจะใช้ในการเรียกต่อไป

  1. อัปโหลด 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
  1. ดำเนินการแปลง
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 ที่สร้างขึ้น

  1. ดาวน์โหลด 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

ด้านล่างเป็นการอธิบายสั้น ๆ เกี่ยวกับส่วนสำคัญของตัวอย่างโค้ดแบบอะซิงโครนัส

  1. นำเข้าและกำหนดค่าไคลเอนต์
const GroupDocsConversionCloud = require('groupdocs-conversion-cloud');
const apiInstance = new GroupDocsConversionCloud.ConversionApi();

ConversionApi คลาส (อ้างอิง API) คือจุดเริ่มต้นสำหรับการดำเนินการแปลงทั้งหมด.

  1. ตั้งค่าข้อมูลประจำตัวการรับรอง
apiInstance.apiClient.authentications['JWT'].clientId = CLIENT_ID;
apiInstance.apiClient.authentications['JWT'].clientSecret = CLIENT_SECRET;

การตรวจสอบ JWT ทำให้แต่ละคำขอไปยังบริการคลาวด์มีความปลอดภัย

  1. เตรียมข้อมูลไฟล์อินพุต
const inputFileInfo = new GroupDocsConversionCloud.FileInfo();
inputFileInfo.filePath = path.normalize('input.pdf');

FileInfo บอก API ว่าไฟล์ PDF ต้นทางอยู่ที่ไหนในที่จัดเก็บของ GroupDocs Cloud storage.

  1. กำหนดค่าตัวเลือกเฉพาะสำหรับ DOCX
const docxOptions = new GroupDocsConversionCloud.DocxConvertOptions();
docxOptions.preserveOriginalFormatting = true;

DocxConvertOptions ช่วยให้คุณรักษาเค้าโครงเดิมและจัดการรหัสผ่านหากจำเป็น.

  1. สร้างและส่งคำขอการแปลง
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

  1. ติดตั้งแพ็กเกจ
npm install groupdocs-conversion-cloud

แพ็คเกจนี้พร้อมให้บริการจากรีจิสทรี npm สาธารณะ ดูที่ หน้าดาวน์โหลด สำหรับรายละเอียดเวอร์ชัน.

  1. ข้อกำหนดเบื้องต้น

    • Node.js 12 หรือสูงกว่า.
    • บัญชี GroupDocs Cloud พร้อม client ID และ client secret.
  2. เริ่มต้น 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 และทำการแปลงพร้อมกันได้ โดยคำนึงถึงขีดจำกัดการทำงานพร้อมกันของบัญชีของคุณ

  • มีวิธีทดสอบการแปลงในเครื่องโดยไม่ต้องใช้ไลเซนส์ที่ต้องชำระเงินหรือไม่?
    ใช่ คุณสามารถขอรับไลเซนส์การประเมินชั่วคราวจาก หน้าไลเซนส์ชั่วคราว. ซึ่งให้ฟังก์ชันเต็มสำหรับการพัฒนาและการทดสอบ.

อ่านต่อ