From 740c0b193af310942e1114688d783c2fd4668ea1 Mon Sep 17 00:00:00 2001 From: Mark Riedesel Date: Fri, 11 Oct 2013 01:49:10 -0400 Subject: [PATCH] super simple json dump of form fields --- views/editor.py | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/views/editor.py b/views/editor.py index a526787..e83bde2 100644 --- a/views/editor.py +++ b/views/editor.py @@ -1,11 +1,40 @@ from django.views.generic import View from django.http import HttpResponse - +from django.utils import simplejson +import poppler +import os class PDFFormFillerEditorView(View): def get(self, request, pdf=""): + doc = poppler.document_new_from_file('file:///home/mark/Bedraga.pdf', password=None) + json = simplejson.dumps(list(self.get_fields(doc, 0))) - return HttpResponse("response from editor view %s" % pdf) + return HttpResponse("response from editor view %s" % json) + + + def load_poppler_doc(self, filename): + from django.conf import settings + + pdf_path = os.path.abspath(os.path.join(settings.STATIC_FORMS_ROOT, filename)) + if os.path.isfile(pdf_path): + return poppler.document_new_from_file('file://' + pdf_path, password=None) + + def get_fields(self, poppler_doc, page): + fields = poppler_doc.get_page(page).get_form_field_mapping() + + for field in fields: + field_area = field.area + field_data = field.field + + yield { + 'name': field_data.get_name(), + 'area': { + 'x1': field_area.x1, + 'x2': field_area.x2, + 'y1': field_area.y1, + 'y2': field_area.y2, + } + }