小编Jos*_*eph的帖子

pyPDF通过django合并并显示为httpresponse

我在使用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()
Run Code Online (Sandbox Code Playgroud)

此代码(来自我的django站点)用于显示单个PDF.但是,如果选择了多个PDF,则只显示最终的PDF,因此需要集成pyPDF以创建包含所有请求文件的文件.

class ABCAdmin(admin.ModelAdmin):

    actions = ['print_selected_pdf']

    def create_pdf(self, request, queryset):
        response = HttpResponse(mimetype="application/pdf")
        response['Content-Disposition'] = 'attachment; filename=form.pdf'
        for obj in queryset:
            response.write(obj.form)
            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 …
Run Code Online (Sandbox Code Playgroud)

pdf django django-admin pypdf

3
推荐指数
1
解决办法
2840
查看次数

标签 统计

django ×1

django-admin ×1

pdf ×1

pypdf ×1