המרת אוסף של תמונות מפוזרות למסמך PDF יחיד וניתן לחיפוש היא דרישה נפוצה לכלי דיווח, יוצרי חשבוניות ומערכות ארכיון. Aspose.PDF for Python via .NET הוא ערכת פיתוח (SDK) חזקה שמאפשרת המרה מהירה ואמינה ביישומי Python. מדריך זה מוביל אותך דרך התקנת ערכת הפיתוח, טעינת תמונות עם ספריית Python Imaging Library, בניית קובץ ה-PDF דף אחר דף, התאמת הגדרות דחיסה ולבסוף שמירת התוצאה, הכל עם דוגמאות קוד ברורות.

לפני שאתה מתחיל: דרישות מקדימות והתקנה

כדי לעקוב אחרי המדריך הזה אתה צריך:

  • Python 3.8 או גרסה חדשה יותר מותקנת במחשב הפיתוח שלך.
  • IDE או עורך לבחירתך (VS Code, PyCharm, וכו’).
  • גישה לאינטרנט להורדת חבילת ה‑SDK.

התקן את Aspose.PDF SDK ואת ספריית Pillow (ספריית הדימות של Python בפועל) באמצעות pip:

pip install aspose-pdf pillow

ניתן גם להוריד את ה‑SDK באופן ידני מדף ההפצה הרשמי: Aspose.PDF for Python via .NET Download. לאחר ההתקנה, ייבא את המרחבים הנדרשים בסקריפט שלך.

עכשיו שהסביבה מוכנה, בואו נצלול ליישום.

יצירת PDF מתמונות ב-Python: מדריך שלב‑אחר‑שלב

שלב 1: טען את תמונות המקור

ראשית, השתמש ב‑Pillow כדי לפתוח כל קובץ תמונה ולשמור אותם ברשימה. פעולה זו מכינה את נתוני התמונה לבונה ה‑PDF.

from PIL import Image
import os

image_folder = "input_images"
image_paths = [os.path.join(image_folder, f) for f in os.listdir(image_folder)
               if f.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif'))]

images = [Image.open(p) for p in image_paths]

שלב 2: יצירת מסמך PDF חדש

צור את אובייקט ה-Document של Aspose.PDF שיכיל את העמודים.

import aspose.pdf as ap

pdf_doc = ap.Document()

למידע נוסף על המחלקה Document, ראה את תיעוד API.

שלב 3: הוסף כל תמונה כעמוד נפרד

עבור על התמונות שהוטענו, צור דף והטמע את התמונה. ה‑SDK משנה את גודל התמונה אוטומטית כדי להתאים לגודל העמוד.

for img in images:
    page = pdf_doc.pages.add()
    # Convert Pillow image to a byte stream compatible with Aspose.PDF
    with io.BytesIO() as img_stream:
        img.save(img_stream, format='PNG')
        img_stream.seek(0)
        page.resources.images.add(ap.Image(img_stream))
        # Fit the image to the page dimensions
        page.page_info.width = img.width
        page.page_info.height = img.height

שלב 4: הגדר אפשרויות דחיסה

התאם את רמת דחיסת התמונה כדי להפחית את גודל קובץ ה-PDF הסופי מבלי לפגוע באיכות.

# Set JPEG compression for all images (if using JPEG format)
for img_res in pdf_doc.resources.images:
    img_res.compression = ap.ImageCompression.JPEG
    img_res.jpeg_quality = 80  # Quality range: 0‑100

שלב 5: שמירת קובץ PDF

לבסוף, כתוב את המסמך המורכב לדיסק.

output_path = "output/result.pdf"
pdf_doc.save(output_path)
print(f"PDF generated successfully at {output_path}")

עם הצעדים האלה, יש לך זרימת עבודה מלאה ופונקציונלית כדי ליצור PDF מתמונות ב-Python.

צור PDF מאוסף תמונות ב-Python - דוגמת קוד מלאה

הסקריפט הבא מחבר את כל החלקים יחד לתוכנית אחת, ניתנת להרצה.

import os
import io
from PIL import Image
import aspose.pdf as ap

# -------------------- Configuration --------------------
image_folder = "input_images"          # Folder containing source images
output_pdf = "output/result.pdf"       # Destination PDF file
jpeg_quality = 80                      # Compression quality (0‑100)

# -------------------- Load Images --------------------
image_paths = [os.path.join(image_folder, f) for f in os.listdir(image_folder)
               if f.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif'))]

images = [Image.open(p) for p in image_paths]

# -------------------- Create PDF Document --------------------
pdf_doc = ap.Document()

for img in images:
    page = pdf_doc.pages.add()
    with io.BytesIO() as img_stream:
        img.save(img_stream, format='PNG')
        img_stream.seek(0)
        pdf_image = page.resources.images.add(ap.Image(img_stream))
        page.page_info.width = img.width
        page.page_info.height = img.height
        # Apply compression if the original is JPEG
        if img.format == 'JPEG':
            pdf_image.compression = ap.ImageCompression.JPEG
            pdf_image.jpeg_quality = jpeg_quality

# -------------------- Save PDF --------------------
pdf_doc.save(output_pdf)
print(f"PDF generated successfully at {output_pdf}")

הערה: דוגמת קוד זו מציגה את הפונקציונליות המרכזית. לפני השימוש בפרויקט שלך, ודא שאתה מעדכן את נתיבי הקבצים (input_images, output/result.pdf), מאמת שכל התלויות הדרושות מותקנות כראוי, ובודק ביסודיות בסביבת הפיתוח שלך. אם אתה נתקל בבעיות, אנא פנה לתיעוד הרשמי או פנה לצוות תמיכה לקבלת עזרה.

הגדרות מתקדמות ליצירת PDF: אפשרויות וקונפיגורציה

מעבר לתהליך הבסיסי, Aspose.PDF מציע מספר תכונות לכוונון מדויק של הפלט.

רמת דחיסת תמונה

שלוט על הפשרה בין האיכות לגודל הקובץ.

pdf_image.compression = ap.ImageCompression.JPEG
pdf_image.jpeg_quality = 70   # Lower value = smaller file, lower quality

גודל העמוד והשוליים

הגדר גודל עמוד מותאם אישית אם אתה צריך פריסה אחידה.

page.page_info.width = 595   # A4 width in points
page.page_info.height = 842  # A4 height in points
page.page_info.margin = ap.MarginInfo(10, 10, 10, 10)

רזולוציה (DPI)

רזולוציה גבוהה יותר (DPI) מניבה תמונות חדות יותר על חשבון קבצי PDF גדולים יותר.

pdf_doc.page_info.dpi = 300

לרשימה מלאה של תכונות שניתן להגדיר, עיינו ב-תיעוד API.

סיכום

יש לך כעת פתרון תכנותי מלא ליצור PDF מתמונות ב‑Python באמצעות Aspose.PDF for Python via .NET. ה‑SDK מטפל בטעינת תמונות, יצירת דפים, דחיסה ושמירה עם כמה שורות קוד בלבד, מאפשר לך להתמקד בלוגיקה העסקית במקום בטיפול ברמת‑הנמוכה של PDF. כאשר אתה עובר לייצור, זכור לרכוש רישיון מתאים; פרטים זמינים בדף התמחור ואתה יכול להתחיל עם רישיון זמני להערכת המוצר. קידוד נעים, ותהנה מהפשטות של הפיכת אוספי תמונות ל‑PDFים מלוטשים!

שאלות נפוצות

  • איך ניתן ליצור PDF מתמונות ב-Python באמצעות Aspose.PDF?
    השתמשו ב‑Aspose.PDF SDK כדי ליצור Document, להוסיף דף עבור כל תמונה שניטענה באמצעות Pillow, באופן אופציונלי להגדיר דחיסה, ולקרוא ל‑save() כדי לכתוב את ה‑PDF. הדוגמה המלאה נכללת למעלה.

  • אילו פורמטים של תמונה נתמכים ליצירת PDF?
    ה‑SDK מקבל את פורמטי PNG, JPG, JPEG, BMP, GIF, ו‑TIFF ישירות. Pillow יכול גם להמיר פורמטים שאינם נתמכים לאחד מהם לפני הוספתם ל‑PDF.

  • האם אני צריך רישיון לשימוש מסחרי?
    כן. קבל רישיון הערכה זמני מ-דף רישיון זמני ורכוש רישיון מלא דרך דף תמחור לפריסות ייצור.

  • האם אני יכול להתאים את גודל דף ה-PDF והרזולוציה?
    בהחלט. השתמש ב-page.page_info.width, page.page_info.height, ו-pdf_doc.page_info.dpi כדי לשלוט בממדים וב-DPI, כפי שמוצג בסעיף תצורה / אפשרויות.

קרא עוד