Код для сжатия PDF на Python

Высокопроизводительная Python библиотека для оптимизации содержимого и размера PDF с сохранением исходного качества и исходных данных.

Это профессиональное решение для сжатия PDF с помощью Python. Используйте наш API оптимизации PDF для разработки высокоуровневого независимого от платформы программного обеспечения на Python. Попробуйте онлайн бесплатно!

Посмотреть фрагмент кода

Сжать PDF на Python

Эта Python библиотека предоставляет разработчикам возможность быстро и эффективно программно сжимать PDF документы. С легкостью получайте оптимизированный PDF файл, готовый к печати, архивированию или совместному использованию по сети. Это автономное решение для обработки PDF документов для Python, которое не требует установки какого-либо стороннего программного обеспечения.

Уменьшить размер PDF с помощью Python

Наш продукт предоставляет Python разработчикам интегрированный API для уменьшения размера PDF файлов. Сжатие PDF выполняется в два прохода. Во время первого прохода все страницы PDF конвертируются в формат изображения. В нашем продукте используются адаптивные и высокоэффективные алгоритмы сжатия изображений, которые позволяют разработчикам получать компактные PDF файлы при сохранении оптимального качества документа. На следующем проходе последовательность изображений сжимается и объединяется для формирования содержимого нового оптимизированного PDF файла.

Сжатие PDF выполняется просто благодаря 'Aspose.Words for Python via .NET'. В следующем примере показано, как уменьшить размер PDF файла с помощью Python:

Пример кода на Python для сжатия PDF файлов
Загрузите файл, который хотите оптимизировать/сжать
Выполнить код
Выберите целевой формат из списка
50%
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") # Обновите настройки страницы, чтобы обрезать документ по размеру изображения. pageSetup = builder.page_setup pageSetup.page_width = shape.width pageSetup.page_height = shape.height pageSetup.top_margin = 0 pageSetup.left_margin = 0 pageSetup.bottom_margin = 0 pageSetup.right_margin = 0 save_options = aw.saving.ImageSaveOptions(aw.SaveFormat.PDF) doc.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;
Выполнить код

Как сжать PDF Python

  1. Установите Aspose.Words for Python via .NET.
  2. Добавьте ссылку на библиотеку (импортируйте библиотеку) в свой Python проект.
  3. Откройте исходный PDF файл на Python.
  4. Сжать PDF без потери качества.
  5. Вызовите метод document_cleanup(). Итоговый код может варьироваться в зависимости от формата выходного файла.
  6. Получите сжатый результат в виде PDF файла.

Python библиотека для оптимизации и сжатия PDF файлов

Мы размещаем наши пакеты Python в репозиториях PyPi. Следуйте пошаговым инструкциям по установке "Aspose.Words for Python via .NET" в среду разработчика.

Системные Требования

Этот пакет совместим с Python ≥3.5 и <3.12. Если вы разрабатываете программное обеспечение для Linux, ознакомьтесь с дополнительными требованиями для gcc и libpython в документации по продукту.

Оптимизация других поддерживаемых форматов файлов

Вы можете оптимизировать файлы во многих других форматах файлов:

5%

Подпишитесь на обновления продукта Aspose

Получайте ежемесячные информационные бюллетени и предложения, доставляемые прямо на ваш почтовый ящик.