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