باستخدام PISA لكتابة PDF على القرص
سؤال
لدي PISA إنتاج .pdfs في Django في المتصفح بشكل جيد ، ولكن ماذا لو كنت أرغب في كتابة الملف تلقائيًا على القرص؟ ما أريد القيام به هو أن أكون قادرًا على إنشاء ملف إصدار .pdf في نقاط محددة في الوقت المناسب وحفظه في دليل التحميل ، لذلك لا يوجد تفاعل في المتصفح. هل هذا ممكن؟
المحلول
نعم هذا ممكن. على سبيل المثال ، استخدام الكود من جريج نيومان كمبتدأ:
from django.template.loader import get_template
from django.template import Context
import ho.pisa as pisa
import cStringIO as StringIO
import cgi
def write_pdf(template_src, context_dict, filename):
template = get_template(template_src)
context = Context(context_dict)
html = template.render(context)
result = open(filename, 'wb') # Changed from file to filename
pdf = pisa.pisaDocument(StringIO.StringIO(
html.encode("UTF-8")), result)
result.close()
تحتاج فقط إلى الاتصال بـ write_pdf باستخدام قالب وبيانات في قوله واسم ملف.
لا تنتمي إلى StackOverflow