3

PyPDF2 モジュールを使用して、マージされた pdf を圧縮するのに苦労しています。これはhttp://www.blog.pythonlibrary.org/2012/07/11/pypdf2-the-new-fork-of-pypdf/に基づく私の試みです

import PyPDF2
path = open('path/to/hello.pdf', 'rb')
path2 = open('path/to/another.pdf', 'rb')
merger = PyPDF2.PdfFileMerger()
merger.append(fileobj=path2)
merger.append(fileobj=path)
pdf.filters.compress(merger)
merger.write(open("test_out2.pdf", 'wb'))

私が受け取るエラーは

TypeError: must be string or read-only buffer, not file

マージが完了した後、pdf の圧縮も試みました。圧縮に失敗したのは、PDFSAM を圧縮で使用した後に取得したファイル サイズに基づいています。何かご意見は?ありがとう。

4

3 に答える 3

0

最初のアプローチはそれほど間違っていません。ファイルに書き込む前に、ページをライターに追加して圧縮するだけです。

...

for i in list(range(reader.numPages)):
    page = reader.getPage(i)
    writer.addPage(page);
for i in list(range(writer.getNumPages())):
    page.compressContentStreams()

...
于 2021-10-20T06:39:47.563 に答える