change pymupdf to pypdf
This commit is contained in:
36
Dockerfile
36
Dockerfile
@@ -13,28 +13,28 @@ RUN apk add --no-cache --virtual .build-deps ca-certificates gcc linux-headers \
|
|||||||
mariadb-dev \
|
mariadb-dev \
|
||||||
freetype-dev \
|
freetype-dev \
|
||||||
# install for pymupdf
|
# install for pymupdf
|
||||||
&& apk add --no-cache \
|
# && apk add --no-cache \
|
||||||
libffi-dev \
|
# libffi-dev \
|
||||||
zlib-dev \
|
# zlib-dev \
|
||||||
freetype-dev \
|
# freetype-dev \
|
||||||
make \
|
# make \
|
||||||
build-base \
|
# build-base \
|
||||||
gcc \
|
# gcc \
|
||||||
jbig2dec \
|
# jbig2dec \
|
||||||
jpeg-dev \
|
# jpeg-dev \
|
||||||
harfbuzz-dev \
|
# harfbuzz-dev \
|
||||||
libc-dev \
|
# libc-dev \
|
||||||
mupdf-dev \
|
# mupdf-dev \
|
||||||
musl-dev \
|
# musl-dev \
|
||||||
openjpeg-dev \
|
# openjpeg-dev \
|
||||||
swig \
|
# swig \
|
||||||
&& ln -s /usr/lib/libjbig2dec.so.0 /usr/lib/libjbig2dec.so \
|
# && ln -s /usr/lib/libjbig2dec.so.0 /usr/lib/libjbig2dec.so \
|
||||||
&& pip install pymupdf==1.23.18 \
|
# && pip install pymupdf==1.23.18 \
|
||||||
# upgrade pip
|
# upgrade pip
|
||||||
&& pip install --upgrade pip
|
&& pip install --upgrade pip
|
||||||
|
|
||||||
# setting for pymupdf
|
# setting for pymupdf
|
||||||
ENV PYMUPDF_SETUP_MUPDF_TESSERACT="0"
|
# ENV PYMUPDF_SETUP_MUPDF_TESSERACT="0"
|
||||||
|
|
||||||
COPY ./fet2020/requirements.txt /app/requirements.txt
|
COPY ./fet2020/requirements.txt /app/requirements.txt
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ import datetime
|
|||||||
import io
|
import io
|
||||||
import os
|
import os
|
||||||
|
|
||||||
import fitz
|
|
||||||
from django.core.files import File
|
from django.core.files import File
|
||||||
|
from pypdf import PdfReader, PdfWriter
|
||||||
|
|
||||||
from .models import Bill, Wiref
|
from .models import Bill, Wiref
|
||||||
|
|
||||||
@@ -12,6 +12,7 @@ def generate_pdf(wiref):
|
|||||||
if wiref is not None and wiref.status == Wiref.Status.OPENED:
|
if wiref is not None and wiref.status == Wiref.Status.OPENED:
|
||||||
bills = Bill.objects.filter(wiref=wiref).order_by("date")
|
bills = Bill.objects.filter(wiref=wiref).order_by("date")
|
||||||
|
|
||||||
|
# get data for pdf
|
||||||
data = {}
|
data = {}
|
||||||
for count, elem in enumerate(bills):
|
for count, elem in enumerate(bills):
|
||||||
data.update(
|
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")
|
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:
|
with fitz.open(pdf_path) as doc:
|
||||||
for page in doc:
|
for page in doc:
|
||||||
widgets = page.widgets()
|
widgets = page.widgets()
|
||||||
@@ -88,6 +105,7 @@ def generate_pdf(wiref):
|
|||||||
dist = doc.tobytes()
|
dist = doc.tobytes()
|
||||||
wiref_name = f"{wiref.wiref_id}.pdf"
|
wiref_name = f"{wiref.wiref_id}.pdf"
|
||||||
wiref.file_field.save(wiref_name, File(io.BytesIO(dist), wiref_name))
|
wiref.file_field.save(wiref_name, File(io.BytesIO(dist), wiref_name))
|
||||||
|
'''
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ html2text==2020.1.16
|
|||||||
ldap3==2.9.1
|
ldap3==2.9.1
|
||||||
mysqlclient==2.1.1
|
mysqlclient==2.1.1
|
||||||
pillow==9.5.0
|
pillow==9.5.0
|
||||||
pymupdf==1.23.18
|
pypdf==4.0.0
|
||||||
reportlab<4
|
reportlab<4
|
||||||
segno==1.6.0
|
segno==1.6.0
|
||||||
xhtml2pdf==0.2.11 # dependency reportlab<4
|
xhtml2pdf==0.2.11 # dependency reportlab<4
|
||||||
|
|||||||
Reference in New Issue
Block a user