إرسال بعض صفحات PDF فقط: استخراج الصفحات وحذفها وما يبقى في الملف
لإرسال بعض صفحات PDF فقط، اكتب الصفحات التي تريد إبقاءها في أداة استخراج الصفحات أو الصفحات التي تريد إسقاطها في أداة حذف الصفحات. يُزال نص الصفحات المحذوفة، لكن عناوين الإشارات المرجعية وعنوان المستند قد تبقى في الملف.
تحوّل أداة استخراج الصفحات ملف PDF من 12 صفحة إلى ملف جديد لا يحوي إلا الصفحات التي تكتبها، مثل 1,3,5-8. وتفعل أداة حذف الصفحات العكس: تكتب ما تريد إسقاطه. كلتاهما تنسخ الصفحات الأصلية ولا ترسمها من جديد، فيبقى النص قابلاً للتحديد ولا يتشوش الملف. وهناك حد واحد مهم إن كانت الصفحات المحذوفة حساسة: محتوى الصفحة يزول، لكن عناوين الإشارات المرجعية وعنوان المستند قد تبقى في الملف الجديد.
اختر الأداة بحسب ما تعرفه
إن كنت تعرف الصفحات التي تريد إبقاءها فاستخدم استخراج الصفحات. وإن كنت تعرف الصفحات التي تريد إسقاطها فاستخدم حذف الصفحات. ويظهر الفرق في ترتيب الناتج:
- تكتب أداة استخراج الصفحات الصفحات بالترتيب الذي تدخله. فإدخال
5,1,3يعطي الصفحة 5 ثم 1 ثم 3. والصفحة المكتوبة مرتين تظهر مرة واحدة. - تُبقي أداة حذف الصفحات الصفحات المتبقية بترتيبها الأصلي.
أرقام الصفحات هي التي يعرضها القارئ، وتبدأ من 1. وتصلح صيغة القائمة نفسها في الأداتين: صفحات مفردة (4)، ونطاقات (5-8)، وقوائم مفصولة بفواصل (1,3,5-8)، والكلمة all، وتعابير مثل 2n+1. يعدّ التعبير n بدءاً من 1، فيعطي 2n+1 الصفحات 3 و5 و7 وهكذا؛ ولا تدخل الصفحة 1، فاكتب 1,2n+1 إن أردتها.
مثال تطبيقي: إرسال جزء من عقد إيجار إلى المؤجّر
المدخل عقد إيجار من 12 صفحة بمقاس Letter. تحمل كل صفحة رقمها نصاً ("Lease agreement - page 3 of 12")، فيسهل فحص الناتج. يحتاج المؤجّر إلى الصفحات 1 و3 و5 إلى 8، دون الملحق. في المتصفح ترفع الملف وتكتب 1,3,5-8 ثم تنزّل الناتج. ومن سكربت تكون العملية نفسها:
curl -s -o pages.pdf \
-F [email protected] \
-F pageNumbers="1,3,5-8" \
https://pdf123.xyz/api/v1/general/rearrange-pages
تُرسل أداة الموقع القائمة إلى نقطة النهاية هذه وتترك customMode دون تعيين، ومعناه "استخدم قائمتي بترتيبي". هذه نتائج تشغيل واحد على خادم محلي بتاريخ 2026-10-04 بملف اختبار مولَّد؛ والأرقام هي عدد الصفحات وعلامات الصفحات المستخرجة من الناتج:
| المدخل إلى الأداة | الأداة | الصفحات في الناتج |
|---|---|---|
1,3,5-8 |
استخراج الصفحات | 6 صفحات: 1 و3 و5 و6 و7 و8 |
5,1,3,1 |
استخراج الصفحات | 3 صفحات: 5 و1 و3 |
2n+1 |
استخراج الصفحات | 5 صفحات: 3 و5 و7 و9 و11 |
10-15 |
استخراج الصفحات | 3 صفحات: 10 و11 و12 |
2-4,9 |
حذف الصفحات | 8 صفحات: 1 و5 و6 و7 و8 و10 و11 و12 |
| فارغ (عبر API فقط؛ فالنموذج على الويب يشترط قيمة) | حذف الصفحات | الصفحات الـ 12 كلها، أي الملف الأصلي كما هو |
يحتفظ الملف المنزَّل باسم الملف الذي رفعته، فغيّر اسمه قبل الإرسال وإلا صار عندك ملفان باسم lease.pdf على القرص.
ثلاثة مدخلات تفشل وماذا يقول الخطأ
الصفحة غير الموجودة خطأ، لا تجاوز صامت. فطلب الصفحة 13 من الملف ذي الصفحات الـ 12 يعيد 400 (page_out_of_range) مع الرسالة Page 13 does not exist; the document has 12 pages. وتُرفض الصفحة 0 بالطريقة نفسها. والنص الذي ليس قائمة صفحات، مثل abc، يعيد 400 مع invalid_page_selection وتلميح باستخدام قيم مثل 1,3,5-8 أو all. تتصرف الأداتان بالطريقة نفسها هنا، فلا يمكن لخطأ مطبعي أن ينتج ملفاً يبدو معقولاً وهو خاطئ.
وثمة حالتان حديّتان أقل وضوحاً. النطاق الذي يبدأ داخل المستند وينتهي بعده يُقتطع: فـ 10-15 على 12 صفحة أعطى الصفحات 10 إلى 12. وترفض أداة حذف الصفحات حذف كل شيء: فـ 1-12 يعيد 400 (would remove every page, which leaves nothing to return)، لأن PDF بلا صفحات لا يمكن أن يوجد.
الملف المحمي بكلمة مرور يحتاج إلى كلمتها في صفحة الويب. وإن استدعيت API مباشرة فشغّل إزالة كلمة المرور أولاً.
ما يبقى في الملف: حذف الصفحة ليس تسويداً لها
يُسقط الاستخراج كائنات الصفحات، ومعها نصوص الصفحات التي لم تدرجها وصورها. وفي الاختبار لم يحتوِ الملف المستخرج على نص من الصفحات المحذوفة. لكنه لم يُسقط كل ما يشير إليها. كما أن بايتات الصفحات المبقاة في ملف الاختبار لم تحمل أي أثر للنص المحذوف.
في هذا الفحص كان لعقد الإيجار عنوان مستند ("Lease - Unit 4B, J. Rivera") وإشارتان مرجعيتان: "Signature page" في الصفحة 1 و"Tenant SSN appendix" في الصفحة 12. بعد أن أبقت أداة استخراج الصفحات الصفحتين 1 و2 صار الملف من صفحتين، ولا تزال لوحة الإشارات المرجعية في القارئ تعرض العنوانين؛ والثاني صار يشير إلى لا شيء. وبقي العنوان والمؤلف في خصائص المستند. وأبقى حذف الصفحة 12 بأداة حذف الصفحات الإشارتين نفسيهما.
أما تنظيف PDF مع تفعيل خيارات البيانات الوصفية فيمحو معلومات المستند وبيانات XMP الوصفية، وقد عادت خصائص المستند فارغة بعده. ويفعّل نموذج الويب هذه الخيارات افتراضياً؛ أما استدعاء API فعليه أن يرسل removeMetadata=true بنفسه. ولا يمس التنظيف الإشارات المرجعية: فقد بقي العنوانان كلاهما. ولا توجد أداة على الويب تحرر الإشارات المرجعية. تستبدلها عملية API general/edit-table-of-contents من قائمة JSON، وتحتاج إلى عنصر واحد على الأقل، فلا يمكنها تفريغ القائمة. وفي الاختبار تركت أيضاً نص العنوان القديم داخل الملف كائناً غير مُشار إليه، لا يظهر في القارئ لكنه ما زال مقروءاً في البايتات الخام. فلا تعتمد عليها لإخفاء عنوان إشارة مرجعية.
لذلك إن كانت الصفحات المحذوفة حساسة، فافتح الناتج وانظر في لوحة الإشارات المرجعية وفي خصائص المستند، ولا ترسله إلا إن لم يكشف أي منهما المحتوى. وإن كان عنوان الإشارة المرجعية نفسه هو السر، فهذا المسار لا يستطيع إزالته. وإن وجب حذف كلمة ظاهرة في صفحة مبقاة، فتلك مهمة تسويد النص، وقد شُرحت في قبل أن تشارك.
التكاليف والحدود
- تعمل الأداتان على ملف PDF واحد في كل مرة وتنتجان ملف PDF واحداً. أما تقطيع ملف إلى عدة أجزاء فمهمة تقسيم PDF.
- الناتج ملف جديد وأصلك لا يُمس. احتفظ بالأصل، فالملف الجديد لا يعيد الصفحات المحذوفة.
- الملف الذي لا يفتح أصلاً يحتاج إلى إصلاح PDF أولاً؛ راجع الملف لا يُفتح.