غالبًا ما يحتاج المطورون إلى تقسيم ملفات 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 مع App SID و App Key صالحين.
- الوصول إلى الإنترنت لإجراء مكالمات API.
قم بتثبيت SDK عبر npm وقم بتنزيل أحدث حزمة:
npm install groupdocs-merger-cloud
يمكنك أيضًا جلب الملفات الثنائية مباشرةً من صفحة التحميل.
ضبط خيارات الانقسام
يقدم كائن SplitOptions عدة خصائص يمكنك تعديلها:
- pages - مصفوفة من نطاقات الصفحات (مثال:
['1-2','3-5']). هذا هو الإعداد الأساسي المستخدم في المثال. - outputPath - مجلد اختياري حيث سيتم تخزين ملفات التقسيم في التخزين السحابي.
- preserveMetadata - عند تعيينه إلى
true، يتم نسخ بيانات تعريف المستند الأصلي إلى كل جزء. راجع مرجع API لمزيد من الخيارات.
تعديل هذه القيم يتيح لك التحكم في الحجم والتسمية والبيانات الوصفية لكل ملف 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كما هو موضح في المثال.هل أحتاج إلى ترخيص مدفوع لاستخدام ميزة التقسيم في الإنتاج؟
يتطلب الاستخدام في بيئة الإنتاج ترخيصًا تجاريًا. قم بزيارة صفحة المنتج لمعرفة الأسعار واحصل على ترخيص مؤقت من صفحة الترخيص المؤقت للتقييم.
