问题
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