Python中压缩PDF的代码

用于优化PDF内容和大小的高性能Python库,保留原始质量和基线数据

这是使用Python压缩PDF的专业解决方案。使用我们的PDF优化 API 在 Python 中开发独立于平台的高级软件。免费在线试用!

查看代码片段

在 Python 中压缩 PDF

这个 Python 库为开发人员提供了以编程方式快速有效地压缩 PDF 文档的能力。轻松获得优化的 PDF 输出,以便通过网络进行打印、存档或共享。它是一个用于 Python 的独立 PDF 文档处理解决方案,不需要安装任何第三方软件。

使用 Python 减小 PDF 的大小

我们的产品为 Python 开发人员提供了一个集成的 API,以减小 PDF 文件的大小。 PDF 压缩分两次执行。在第一遍中,PDF 的所有页面都转换为图像格式。我们的产品使用自适应和高效的图像压缩算法,使开发人员能够获得紧凑的 PDF 输出,同时保持文档的最佳质量。在下一轮中,图像序列被压缩并组合成一个新的、优化的 PDF 文件的内容。

'Aspose.Words for Python via .NET' 使 PDF 压缩变得容易。以下示例演示如何在 Python 中减小 PDF 文件的大小:

Python中用于压缩PDF文件的代码示例
上传要优化/压缩的文件
运行代码
从列表中选择目标格式
50%
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") # 更新页面设置以裁剪文档以适合图片的大小。 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

  1. 安装Aspose.Words for Python via .NET 。
  2. 将库引用(导入库)添加到您的Python项目。
  3. 在Python中打开源PDF文件。
  4. 在不损失质量的情况下压缩PDF 。
  5. 调用document_cleanup()方法。结果代码可能因输出文件格式而异。
  6. 将压缩结果作为PDF文件获取。

Python库用于优化和压缩PDF个文件

我们在PyPi存储库中托管我们的 Python 请按照有关如何 "Aspose.Words for Python via .NET" 安装到您的开发人员环境的分步说明进行操作。

系统要求

这个包与 Python ≥3.5 和 <3.12 兼容。如果您为 Linux 开发软件,请查看产品文档中对 gcc 和 libpython 的附加要求。

其他支持的文件格式优化

您可以优化许多其他文件格式的文件:

5%

订阅 Aspose 产品更新

获取直接发送到您的邮箱的每月通讯和优惠。

© Aspose Pty Ltd 2001-2024. 版权所有。