إضافة صورة إلى ملف PDF موجود في بايثون

إضافة صورة إلى ملف PDF موجود في بايثون

يوضح هذا المثال كيفية وضع صورة في موضع ثابت على صفحة PDF موجودة باستخدام Aspose.PDF for Python via .NET.

استخدم هذه الأمثلة عندما تحتاج إلى إضافة شعار أو صورة أو ختم أو رسم بياني أو أي رسم آخر إلى تخطيط PDF موجود. يمكنك وضع الصورة بإحداثيات الصفحة، رسمها باستخدام العمليات، إضافة نص قابلية وصول، أو التحكم في ضغط الصورة.

  1. حمّل ملف PDF موجود باستخدام ap.Document(infile).
  2. حدد الصفحة المستهدفة (document.pages[1] للصفحة الأولى)
  3. اتصال page.add_image() مع:
    • مسار ملف الصورة.
    • أ Rectangle تحديد إحداثيات الموضع.
  4. احفظ ملف PDF المحدث.
import aspose.pdf as ap


def add_image(infile, image_file, outfile):
    document = ap.Document(infile)
    page = document.pages[1]
    page.add_image(image_file, ap.Rectangle(20, 730, 120, 830, True))
    document.save(outfile)

إضافة صورة إلى PDF باستخدام العوامل

تضيف هذه الطريقة صورة باستخدام مشغلات PDF منخفضة المستوى بدلاً من المشغلات عالية المستوى add_image() مساعد.

  1. إنشاء جديد Document وأضف صفحةً.
  2. أضف الصورة إلى موارد الصفحة (page.resources.images).
  3. إنشاء عوامل التحويل (GSave, ConcatenateMatrix, Do, GRestore).
  4. أضف عوامل إلى محتويات الصفحة.
  5. احفظ ملف PDF الناتج.
import aspose.pdf as ap
from io import FileIO


def add_image_using_operators(image_file, outfile):
    document = ap.Document()
    page = document.pages.add()
    page.set_page_size(842, 595)
    resources_images = page.resources.images

    with FileIO(image_file, "rb") as image_stream:
        image_id = resources_images.add(image_stream)

    rectangle = ap.Rectangle(0, 0, page.media_box.width, page.media_box.height, True)

    operators = [
        ap.operators.GSave(),
        ap.operators.ConcatenateMatrix(
            ap.Matrix(
                rectangle.urx - rectangle.llx,
                0,
                0,
                rectangle.ury - rectangle.lly,
                rectangle.llx,
                rectangle.lly,
            )
        ),
        ap.operators.Do(image_id),
        ap.operators.GRestore(),
    ]

    page.contents.add(operators)
    document.save(outfile)

إضافة صورة إلى PDF مع نص بديل

يضيف هذا المثال صورة ويُعين نصًا بديلًا من أجل إمكانية الوصول.

  1. إنشاء جديد Document وأضف صفحةً.
  2. أضف الصورة إلى الصفحة باستخدام page.add_image().
  3. احصل على موارد الصور من page.resources.images.
  4. تعيين النص البديل باستخدام try_set_alternative_text().
  5. احفظ ملف PDF الناتج.
import aspose.pdf as ap


def add_image_set_alternative_text(image_file, outfile):
    document = ap.Document()
    page = document.pages.add()
    page.set_page_size(842, 595)

    page.add_image(image_file, ap.Rectangle(0, 0, 842, 595, True))
    resources_images = page.resources.images
    x_image = resources_images[1]
    result = x_image.try_set_alternative_text("Alternative text for image", page)

    if result:
        print("Alternative text has been added successfully")

    document.save(outfile)

إضافة صورة إلى PDF باستخدام ضغط Flate

هذا المثال يدمج صورة باستخدام ImageFilterType.FLATE ضغط.

  1. إنشاء جديد Document وأضف صفحةً.
  2. أضف الصورة إلى موارد الصفحة باستخدام ضغط Flate.
  3. استخدم عمليات المصفوفة لتحديد موضع ورسم الصورة.
  4. احفظ المستند.
import aspose.pdf as ap
from io import FileIO


def add_image_to_pdf_with_flate_compression(image_file, outfile):
    document = ap.Document()
    page = document.pages.add()
    resources_images = page.resources.images

    with FileIO(image_file, "rb") as image_stream:
        image_id = resources_images.add(image_stream, ap.ImageFilterType.FLATE)

    rectangle = ap.Rectangle(0, 0, 600, 600, True)
    matrix = ap.Matrix(
        rectangle.urx - rectangle.llx,
        0,
        0,
        rectangle.ury - rectangle.lly,
        rectangle.llx,
        rectangle.lly,
    )

    page.contents.add([ap.operators.GSave()])
    page.contents.add([ap.operators.ConcatenateMatrix(matrix)])
    page.contents.add([ap.operators.Do(image_id)])
    page.contents.add([ap.operators.GRestore()])

    document.save(outfile)

المواضيع ذات الصلة بالصور