私はPyPDF2を使ってpdfファイルを分割したいと思う。PyPDF2 split pdf by
ネットのすべての例では、あまりにも困難または働くか、常にエラーを与えていないです「はAttributeError: 『PdfFileWriter』オブジェクトが属性 『ストリーム』を持っていない」
誰かがそれを助けることはできますか? 3ページの3つの異なるファイルにseparete one pdfが必要です。
私はそれから始めている:
pdfFileObj = open(r"D:\BPO\act.pdf", 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
pdfWriter = PyPDF2.PdfFileWriter()
pdfWriter.addPage(pdfReader.getPage(0))
しかし、次に何をすべきか分からない:(
EDIT#1
はsplitingのためのループを行う試すでした私は問題があります:PdfFileWriterは、3つのファイルを1つのページ、2つ目、2つ目、3つ目の3つにします。コードに誤りがあります:
act_sub_pages_name = ['p01.pdf', 'p02.pdf', 'p03.pdf']
with open(r"D:\BPO\act.pdf", 'rb') as act_mls:
reader = PdfFileReader(act_mls)
writer = PdfFileWriter()
if reader.numPages == 3:
counter = 0
for x in range(3):
path = '\\'.join(['D:\\BPO\\act sub pages', act_sub_pages_name[counter]])
counter += 1
writer.addPage(reader.getPage(x))
with open(path, 'wb') as outfile: writer.write(outfile)
悪い英語が苦手です。
EDIT#2
私のソリューションポール・ルーニーの答えで応じて:すべてが正常に動作しますが、それは少し難しい機能で
act_pdf_file = 'D:\\BPO\\act.pdf'
act_sub_pages_name = ['p01.pdf', 'p02.pdf', 'p03.pdf']
def pdf_splitter(index, src_file):
with open(src_file, 'rb') as act_mls:
reader = PdfFileReader(act_mls)
writer = PdfFileWriter()
writer.addPage(reader.getPage(index))
out_file = os.path.join('D:\\BPO\\act sub pages', act_sub_pages_name[index])
with open(out_file, 'wb') as out_pdf: writer.write(out_pdf)
for x in range(3): pdf_splitter(x, act_pdf_file)
。
pypdfを使用しますか、他の選択肢はありますか? –
もしそれらがpython 3.6.1とコンパイルされていれば – Acamori