按文件大小拆分的PDF

按文件大小拆分的PDF,pdf,split,pypdf2,Pdf,Split,Pypdf2,我想要帮助,因为我需要将pdf文件拆分为小于10mb的大小。我已经成功地将文件拆分为多个页面,但无法按目标文件的大小进行拆分 下面是我使用PyPDF2库将代码拆分为页面的代码,其中包含我在stackoverflow中收集的信息 谢谢你的帮助 from PyPDF2 import PdfFileWriter, PdfFileReader from tkinter.filedialog import askopenfilename as procArq url = procArq () arqui

我想要帮助,因为我需要将pdf文件拆分为小于10mb的大小。我已经成功地将文件拆分为多个页面,但无法按目标文件的大小进行拆分

下面是我使用PyPDF2库将代码拆分为页面的代码,其中包含我在stackoverflow中收集的信息

谢谢你的帮助

from PyPDF2 import PdfFileWriter, PdfFileReader
from tkinter.filedialog import askopenfilename as procArq

url = procArq ()
arquivo = PdfFileReader(open(url, "rb"))

for i in range(arquivo.numPages):
    saida = PdfFileWriter()
    saida.addPage(arquivo.getPage(i))
    with open("document-page%s.pdf" % i, "wb") as arquivo_de_saida:
        saida.write(arquivo_de_saida)

因为PDF文件可以跨页面共享资源,而且您不知道这些资源会提前整合到什么程度,特别是如果您正在对字体进行子集设置或具有重复的图像(如徽标),那么您将无法只抓取页面块并知道它们将导致特定的文件大小。您需要从单个页面开始,然后逐个添加页面,每次保存文件,然后测试其大小。然后,当文件大小超过最大值时,删除最后一页并重新保存该文件,然后仅使用已删除的页面启动一个新文件,直到文件结束。谢谢您的帮助,@joelgeraci。我试图使用os.path.getsize(filename)命令,但无法正常工作。关于这一点或其他获取文件大小的方法有什么建议吗?因为PDF文件可以跨页面共享资源,而且您不知道这些资源会提前整合到什么程度,特别是如果您正在对字体进行子集设置或具有重复的图像(如徽标),你不能仅仅抓取页面块,然后知道它们会导致特定的文件大小。您需要从单个页面开始,然后逐个添加页面,每次保存文件,然后测试其大小。然后,当文件大小超过最大值时,删除最后一页并重新保存该文件,然后仅使用已删除的页面启动一个新文件,直到文件结束。谢谢您的帮助,@joelgeraci。我试图使用os.path.getsize(filename)命令,但无法正常工作。有没有关于这方面的建议,或者其他获取文件大小的方法?