توسعهدهندگان اغلب نیاز دارند فایلهای 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
برای دریافت فهرست کامل نقاط انتهایی و پارامترها، به مستندات رسمی 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 با SID برنامه و کلید برنامه معتبر.
- دسترسی به اینترنت برای فراخوانیهای API.
SDK را از طریق npm نصب کنید و آخرین بسته را دانلود کنید:
npm install groupdocs-merger-cloud
شما همچنین میتوانید باینریها را مستقیماً از صفحهٔ صفحه دانلود دریافت کنید.
تنظیم دقیق گزینههای تقسیم
شیء SplitOptions چندین ویژگی را ارائه میدهد که میتوانید تنظیم کنید:
- pages - یک آرایه از بازههای صفحه (به عنوان مثال،
['1-2','3-5']). این تنظیم اصلی است که در مثال استفاده شده است. - outputPath - پوشهٔ اختیاری که فایلهای تقسیمشده در آن ذخیره میشوند در ذخیرهسازی ابری.
- preserveMetadata - وقتی به
trueتنظیم شود، فرادادهٔ سند اصلی به هر بخش کپی میشود. برای گزینههای بیشتر به API reference مراجعه کنید.
تنظیم این مقادیر به شما امکان میدهد اندازه، نامگذاری و فراداده هر PDF تولید شده را کنترل کنید.
نتیجهگیری
تقسیم PDF به چندین PDF در Node.JS بهراحتی امکانپذیر میشود با GroupDocs.Merger Cloud SDK for Node.JS. این SDK بارگذاری فایل، انتخاب بازه صفحات و بازیابی نتیجه را مدیریت میکند و به شما اجازه میدهد تا بر ادغام خروجی در جریان کار خود تمرکز کنید. بهخاطر داشته باشید که SID برنامه و کلید برنامه خود را ایمن نگه دارید و برای استقرارهای تولیدی استفاده از یک لایسنس تجاری را در نظر بگیرید. جزئیات قیمتگذاری در صفحه محصول موجود است و میتوانید یک لایسنس موقت را از صفحه لایسنس موقت دریافت کنید. با کد، مثالهای cURL و نکات پیکربندی موجود در این راهنما، آمادهاید تا تقسیم PDF قوی را در برنامههای Node.JS خود پیادهسازی کنید.
سوالات متداول
چگونه میتوانم PDF را در Node.JS به چندین PDF تقسیم کنم با استفاده از بازههای صفحه سفارشی؟
از ویژگیpagesدرSplitOptionsاستفاده کنید تا هر بازهای که نیاز دارید را تعریف کنید، مانند['1-3','4-6']. SDK یک PDF جداگانه برای هر بازه تولید خواهد کرد.آیا میتوانم یک PDF را بدون ذخیرهسازی دائم در فضای ابری تقسیم کنم؟
بله. پس از بارگذاری فایل منبع و تکمیل تقسیم، میتوانید فایل اصلی را باstorageApi.deleteFileهمانطور که در مثال نشان داده شده است، حذف کنید.آیا برای استفاده از ویژگی تقسیم در محیط تولید به یک لایسنس پرداختی نیاز دارم؟
برای استفاده در محیط تولید به یک لایسنس تجاری نیاز است. برای قیمتگذاری به صفحه محصول مراجعه کنید و برای ارزیابی، یک لایسنس موقت از صفحه لایسنس موقت دریافت کنید.
