我正在尝试编写一个简短的脚本,对一个100页的pdf(~100MB)进行编号,这是一个输入文件。我已经制作了约60KB的水印文件,我正在尝试生成一个输出,将这两个文件逐页合并,以生成编号的输出文件。水印文件由reportlab生成,它只是一个100页的空白文档,底部有正确的页码(1、2、3、4、5等)
虽然这个脚本可以运行,但它使用了一个普通的四核处理器运行了13分钟,平均CPU使用率约为30%,RAM使用率为5.5GB。这比我预期的要多,因为水印文件的生成几乎是瞬时的
输出文件也是~285MB,这比输入文件和水印文件的总和还要多
代码如下:
def mergepdffiles(inputfile,outputfile,watermarkfile):
template = PyPDF2.PdfFileReader(open(inputfile, 'rb'))
watermark = PyPDF2.PdfFileReader(open(watermarkfile, 'rb'))
output = PyPDF2.PdfFileWriter()
for i in range(template.getNumPages()):
page = template.getPage(i)
page.mergePage(watermark.getPage(i))
output.addPage(page)
with open(outputfile, 'wb') as file:
output.write(file)
return None
我怀疑在处理速度和内存使用方面有一种更有效的方法
或者,有没有更好的方法可以在多页pdf中向每个页面添加页脚,而不必合并两个现有文件?我认为这样会更有效率
也许答案会对您有所帮助。Is there a way to speed up PDF page merging...其中使用了compressContentStreams()函数来减小pdf的大小,并使用100%处理器。
相关问题 更多 >
编程相关推荐