تقسيم ملفات PDF في Python
تُظهر هذه الصفحة كيفية تقسيم ملفات PDF في Python باستخدام Aspose.PDF for Python via .NET.
استخدم هذه الأمثلة عندما تحتاج إلى تقسيم ملف PDF كبير إلى ملفات صفحة واحدة، أو أجزاء متساوية، أو مجموعات بحجم ثابت، أو نطاقات صفحات مخصصة، أو مجموعات الصفحات الفردية والزوجية للتوزيع أو المراجعة أو المعالجة اللاحقة.
مثال تقسيم PDF عبر الإنترنت
Aspose.PDF مقسّم هو تطبيق ويب عبر الإنترنت يتيح لك اختبار وظيفة تقسيم ملفات PDF.
لتقسيم صفحات PDF إلى ملفات PDF ذات صفحة واحدة في بايثون، اتبع الخطوات التالية:
- التكرار عبر صفحات مستند PDF من خلال مستند الكائن مجموعة الصفحات مجموعة
- في كل تكرار، أنشئ كائن Document جديد وأضف الفرد صفحة كائن إلى المستند الفارغ
- احفظ ملف PDF الجديد باستخدام احفظ() طريقة
تقسيم ملف PDF إلى عدة ملفات في بايثون
يظهر لك المقتطف التالي لشفرة بايثون كيفية تقسيم صفحات PDF إلى ملفات PDF فردية.
import sys
import aspose.pdf as ap
from os import path
def split_documents(infile, outdir):
document = ap.Document(infile)
for page_num in range(1, len(document.pages) + 1):
with ap.Document() as new_document:
new_document.pages.add(document.pages[page_num])
new_document.save(path.join(outdir, f"Page_{page_num}.pdf"))
تقسيم PDF إلى جزأين متساويين
- حمّل مستند PDF.
- تحديد العدد الإجمالي للصفحات.
- احسب نقطة المنتصف.
- إنشاء مستند الإخراج الأول.
- إزالة الصفحات من النصف الثاني للمستند الأول.
- احفظ الجزء الأول.
- إنشاء المستند الثاني الناتج.
- أزل صفحات النصف الأول من المستند الثاني.
- احفظ الجزء الثاني.
import sys
import aspose.pdf as ap
from os import path
def split_documents_into_two_parts(infile, outdir):
document = ap.Document(infile)
total_pages = len(document.pages)
mid_point = total_pages // 2
# First part
with ap.Document(infile) as first_document:
first_part_range = range(mid_point + 1, total_pages + 1)
first_document.pages.delete(first_part_range)
first_document.save(path.join(outdir, "Part_1.pdf"))
# Second part
with ap.Document(infile) as second_document:
second_part_range = range(1, mid_point + 1)
second_document.pages.delete(second_part_range)
second_document.save(path.join(outdir, "Part_2.pdf"))
قسّم ملف PDF إلى ملفات متعددة كل N صفحات
قسم مستند PDF إلى ملفات متعددة أصغر بناءً على عدد ثابت من الصفحات باستخدام Aspose.PDF for Python.
- حمّل مستند PDF.
- تحديد العدد الإجمالي للصفحات.
- حدد الصفحات لكل جزء.
- التكرار عبر المستند على دفعات.
- احسب نطاق الصفحات لكل جزء.
- أنشئ مستندًا جديدًا لكل جزء.
- انسخ الصفحات إلى المستند الجديد.
- احفظ المستند المقسم.
- كرر حتى يتم معالجة جميع الصفحات.
import sys
import aspose.pdf as ap
from os import path
def split_documents_every_n_pages(infile, outdir, pages_per_part=3):
document = ap.Document(infile)
total_pages = len(document.pages)
part_index = 1
for start_page in range(1, total_pages + 1, pages_per_part):
end_page = min(start_page + pages_per_part - 1, total_pages)
with ap.Document() as part_document:
for page_num in range(start_page, end_page + 1):
part_document.pages.add(document.pages[page_num])
part_document.save(
path.join(outdir, f"Every_{pages_per_part}_Part_{part_index}.pdf")
)
part_index += 1
قسّم ملف PDF وفق نطاقات الصفحات المخصصة
قسّم مستند PDF إلى ملفات متعددة بناءً على نطاقات صفحات معرفة مخصصًا باستخدام Aspose.PDF for Python.
- حمّل مستند PDF.
- تحديد العدد الإجمالي للصفحات.
- إنشاء قائمة من الثنائيات تمثل نطاقات (start_page, end_page).
- التكرار عبر النطاقات المحددة.
- تحقق من صفحة البداية.
- ضبط الصفحة النهائية.
- تحقق من النطاق الفعّال.
- إنشاء مستند جديد لكل نطاق.
- انسخ الصفحات إلى المستند الجديد.
- احفظ كل مستند مقسَّم.
import sys
import aspose.pdf as ap
from os import path
def split_documents_by_page_ranges(infile, outdir):
document = ap.Document(infile)
total_pages = len(document.pages)
# Define ranges as (start_page, end_page). Use None to indicate last page.
ranges = [(1, 3), (4, 6), (7, None)]
for index, (start_page, end_page) in enumerate(ranges, start=1):
if start_page > total_pages:
continue
effective_end = total_pages if end_page is None else min(end_page, total_pages)
if start_page > effective_end:
continue
with ap.Document() as range_document:
for page_num in range(start_page, effective_end + 1):
range_document.pages.add(document.pages[page_num])
range_document.save(
path.join(outdir, f"Range_{index}_{start_page}_to_{effective_end}.pdf")
)
قسّم PDF إلى الصفحة الأولى والصفحات المتبقية
افصل الصفحة الأولى من مستند PDF عن باقي الصفحات باستخدام Aspose.PDF for Python.
- حمّل مستند PDF.
- تحديد العدد الإجمالي للصفحات.
- تحقق مما إذا كان المستند فارغًا.
- إنشاء مستند للصفحة الأولى.
- أضف الصفحة الأولى.
- احفظ مستند الصفحة الأولى.
- تحقق مما إذا كانت هناك صفحات إضافية.
- إنشاء مستند للصفحات المتبقية.
- نسخ الصفحات المتبقية.
- احفظ مستند الصفحات المتبقية.
import sys
import aspose.pdf as ap
from os import path
def split_documents_first_page_and_rest(infile, outdir):
document = ap.Document(infile)
total_pages = len(document.pages)
if total_pages == 0:
return
with ap.Document() as first_page_document:
first_page_document.pages.add(document.pages[1])
first_page_document.save(path.join(outdir, "First_Page.pdf"))
if total_pages == 1:
return
with ap.Document() as remaining_pages_document:
for page_num in range(2, total_pages + 1):
remaining_pages_document.pages.add(document.pages[page_num])
remaining_pages_document.save(path.join(outdir, "Remaining_Pages.pdf"))
قسّم ملف PDF إلى الصفحة الأخيرة والصفحات السابقة
استخرج الصفحة الأخيرة من مستند PDF وافصلها عن الصفحات المتبقية باستخدام Aspose.PDF for Python.
- حمّل مستند PDF.
- تحديد العدد الإجمالي للصفحات.
- تحقق مما إذا كان المستند فارغًا.
- إنشاء مستند للصفحة الأخيرة.
- أضف الصفحة الأخيرة.
- احفظ مستند الصفحة الأخيرة.
- تحقق من المستندات ذات الصفحة الواحدة.
- قم بإزالة الصفحة الأخيرة من المستند الأصلي.
- احفظ الصفحات المتبقية.
import sys
import aspose.pdf as ap
from os import path
def split_documents_last_page_and_rest(infile, outdir):
document = ap.Document(infile)
total_pages = len(document.pages)
if total_pages == 0:
return
with ap.Document() as last_page_document:
last_page_document.pages.add(document.pages[total_pages])
last_page_document.save(path.join(outdir, "Last_Page.pdf"))
if total_pages == 1:
return
document.pages.delete(total_pages) # Remove last page from original document
document.save(path.join(outdir, "Previous_Pages.pdf"))
قسّم ملف PDF إلى ثلاثة أجزاء
قسّم مستند PDF إلى ثلاثة أجزاء منفصلة باستخدام Aspose.PDF for Python.
- حمّل مستند PDF.
- تحديد العدد الإجمالي للصفحات.
- تحقق مما إذا كان المستند فارغًا.
- احسب حجم الجزء.
- تكرار عبر ثلاثة أجزاء.
- تحديد نطاق الصفحات لكل جزء.
- تحقق من نطاق الصفحات.
- أنشئ مستندًا جديدًا لكل جزء.
- نسخ الصفحات إلى المستند الجزئي.
- احفظ كل جزء.
import sys
import aspose.pdf as ap
from os import path
def split_documents_into_three_parts(infile, outdir):
document = ap.Document(infile)
total_pages = len(document.pages)
if total_pages == 0:
return
part_size = max(1, (total_pages + 2) // 3)
for part_index in range(3):
start_page = part_index * part_size + 1
end_page = min((part_index + 1) * part_size, total_pages)
if start_page > total_pages:
break
with ap.Document() as part_document:
for page_num in range(start_page, end_page + 1):
part_document.pages.add(document.pages[page_num])
part_document.save(path.join(outdir, f"Three_Parts_{part_index + 1}.pdf"))
مقسم صفحات PDF مخصص
قسّم مستند PDF إلى ملفات متعددة بناءً على مجموعات صفحات معرفّة مخصّصة باستخدام Aspose.PDF for Python.
import sys
import aspose.pdf as ap
from os import path
def split_documents_custom_page_groups(infile, outdir):
document = ap.Document(infile)
total_pages = len(document.pages)
groups = [
[1, 2, 5],
[3, 4, 6, 7],
]
for group_index, group in enumerate(groups, start=1):
valid_pages = [page_num for page_num in group if 1 <= page_num <= total_pages]
if not valid_pages:
continue
with ap.Document() as group_document:
for page_num in valid_pages:
group_document.pages.add(document.pages[page_num])
group_document.save(path.join(outdir, f"Custom_Group_{group_index}.pdf"))
تقسيم PDF إلى صفحات فردية بأسماء ملفات ثابتة
قسّم مستند PDF إلى صفحات فردية واحفظها بأسماء ملفات ثابتة باستخدام Aspose.PDF for Python.
import sys
import aspose.pdf as ap
from os import path
def split_documents_with_stable_filenames(infile, outdir):
document = ap.Document(infile)
total_pages = len(document.pages)
for page_num in range(1, total_pages + 1):
with ap.Document() as new_document:
new_document.pages.add(document.pages[page_num])
new_document.save(path.join(outdir, f"Page_{page_num:03d}.pdf"))
تقسيم ملف PDF إلى صفحات فردية وزوجية
قُم بتقسيم مستند PDF إلى ملفين منفصلين يحتوي أحدهما على الصفحات الفردية والآخر على الصفحات الزوجية على التوالي باستخدام Aspose.PDF for Python.
import sys
import aspose.pdf as ap
from os import path
def split_documents_odd_even_pages(infile, outdir):
document = ap.Document(infile)
total_pages = len(document.pages)
# Odd pages document
with ap.Document(infile) as document:
with ap.Document() as odd_document:
for page_num in range(1, total_pages + 1, 2):
odd_document.pages.add(document.pages[page_num])
odd_document.save(path.join(outdir, "Odd_Pages.pdf"))
with ap.Document() as even_document:
for page_num in range(2, total_pages + 1, 2):
even_document.pages.add(document.pages[page_num])
even_document.save(path.join(outdir, "Even_Pages.pdf"))
