change pymupdf to pypdf
This commit is contained in:
@@ -2,8 +2,8 @@ import datetime
|
||||
import io
|
||||
import os
|
||||
|
||||
import fitz
|
||||
from django.core.files import File
|
||||
from pypdf import PdfReader, PdfWriter
|
||||
|
||||
from .models import Bill, Wiref
|
||||
|
||||
@@ -12,6 +12,7 @@ def generate_pdf(wiref):
|
||||
if wiref is not None and wiref.status == Wiref.Status.OPENED:
|
||||
bills = Bill.objects.filter(wiref=wiref).order_by("date")
|
||||
|
||||
# get data for pdf
|
||||
data = {}
|
||||
for count, elem in enumerate(bills):
|
||||
data.update(
|
||||
@@ -45,7 +46,23 @@ def generate_pdf(wiref):
|
||||
}
|
||||
)
|
||||
|
||||
# write data in pdf
|
||||
pdf_path = os.path.join(os.path.dirname(__file__), "static/Vorlage.pdf")
|
||||
reader = PdfReader(pdf_path)
|
||||
writer = PdfWriter()
|
||||
writer.append(reader)
|
||||
|
||||
writer.update_page_form_field_values(
|
||||
writer.pages[0],
|
||||
data,
|
||||
)
|
||||
|
||||
with io.BytesIO() as bytes_stream:
|
||||
writer.write(bytes_stream)
|
||||
|
||||
wiref_name = f"Abrechnungsformular-{wiref.wiref_id}.pdf"
|
||||
wiref.file_field.save(wiref_name, File(bytes_stream, wiref_name))
|
||||
'''
|
||||
with fitz.open(pdf_path) as doc:
|
||||
for page in doc:
|
||||
widgets = page.widgets()
|
||||
@@ -88,6 +105,7 @@ def generate_pdf(wiref):
|
||||
dist = doc.tobytes()
|
||||
wiref_name = f"{wiref.wiref_id}.pdf"
|
||||
wiref.file_field.save(wiref_name, File(io.BytesIO(dist), wiref_name))
|
||||
'''
|
||||
|
||||
return True
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ html2text==2020.1.16
|
||||
ldap3==2.9.1
|
||||
mysqlclient==2.1.1
|
||||
pillow==9.5.0
|
||||
pymupdf==1.23.18
|
||||
pypdf==4.0.0
|
||||
reportlab<4
|
||||
segno==1.6.0
|
||||
xhtml2pdf==0.2.11 # dependency reportlab<4
|
||||
|
||||
Reference in New Issue
Block a user