Я хочу разделить длинный документ PDF на многие части, например. часть 1, содержащая страницы 3-14, часть 2, содержащая страницы 15-19, часть 3, содержащая страницы 20-27, с использованием PyPDF2.Как сбросить выходной файл?
Я закодировал цикл, который выводит соответствующие страницы из исходного PDF и сохраняет их как новый документ для каждой части. Единственная проблема заключается в том, что часть 2 все еще включает в себя все страницы из части 1, а часть 3 все еще содержит страницы из частей 1 & 2.
Я предполагаю, что мне как-то нужно «сбросить» выход = PdfFileWriter(), но если Я положил его в цикл while. Я получаю длинное сообщение об ошибке.
output = PdfFileWriter()
input = PdfFileReader(open("%s" % pdf, "rb"))
current_row = 2
i = sheet.cell(row = current_row, column = 4).value
j = sheet.cell(row = current_row, column = 5).value
org = sheet.cell(row = current_row, column = 1).value
n = sheet.cell(row = current_row, column = 7).value
while i > 0:
while i <= j:
p = i-1
output.addPage(input.getPage(p))
i += 1
print(i, p, j)
print org
outputStream = file("%s_%s_%s.pdf" % (mysheet, n, org), "wb")
output.write(outputStream)
outputStream.close()
current_row += 1
i = sheet.cell(row = current_row, column = 4).value
j = sheet.cell(row = current_row, column = 5).value
org = sheet.cell(row = current_row, column = 1).value
n = sheet.cell(row = current_row, column = 7).value
сброс 'output = PdfFileWriter()' действительно является решением, какая ошибка у вас возникла? – franciscod
После закрытия 'outputStream' просто назначьте новый' PdfFileWriter() 'to' output'. – martineau
Включая эту линию, решила проблему - спасибо! Сообщение об ошибке было фактически связано с зашифрованным PDF-кодом. Проблема здесь заключалась в том, что файлы PDF, сгенерированные моим кодом, начинались со страницы 1 исходного документа. Сброс вывода = PdfFileWriter() позаботится об этом. –