import json
from postgresqleu.util.backendviews import backend_list_editor
+from postgresqleu.util.versionutil import fitz_get_page_png
from postgresqleu.digisign.models import DigisignProvider, DigisignLog
from postgresqleu.digisign.backendforms import BackendProviderForm
from postgresqleu.digisign.util import digisign_providers
# one PNG for each page.
pdf = fitz.open('pdf', bytes(pdf))
pages = []
- if fitz.version[0] > "1.19":
- pages = [(pagenum, base64.b64encode(page.get_pixmap().tobytes(output='png')).decode()) for pagenum, page in enumerate(pdf.pages())]
- else:
- pages = [(pagenum, base64.b64encode(page.getPixmap().getPNGData()).decode()) for pagenum, page in enumerate(pdf.pages())]
+ pages = [(pagenum, base64.b64encode(fitz_get_page_png(page)).decode()) for pagenum, page in enumerate(pdf.pages())]
return render(request, 'digisign/pdf_field_editor.html', {
'conference': conference,
from reportlab.pdfgen.canvas import Canvas
from postgresqleu.util.reporttools import cm
+from postgresqleu.util.versionutil import fitz_get_page_pixmap, fitz_insert_text, fitz_insert_image
def fill_pdf_fields(pdf, available_fields, fielddata):
txt = ""
if txt:
- if fitz.version[0] > "1.19":
- page.insert_text(p, txt, fontname='Courier-Bold', fontsize=fielddata['fontsize'])
- else:
- page.insertText(p, txt, fontname='Courier-Bold', fontsize=fielddata['fontsize'])
+ fitz_insert_text(page, p, txt, 'Courier-Bold', fielddata['fontsize'])
return pdf.write()
wmio.seek(0)
wmpdf = fitz.open('pdf', wmio)
- if fitz.version[0] > "1.19":
- wmpixmap = next(wmpdf.pages()).get_pixmap()
- else:
- wmpixmap = next(wmpdf.pages()).getPixmap()
+ wmpixmap = fitz_get_page_pixmap(next(wmpdf.pages()))
pdf = fitz.open('pdf', pdfdata)
for pagenum, page in enumerate(pdf.pages()):
- if fitz.version[0] > "1.19":
- page.insert_image(page.bound(), pixmap=wmpixmap, overlay=False)
- else:
- page.insertImage(page.bound(), pixmap=wmpixmap, overlay=False)
+ fitz_insert_image(page, page.bound(), wmpixmap, False)
return pdf.write()
return jwt.decode(j, options={'verify_signature': False})
else:
return jwt.decode(j, verify=False)
+
+
+def fitz_get_page_png(page):
+ import fitz
+
+ if fitz.version[0] > "1.19":
+ return page.get_pixmap().tobytes(output='png')
+ else:
+ return page.getPixmap().getPNGData()
+
+
+def fitz_get_page_pixmap(page):
+ import fitz
+
+ if fitz.version[0] > "1.19":
+ return page.get_pixmap()
+ else:
+ return page.getPixmap()
+
+
+def fitz_insert_text(page, point, txt, fontname, fontsize):
+ import fitz
+
+ if fitz.version[0] > "1.19":
+ page.insert_text(point, txt, fontname=fontname, fontsize=fontsize)
+ else:
+ page.insertText(point, txt, fontname=fontname, fontsize=fontsize)
+
+
+def fitz_insert_image(page, rect, pixmap, overlay):
+ import fitz
+
+ if fitz.version[0] > "1.19":
+ page.insert_image(rect, pixmap=pixmap, overlay=overlay)
+ else:
+ page.insertImage(rect, pixmap=pixmap, overlay=overlay)