นี่เป็นโซลูชันระดับมืออาชีพในการบีบอัด PDF โดยใช้ Python ใช้ PDF API การปรับให้เหมาะสมของเราเพื่อพัฒนาซอฟต์แวร์ระดับสูงที่ไม่ขึ้นกับแพลตฟอร์มใน Python ลองออนไลน์ฟรี!
ไลบรารี Python นี้ช่วยให้นักพัฒนาสามารถบีบอัดเอกสาร PDF ทางโปรแกรมได้อย่างรวดเร็วและมีประสิทธิภาพ รับเอาต์พุต PDF ที่ปรับให้เหมาะสมที่สุดอย่างง่ายดายพร้อมสำหรับการพิมพ์ เก็บถาวร หรือแชร์ผ่านเครือข่าย เป็นโซลูชันการประมวลผลเอกสาร PDF แบบสแตนด์อโลนสำหรับ Python ที่ไม่ต้องติดตั้งซอฟต์แวร์ของบุคคลที่สาม
ผลิตภัณฑ์ของเรามี API แบบบูรณาการสำหรับนักพัฒนา Python เพื่อลดขนาดไฟล์ PDF การบีบอัด PDF ดำเนินการในสองรอบ ในระหว่างการผ่านครั้งแรก ทุกหน้าของ PDF จะถูกแปลงเป็นรูปแบบภาพ ผลิตภัณฑ์ของเราใช้อัลกอริธึมการบีบอัดรูปภาพที่ปรับเปลี่ยนได้และมีประสิทธิภาพสูง ซึ่งช่วยให้นักพัฒนาได้รับเอาต์พุต PDF ขนาดกะทัดรัดในขณะที่ยังคงคุณภาพที่ดีที่สุดของเอกสาร ในรอบถัดไป ลำดับของรูปภาพจะถูกบีบอัดและรวมกันเพื่อสร้างเนื้อหาของไฟล์ PDF ใหม่ที่ได้รับการปรับให้เหมาะสม
การบีบอัด PDF ทำได้ง่ายด้วย 'Aspose.Words for Python via .NET' ตัวอย่างต่อไปนี้สาธิตวิธีการลดขนาดไฟล์ PDF ใน Python:
pip install aspose-words
สำเนา
import aspose.words as aw
renderer = aw.pdf2word.fixedformats.PdfFixedRenderer()
pdf_read_options = aw.pdf2word.fixedformats.PdfFixedOptions()
pdf_read_options.image_format = aw.pdf2word.fixedformats.FixedImageFormat.JPEG
pdf_read_options.jpeg_quality = 50
with open ("Input.pdf", 'rb') as pdf_stream:
pages_stream = renderer.save_pdf_as_images(pdf_stream, pdf_read_options);
builder = aw.DocumentBuilder()
for i in range(0, len(pages_stream)):
# กำหนดขนาดหน้าสูงสุดเพื่อหลีกเลี่ยงการปรับขนาดภาพหน้าปัจจุบัน
max_page_dimension = 1584
page_setup = builder.page_setup
set_page_size(page_setup, max_page_dimension, max_page_dimension)
page_image = builder.insert_image(pages_stream[i])
set_page_size(page_setup, page_image.width, page_image.height)
page_setup.top_margin = 0
page_setup.left_margin = 0
page_setup.bottom_margin = 0
page_setup.right_margin = 0
if i != len(pages_stream) - 1:
builder.insert_break(aw.BreakType.SECTION_BREAK_NEW_PAGE)
save_options = aw.saving.PdfSaveOptions()
save_options.cache_background_graphics = true
builder.document.save("Output.pdf", save_options)
def set_page_size(page_setup, width, height):
page_setup.page_width = width;
page_setup.page_height = height;
import aspose.words as aw
doc = aw.Document("Input.pdf")
doc.cleanup()
shapes = [node.as_shape() for node in doc.get_child_nodes(aw.NodeType.SHAPE, True)]
for shape in shapes:
if shape.isImage:
# นักพัฒนาจะเลือกไลบรารี่สำหรับการบีบอัดภาพ
image = Image.open(shape.image_data.to_stream())
# ...
# บีบอัดรูปภาพแล้วตั้งค่ากลับเป็นรูปร่าง
shape.image_data.set_image("yourCompressedImage")
save_options = aw.saving.PdfSaveOptions
save_options.cache_background_graphics = true
doc.save("Output.pdf", save_options)
import aspose.words as aw
doc = aw.Document("Input.pdf")
doc.cleanup()
shapes = [node.as_shape() for node in doc.get_child_nodes(aw.NodeType.SHAPE, True)]
for shape in shapes:
if shape.isImage:
# นักพัฒนาจะเลือกไลบรารี่สำหรับการบีบอัดภาพหรือไม่
image = Image.open(shape.image_data.to_stream())
# ...
# บีบอัดรูปภาพแล้วตั้งค่ากลับเป็นรูปร่าง
shape.image_data.set_image("yourCompressedImage")
doc.save("Output.pdf")
import aspose.words as aw
doc = aw.Document("Input.pdf")
doc.cleanup()
shapes = [node.as_shape() for node in doc.get_child_nodes(aw.NodeType.SHAPE, True)]
for shape in shapes:
if shape.isImage:
# นักพัฒนาจะเลือกไลบรารี่สำหรับการบีบอัดภาพ
image = Image.open(shape.image_data.to_stream())
# ...
# บีบอัดรูปภาพแล้วตั้งค่ากลับเป็นรูปร่าง
shape.image_data.set_image("yourCompressedImage")
save_options = aw.saving.OoxmlSaveOptions
save_options.compression_level = aw.saving.CompressionLevel.MAXIMUM
doc.save("Output.pdf", save_options)
import aspose.words as aw
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
shape = builder.InsertImage("Input.pdf")
save_options = aw.saving.ImageSaveOptions(aw.SaveFormat.PDF)
shape.get_shape_renderer().save("Output.pdf", save_options)
import aspose.words as aw
renderer = aw.pdf2word.fixedformats.PdfFixedRenderer()
pdf_read_options = aw.pdf2word.fixedformats.PdfFixedOptions()
pdf_read_options.image_format = aw.pdf2word.fixedformats.FixedImageFormat.JPEG
pdf_read_options.jpeg_quality = 50
with open ("Input.pdf", 'rb') as pdf_stream:
pages_stream = renderer.save_pdf_as_images(pdf_stream, pdf_read_options);
builder = aw.DocumentBuilder()
for i in range(0, len(pages_stream)):
# กำหนดขนาดหน้าสูงสุดเพื่อหลีกเลี่ยงการปรับขนาดภาพหน้าปัจจุบัน
max_page_dimension = 1584
page_setup = builder.page_setup
set_page_size(page_setup, max_page_dimension, max_page_dimension)
page_image = builder.insert_image(pages_stream[i])
set_page_size(page_setup, page_image.width, page_image.height)
page_setup.top_margin = 0
page_setup.left_margin = 0
page_setup.bottom_margin = 0
page_setup.right_margin = 0
if i != len(pages_stream) - 1:
builder.insert_break(aw.BreakType.SECTION_BREAK_NEW_PAGE)
save_options = aw.saving.PdfSaveOptions()
save_options.cache_background_graphics = true
builder.document.save("Output.pdf", save_options)
def set_page_size(page_setup, width, height):
page_setup.page_width = width;
page_setup.page_height = height;
เราโฮสต์ Python ของเราในที่เก็บ PyPi โปรดปฏิบัติตาม คำแนะนำทีละขั้นตอน เกี่ยวกับวิธีการติดตั้ง "Aspose.Words for Python via .NET" ในสภาพแวดล้อมของนักพัฒนาซอฟต์แวร์ของคุณ
แพ็คเกจนี้เข้ากันได้กับ Python ≥3.5 และ <3.12 หากคุณพัฒนาซอฟต์แวร์สำหรับ Linux โปรดดูข้อกำหนดเพิ่มเติมสำหรับ gcc และ libpython ใน Product Documentation
คุณสามารถปรับไฟล์ให้เหมาะสมในรูปแบบไฟล์อื่นๆ ได้มากมาย: