นักพัฒนามักต้องแยกไฟล์ PDF ขนาดใหญ่เป็นส่วนย่อยที่เล็กลงและจัดการได้ง่ายขึ้น ด้วย GroupDocs.Merger Cloud SDK for Node.JS, การแยก PDF เป็นหลายส่วนจะเป็นเรื่องง่าย เนื่องจากบริการคลาวด์ทำหน้าที่หนักให้คุณ คุณจึงสามารถมุ่งเน้นที่ตรรกะของแอปพลิเคชันของคุณได้ คู่มือนี้ให้ตัวอย่างการทำงานเต็มรูปแบบ แสดงวิธีทำงานเดียวกันผ่าน cURL และอธิบายตัวเลือกการกำหนดค่าที่ช่วยให้คุณปรับแต่งการแยกไฟล์ได้อย่างละเอียด

แยก PDF เป็นหลาย PDF ใน Node.JS - ตัวอย่างโค้ดเต็ม

ตัวอย่างนี้แสดงวิธีการแยก PDF เป็นหลายไฟล์ PDF โดยใช้ GroupDocs.Merger Cloud SDK for Node.JS.

const fs = require('fs');
const path = require('path');
const GroupDocsMergerCloud = require('@groupdocs/merger-cloud');

// ---------- Set up API credentials ----------
const client = new GroupDocsMergerCloud.ApiClient();
client.appSid = 'YOUR_APP_SID';
client.appKey = 'YOUR_APP_KEY';

// ---------- Initialize API instances ----------
const mergerApi = new GroupDocsMergerCloud.MergerApi(client);
const storageApi = new GroupDocsMergerCloud.StorageApi(client);

// ---------- Helper to upload a local file to cloud storage ----------
async function uploadFile(localPath, cloudPath) {
    const fileData = fs.readFileSync(localPath);
    const uploadRequest = new GroupDocsMergerCloud.UploadFileRequest({
        path: cloudPath,
        file: fileData
    });
    await storageApi.uploadFile(uploadRequest);
}

// ---------- Helper to download a cloud file to local storage ----------
async function downloadFile(cloudPath, localPath) {
    const downloadRequest = new GroupDocsMergerCloud.DownloadFileRequest({ path: cloudPath });
    const response = await storageApi.downloadFile(downloadRequest);
    fs.writeFileSync(localPath, response);
}

// ---------- Main execution ----------
(async () => {
    try {
        // 1. Upload source PDF to cloud storage
        const localInputPdf = path.resolve(__dirname, 'input.pdf');          // local source PDF
        const cloudInputPdf = 'input/input.pdf';                            // cloud path
        await uploadFile(localInputPdf, cloudInputPdf);
        console.log('Uploaded PDF to cloud storage.');

// 2. Configure split options (example: split into two parts: pages 1‑2 and 3‑5)
        const splitOptions = new GroupDocsMergerCloud.SplitOptions({
            pages: ['1-2', '3-5']                                            // page ranges to split
        });

// 3. Build split request
        const splitRequest = new GroupDocsMergerCloud.SplitDocumentRequest({
            fileInfo: new GroupDocsMergerCloud.FileInfo({ filePath: cloudInputPdf }),
            options: splitOptions
        });

// 4. Execute split operation
        const splitResult = await mergerApi.splitDocument(splitRequest);
        console.log(`Split operation completed. ${splitResult.length} parts generated.`);

// 5. Download each split part and save locally
        for (let i = 0; i < splitResult.length; i++) {
            const partInfo = splitResult[i];
            const localOutputPath = path.resolve(__dirname, `output_part_${i + 1}.pdf`);
            await downloadFile(partInfo.path, localOutputPath);
            console.log(`Saved split part ${i + 1} to ${localOutputPath}`);
        }

// 6. (Optional) Clean up cloud storage – delete uploaded source file
        const deleteRequest = new GroupDocsMergerCloud.DeleteFileRequest({ path: cloudInputPdf });
        await storageApi.deleteFile(deleteRequest);
        console.log('Cleaned up source file from cloud storage.');
    } catch (error) {
        console.error('Error during PDF split process:', error);
    }
})();

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

