זהו פתרון מקצועי לדחיסת PDF באמצעות Python. השתמש ב PDF ממשק API לאופטימיזציה שלנו כדי לפתח תוכנה ברמה גבוהה, בלתי תלויה בפלטפורמה ב-Python. נסה את זה באינטרנט בחינם!
ספריית Python זו מספקת למפתחים את היכולת לדחוס במהירות וביעילות מסמכי PDF באופן פרוגרמטי. קבל בקלות פלט PDF אופטימלי מוכן להדפסה, אחסון בארכיון או שיתוף ברשת. זהו פתרון עצמאי לעיבוד מסמכי PDF עבור Python שאינו מצריך התקנת תוכנת צד שלישי.
המוצר שלנו מספק למפתחי Python API משולב כדי להקטין את הגודל של קבצי 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. אם אתה מפתח תוכנה עבור לינוקס, אנא עיין בדרישות נוספות עבור gcc ו- libpython בתיעוד המוצר.
אתה יכול לבצע אופטימיזציה של קבצים בפורמטים רבים אחרים של קבצים: