Python 使用Reportlab Canvas-如何创建一个选项来打印从浏览器本身生成的pdf?

Python 使用Reportlab Canvas-如何创建一个选项来打印从浏览器本身生成的pdf?,python,pdf,http-headers,reportlab,Python,Pdf,Http Headers,Reportlab,下面是使用Reportlab为我生成pdf的代码 现在,它只是在浏览器中显示pdf,在resonse.header['Content-Disposition']中包含“attachment”后,它会下载pdf 但我想要的是在浏览器中提供的打印选项,它甚至允许您选择打印机。可能吗 data = "raghav" p = canvas.Canvas(self.response.out) p.drawString(50, 700, data)

下面是使用Reportlab为我生成pdf的代码

现在,它只是在浏览器中显示pdf,在resonse.header['Content-Disposition']中包含“attachment”后,它会下载pdf

但我想要的是在浏览器中提供的打印选项,它甚至允许您选择打印机。可能吗

       data = "raghav"
       p = canvas.Canvas(self.response.out)
        p.drawString(50, 700, data)


        p.showPage()

        self.response.headers['Content-Type'] = 'application/pdf'
        self.response.headers['Content-Disposition'] = 'attachment;filename=testpdf.pdf'
        p.save()
根据需要,您可以添加这两行以获得所需的结果:

from reportlab.pdfbase import pdfdoc
pdfdoc.PDFCatalog.OpenAction = '<</S/JavaScript/JS(this.print\({bUI:true,bSilent:false,bShrinkToFit:true}\);)>>'
从reportlab.pdfbase导入pdfdoc
pdfdoc.PDFCatalog.OpenAction=''

希望有帮助:)

请不要在标题中包含标签。请看,其中的共识是“不,他们不应该”。至少在开发服务器上,这会影响所有未来的PDF。如果希望此特定PDF具有open action,请在_doc.Catalog.OpenAction private属性上设置OpenAction。请记住,这是在干涉内部问题。我如何将其与reportlab canvas一起使用,对我不起作用。任何帮助都将不胜感激