Това е професионално решение за компресиране на 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. Ако разработвате софтуер за Linux, моля, разгледайте допълнителните изисквания за gcc и libpython в продуктовата документация.
Можете да оптимизирате файлове в много други файлови формати: