我想使用PyPDF2分割pdf文件。PyPDF2 split pdf
在網上,所有的例子是太困難或不工作或總是給錯誤「AttributeError的:‘PdfFileWriter’對象有沒有屬性‘流’」
能有人幫助?需要將3頁的pdf與3個不同的文件分開。
我從開始:
pdfFileObj = open(r"D:\BPO\act.pdf", 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
pdfWriter = PyPDF2.PdfFileWriter()
pdfWriter.addPage(pdfReader.getPage(0))
但不知道下一步該怎麼做:(
編輯#1
當時嘗試做的分裂循環和我有一個問題:PdfFileWriter使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)
Sry對英語不好。
編輯#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,還是打開其他選擇? –
Ofc如果與python兼容3.6.1 – Acamori