แยก PDF ด้วย REST API พร้อม cURL

หากคุณต้องการใช้วิธี REST แบบบริสุทธิ์เดียวกัน การแยกไฟล์สามารถทำได้ด้วยคำสั่ง cURL ขั้นตอนด้านล่างแสดงวิธีรับโทเค็นการเข้าถึง, อัปโหลด PDF ต้นฉบับ, เรียกใช้การแยก, และดาวน์โหลดแต่ละส่วน.

# 1. Get an access token (replace YOUR_CLIENT_ID and 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"
# 2. Upload the source PDF (replace YOUR_ACCESS_TOKEN and adjust paths)
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/input.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/pdf" \
     --data-binary @./input.pdf
# 3. Execute the split operation (pages 1-2 and 3-5)
curl -X POST "https://api.groupdocs.cloud/v2.0/merger/split" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "fileInfo": { "filePath": "input.pdf" },
           "options": { "pages": ["1-2","3-5"] }
         }'
# 4. Download each generated part (example for part 1)
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/output_part_1.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o ./output_part_1.pdf

สำหรับรายการเต็มของ endpoint และพารามิเตอร์, โปรดดูที่ เอกสาร API อย่างเป็นทางการ.

วิธีการทำงานของการแยก PDF เป็นหลาย PDF ใน Node.JS

การเข้าใจกระบวนการช่วยให้คุณปรับโค้ดให้เข้ากับสถานการณ์ที่ซับซ้อนมากขึ้น

  1. เริ่มต้นไคลเอนต์ API - new GroupDocsMergerCloud.ApiClient() สร้างไคลเอนต์ที่เก็บ App SID และ App Key ของคุณ.
const client = new GroupDocsMergerCloud.ApiClient();
client.appSid = 'YOUR_APP_SID';
client.appKey = 'YOUR_APP_KEY';
  1. อัปโหลดไฟล์ต้นฉบับ - ฟังก์ชันช่วยเหลือ uploadFile จะอ่านไฟล์ PDF ในเครื่องและส่งไปยังคลาวด์สตอเรจโดยใช้ storageApi.uploadFile.
await uploadFile(localInputPdf, cloudInputPdf);
  1. กำหนดค่าตัวเลือกการแยก - new GroupDocsMergerCloud.SplitOptions({ pages: ['1-2', '3-5'] }) บอกบริการว่าต้องดึงช่วงหน้าที่ใด.
const splitOptions = new GroupDocsMergerCloud.SplitOptions({
    pages: ['1-2', '3-5']
});
  1. ส่งคำขอแยกเอกสาร - mergerApi.splitDocument(splitRequest) ส่งคำขอและคืนอาเรย์ที่มีข้อมูลเกี่ยวกับแต่ละส่วนที่สร้างขึ้น.
const splitResult = await mergerApi.splitDocument(splitRequest);
  1. ดาวน์โหลดผลลัพธ์ - ลูปทำการวนซ้ำผ่าน splitResult โดยเรียก downloadFile สำหรับแต่ละส่วนและบันทึกลงในเครื่องท้องถิ่น.
for (let i = 0; i < splitResult.length; i++) {
    const partInfo = splitResult[i];
    await downloadFile(partInfo.path, localOutputPath);
}

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับแต่ละคลาสและเมธอด โปรดดูที่ อ้างอิง API.

ข้อกำหนดเบื้องต้นและการตั้งค่า

ก่อนที่คุณจะเริ่ม, ตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:

  • Node.js 14 หรือใหม่กว่า ติดตั้งแล้ว.
  • บัญชี GroupDocs Cloud ที่มี App SID และ App Key ที่ถูกต้อง.
  • การเข้าถึงอินเทอร์เน็ตสำหรับการเรียก API.

