Why in this PDF file generated in this example my watermark is not displayed?

一个人想着一个人 提交于 2019-12-12 06:47:21

问题


Why in this PDF file generated in this example my watermark is not displayed? How can I fix it? (There is no error, just does not display "WATERMARK".)

https://docs.djangoproject.com/en/dev/howto/outputting-pdf/#outputting-pdfs-with-django

import xhtml2pdf
from xhtml2pdf import pisa
import reportlab
from reportlab.pdfgen import canvas

def delivery_cancel(request, did):
    d_instance = get_object_or_404(Delivery, pk=did, user=request.user)
    users = request.user.get_profile()
    user = request.user
    contents = render_to_string('delivery_cancel.html', {'delivery':d_instance,'users':users,'user':user})
    response = HttpResponse(mimetype='application/pdf')
    response['Content-Disposition'] = 'inline; filename=mypdf.pdf'
    result = StringIO.StringIO()
    pdf = pisa.pisaDocument(StringIO.StringIO(contents.encode('utf-8')), result, show_error_as_pdf=True, encoding='UTF-8')
    x = canvas.Canvas(pdf)
    x.drawString(100, 100, 'WATERMARK')
    x.save()
    response.write(result.getvalue())
    result.close()
    return response

EDIT:

def delivery_cancel(request, did):
    d_instance = get_object_or_404(Delivery, pk=did, user=request.user)
    users = request.user.get_profile()
    user = request.user
    contents = render_to_string('delivery_cancel.html', {'delivery':d_instance,'users':users,'user':user})
    response = HttpResponse(mimetype='application/pdf')
    response['Content-Disposition'] = 'inline; filename=mypdf.pdf'
    content_stream = StringIO.StringIO(contents.encode('utf-8'))
    x = canvas.Canvas(content_stream)
    x.drawString(100, 100, 'WATERMARK')
    x.showPage()
    x.save()
    result = StringIO.StringIO()
    pdf = pisa.pisaDocument(content_stream, result, show_error_as_pdf=True, encoding='UTF-8')
    response.write(result.getvalue())
    result.close()
    return response

Now watermark is missing and looks like that pisaDocument not working because PDF format looks different. (or I did something wrong again)

来源:https://stackoverflow.com/questions/20838212/why-in-this-pdf-file-generated-in-this-example-my-watermark-is-not-displayed

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!