У меня проблемы с включением логики pyPDF для объединения двух PDF-файлов с моим сайтом django.Я написал код, который работает для объединения файлов при запуске в файле python на локальном сервере (но мне нужно явно указать, какие файлы объединять:
from pyPdf import PdfFileReader, PdfFileWriter
output = PdfFileWriter()
input1 = PdfFileReader(file("abc_form0.pdf", "rb"))
input2 = PdfFileReader(file("abc_form1.pdf", "rb"))
total_pages = input1.getNumPages()
total_pages1 = input2.getNumPages()
for page in xrange(total_pages):
output.addPage(input1.getPage(page))
for page in xrange(total_pages1):
output.addPage(input2.getPage(page))
outputStream = file("output.pdf", "wb")
output.write(outputStream)
outputStream.close()
Этот код (с моего сайта django) работает дляотображать один PDF-файл. Однако, когда выбрано более одного PDF-файла, отображается только последний выбранный PDF-файл, следовательно, необходимо интегрировать pyPDF для создания одного файла, содержащего все запрошенные файлы.с поиском способа объединить эти два метода. Я пробовал следующее, но получаю ошибку ввода-вывода [Errno 2] Нет такого файла или каталога: 'obj.form'. Поэтому он не читает в obj.form - IМне нужно найти способ, чтобы он правильно читал эти объекты. В любом случае, это то, что я пробовал.
def create_pdf(self, request, queryset):
response = HttpResponse(mimetype="application/pdf")
response['Content-Disposition'] = 'attachment; filename=form.pdf'
for obj in queryset:
output = PdfFileWriter()
input = PdfFileReader(file("obj.form","rb"))
total_pages = input.getNumPages()
for page in xrange(total_pages):
output.addPage(input.GetPage(page))
outputStream = file("output.pdf", "wb")
response.write(outputStream)
outputStream.close()
ABC.objects.filter(pk=obj.pk).update(user=request.user,pdf_printed="1",request_time=time.strftime("%H:%M:%S"),request_date=datetime.datetime.today())
return response
def print_selected_pdf(self, request, queryset):
# prints the pdfs for those that are selected,
# regardless if the pdf_printed field is true or false
qs = queryset.filter(pdf_printed__exact=0)
return self.create_pdf(request, qs)
Как всегда, спасибо за любую помощь или советы, которые вы можете предоставить!