การแปลงชุดภาพที่กระจัดกระจายให้เป็นไฟล์ PDF เดียวที่สามารถค้นหาได้เป็นความต้องการที่พบบ่อยสำหรับเครื่องมือรายงาน, ตัวสร้างใบแจ้งหนี้, และระบบจัดเก็บเอกสาร. Aspose.PDF for Python via .NET เป็น SDK ที่ทรงพลังซึ่งทำให้การแปลงนี้ทำได้อย่างรวดเร็วและเชื่อถือได้ในแอปพลิเคชัน Python. คู่มือนี้จะพาคุณผ่านขั้นตอนการติดตั้ง SDK, การโหลดภาพด้วย Python Imaging Library, การสร้าง PDF ทีละหน้า, การปรับตั้งค่าการบีบอัด, และสุดท้ายการบันทึกผลลัพธ์, ทั้งหมดนี้มาพร้อมตัวอย่างโค้ดที่ชัดเจน.
ก่อนที่คุณจะเริ่ม: ข้อกำหนดเบื้องต้นและการติดตั้ง
เพื่อทำตามบทแนะนำนี้คุณต้องมี:
- Python 3.8 หรือใหม่กว่า ที่ติดตั้งบนเครื่องพัฒนาของคุณ.
- IDE หรือโปรแกรมแก้ไขตามที่คุณเลือก (VS Code, PyCharm ฯลฯ).
- เข้าถึงอินเทอร์เน็ตเพื่อดาวน์โหลดแพ็กเกจ SDK.
ติดตั้ง Aspose.PDF SDK และไลบรารี Pillow (Python Imaging Library ที่เป็นมาตรฐาน) ด้วย pip:
pip install aspose-pdf pillow
คุณสามารถดาวน์โหลด SDK ด้วยตนเองจากหน้าปล่อยอย่างเป็นทางการ: Aspose.PDF for Python via .NET Download. หลังจากการติดตั้ง ให้ทำการนำเข้าชื่อเนมสเปซที่จำเป็นในสคริปต์ของคุณ.
เมื่อสภาพแวดล้อมพร้อมแล้ว, เรามาเริ่มทำการ implementation กันเถอะ
สร้าง 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 ตามที่แสดงในส่วน Configuration / Options