ติดตั้ง SDK ผ่าน npm และดาวน์โหลดแพ็กเกจล่าสุด:

npm install groupdocs-merger-cloud

คุณยังสามารถดึงไฟล์ไบนารีโดยตรงจาก หน้าดาวน์โหลด.

การปรับแต่งตัวเลือกการแยก

SplitOptions object มีคุณสมบัติต่าง ๆ ที่คุณสามารถปรับได้:

  • pages - อาร์เรย์ของช่วงหน้า (เช่น ['1-2','3-5']). นี่เป็นการตั้งค่าหลักที่ใช้ในตัวอย่าง.
  • outputPath - โฟลเดอร์ทางเลือกที่ไฟล์ที่แยกจะถูกจัดเก็บในที่เก็บข้อมูลบนคลาวด์.
  • preserveMetadata - เมื่อกำหนดเป็น true เมตาดาต้าเอกสารต้นฉบับจะถูกคัดลอกไปยังแต่ละส่วน. ดู API reference สำหรับตัวเลือกเพิ่มเติม.

การปรับค่าเหล่านี้ทำให้คุณสามารถควบคุมขนาด ชื่อไฟล์ และเมตาดาต้าของ PDF แต่ละไฟล์ที่สร้างออกมาได้

สรุป

การแยก PDF เป็นหลาย PDF ใน Node.JS กลายเป็นเรื่องง่ายด้วย GroupDocs.Merger Cloud SDK for Node.JS. SDK จัดการการอัปโหลดไฟล์, การเลือกช่วงหน้า, และการดึงผลลัพธ์, ทำให้คุณสามารถมุ่งเน้นการผสานผลลัพธ์เข้ากับกระบวนการทำงานของคุณได้. อย่าลืมรักษาความปลอดภัยของ App SID และ App Key ของคุณ, และพิจารณาใช้ใบอนุญาตเชิงพาณิชย์สำหรับการใช้งานในสภาพแวดล้อมการผลิต. รายละเอียดราคาอยู่บนหน้าผลิตภัณฑ์, และคุณสามารถรับใบอนุญาตชั่วคราวจากหน้า หน้าใบอนุญาตชั่วคราว. ด้วยโค้ด, ตัวอย่าง cURL, และเคล็ดลับการกำหนดค่าในคู่มือนี้, คุณพร้อมที่จะนำการแยก PDF ที่แข็งแรงไปใช้ในแอปพลิเคชัน Node.JS ของคุณ.

คำถามที่พบบ่อย

  • ฉันจะแบ่ง PDF เป็นหลาย PDF ใน Node.JS โดยใช้ช่วงหน้าที่กำหนดเองได้อย่างไร?
    ใช้คุณสมบัติ pages ของ SplitOptions เพื่อกำหนดช่วงที่คุณต้องการ เช่น ['1-3','4-6']. SDK จะสร้าง PDF แยกสำหรับแต่ละช่วง.

  • ฉันสามารถแยกไฟล์ PDF ได้โดยไม่ต้องเก็บไว้ในคลาวด์สตอเรจแบบถาวรหรือไม่?
    ใช่ หลังจากอัปโหลดไฟล์ต้นฉบับและทำการแยกเสร็จแล้ว คุณสามารถลบไฟล์ต้นฉบับได้ด้วย storageApi.deleteFile ตามตัวอย่าง

  • ฉันต้องมีใบอนุญาตแบบชำระเงินเพื่อใช้ฟีเจอร์แยกในสภาพแวดล้อมการผลิตหรือไม่?
    จำเป็นต้องมีใบอนุญาตเชิงพาณิชย์สำหรับการใช้งานในสภาพแวดล้อมการผลิต เยี่ยมชมหน้าผลิตภัณฑ์เพื่อดูราคาและรับใบอนุญาตชั่วคราวจาก หน้าการรับใบอนุญาตชั่วคราว เพื่อการประเมินผล

อ่านเพิ่มเติม