Esta é uma solução profissional para compactar PDF usando Python. Use nossa API de otimização PDF para desenvolver software independente de plataforma de alto nível em Python. Experimente online gratuitamente!
Essa Python biblioteca oferece aos desenvolvedores a capacidade de compactar de forma rápida e eficiente PDF documentos de forma programática. Obtenha facilmente saídas PDF otimizadas para impressão, arquivamento ou compartilhamento pela rede. É uma solução independente de processamento de PDF documentos para Python que não requer a instalação de nenhum software de terceiros.
Nosso produto fornece aos desenvolvedores Python uma API integrada para reduzir o tamanho dos PDF arquivos. A compactação de PDF é realizada em duas passagens. Durante a primeira passagem, todas as páginas do PDF são convertidas para o formato de imagem. Nosso produto usa algoritmos de compactação de imagem adaptáveis e altamente eficientes que permitem aos desenvolvedores obter uma saída compacta em PDF, mantendo a qualidade ideal do documento. Na próxima passagem, a sequência de imagens é compactada e combinada para formar o conteúdo de um novo PDF arquivo otimizado.
Compressão de PDF facilitada com 'Aspose.Words for Python via .NET'. O exemplo a seguir demonstra como reduzir o tamanho de um PDF arquivo em Python:
pip install aspose-words
Cópia de
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)):
# Defina o tamanho máximo da página para evitar o dimensionamento da imagem da página atual.
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:
# Cabe ao desenvolvedor escolher a biblioteca para compressão de imagem.
image = Image.open(shape.image_data.to_stream())
# ...
# Comprima a imagem e defina-a de volta à forma.
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:
# Cabe ao desenvolvedor escolher a biblioteca para compressão de imagem.
image = Image.open(shape.image_data.to_stream())
# ...
# Comprima a imagem e defina-a de volta à forma.
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:
# Cabe ao desenvolvedor escolher a biblioteca para compressão de imagem.
image = Image.open(shape.image_data.to_stream())
# ...
# Comprima a imagem e defina-a de volta à forma.
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)):
# Defina o tamanho máximo da página para evitar o dimensionamento da imagem da página atual.
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;
Hospedamos nossos pacotes Python em repositórios PyPi. Siga as instruções passo a passo sobre como instalar o "Aspose.Words for Python via .NET" em seu ambiente de desenvolvedor.
Este pacote é compatível com Python ≥3.5 e <3.12. Se você desenvolve software para Linux, consulte os requisitos adicionais para gcc e libpython na documentação do produto.
Você pode otimizar arquivos em muitos outros formatos de arquivo: