blackantt 发表于 2024-4-10 10:19:53

请帮我把图片中的代码提取出来

不二如是 发表于 2024-4-10 10:46:45

本帖最后由 不二如是 于 2024-4-10 10:48 编辑

{:10_256:}{:10_256:}{:10_256:}很容易,跟着手敲

完成再看这里:

import os
import shutil
from PyPDF2 import PdfFileReader, PdfFileWriter

def compress_pdf(input_path, output_path, max_size):
    input_file = open(input_path, 'rb')
    input_pdf = PdfFileReader(input_file)
    output_pdf = PdfFileWriter()
    for i in range(input_pdf.getNumPages()):
      output_pdf.addPage(input_pdf.getPage(i))

    # 生成PDF
    output_stream = open(output_path, 'wb')
    output_pdf.write(output_stream)
    output_stream.close()

    # 循环 PDF 大小直至符合要求
    while os.path.getsize(output_path) > max_size:
      input_file = open(input_path, 'rb')
      input_pdf = PdfFileReader(input_file)
      output_pdf = PdfFileWriter()
      for i in range(input_pdf.getNumPages()):
            output_pdf.addPage(input_pdf.getPage(i))
      output_stream = open(output_path, 'wb')
      output_pdf.write(output_stream)
      output_stream.close()

input_file.close()

if __name__ == "__main__":
    input_path = 'example.pdf'
    output_path = 'example_compressed.pdf'
    max_size = 1024 * 1024 # 1MB
    compress_pdf(input_path, output_path, max_size)

中英文泡椒 发表于 2024-4-10 10:57:34

本帖最后由 中英文泡椒 于 2024-4-10 10:58 编辑

import os
import shutil
from PyPDF2 import PdfFileReader, PdfFileWriter

def compress_pdf(input_path, output_path, max_size):
        input_file =open(input_path, 'rb')
        input_pdf =PdfFileReader(input_file)
        output_pdf=PdfFilewriter()
        for i in range(input_pdf.getNumPages()):
                output_pdf.addPage(input_pdf.getPage(i))

#压缩 PDF
        output_stream =open(output_path,'wb’)
        output_pdf.write(output_stream)
        output_stream.close()

#检查 PDF 大小是否符合要求
        while os.path.getsize(output_path) > max_size:
        input_file =open(output_path, 'rb')
        input_pdf = PdfFileReader(input_file)
        output_pdf=PdfFilewriter()
        for i in range(input_pdf.getNumPages()):
                output_pdf.addPage(input_pdf.getPage(i))
                output_stream=open(output_path,'wb')
                output_pdf.write(output_stream)
                output_stream.close()


        input_file.close()

if __name__ == "__main__":
        input_path ='example.pdf'
        output_path='example_compressed.pdf'
        max_size=1024 * 1024 # 1MB
        compress_pdf(input_path, output_path, max_size)
页: [1]
查看完整版本: 请帮我把图片中的代码提取出来