Django xhtml2pdf не редактируемый, только для чтения pdf? - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть xhtml2pdf version 0.2.3, работающий в Django, чтобы вывести сертификат для пользователя после завершения курса. Единственная проблема с ним заключается в том, что PDF-файл является редактируемым, что означает, что пользователь может изменить информацию о нем (имя, название курса, дату и т. Д. c.) Перед его распечаткой. Я не смог найти ничего в документах или моих поисках, которые ссылались на то, можете ли вы сделать PDF-файлы доступными только для чтения после их создания.

Вид:

import io
from io import BytesIO
from xhtml2pdf import pisa
from django.core.files import File
from django.template.loader import get_template

def generate_course_certificate(earned_credit):
    template = get_template("reports/course_certificate.html")
    context = {"earned_credit": earned_credit}
    html = template.render(context)
    output = BytesIO()
    inmemoryfile = io.BytesIO(output.getvalue())
    pdf = pisa.pisaDocument(BytesIO(html.encode("UTF-8")), inmemoryfile)
    earned_credit.proof_of_completion.save(
        f"{earned_credit.course.name} {earned_credit.pk}.pdf", File(inmemoryfile)
    )
    earned_credit.save()

Мне показалось странным, что он был редактируемым по умолчанию. Есть ли способ сделать его доступным только для чтения?

...