Ich mache eine Webschnittstelle, um PDF-Formulare mit Benutzerdaten aus einer Datenbank automatisch zu füllen. Der Administrator muss in der Lage sein, ein PDF-Dokument hochzuladen (richtet sich jetzt direkt an IRS-PDF-Formulare) und verknüpft dann die Felder in der PDF-Datei mit Datenfeldern in der Datenbank.
Ich brauche eine Möglichkeit, dem Administrator zu helfen, die Feldnamen (zB "topmostSubform [0] .Page2 [0] .p2-t66 [0]") mit den Datenfeldern in der Datenbank zu verknüpfen. Ich bin auf der Suche nach einer Möglichkeit, das PDF programmatisch zu modifizieren, um diese Informationen in irgendeiner Weise bereitzustellen.
Grundsätzlich bin ich offen für Vorschläge, wie ich die Feldnamen in einer modifizierten Version des Original-PDF auf eine offensichtliche Weise erscheinen lassen könnte. Der nächste, den ich bekommen habe, ist es, Tooltips in die Felder in der PDF einzufügen, indem ich das Roh-PDF Zeile für Zeile bearbeite. Wenn man die PDF auf diese Weise editiert, sind die Feldnamen aber Kauderwelsch, und ich kann sie nicht einfach benutzen.
Eine optimale Lösung wäre alles, was ein PDF automatisch parsen und die QuickInfo jedes Feldes als den Namen der Felder festlegen könnte. Alles, was über die Befehlszeile oder ein beliebiges Python-Tool ausgeführt werden kann, oder einfach nur eine grundlegende Vorgehensweise, um den Namen eines Felds korrekt aus einer PDF-Rohdatei zu analysieren, wäre erstaunlich.
Es mag eine einfachere Lösung als diese geben, aber Sie könnten die Arbeit mit http://www.reportlab.com/software/opensource/rl-toolkit/'>ReportLab erledigen.
Wenn Sie die aktuellen Steuerformulare als Bild speichern können, können Sie festlegen, wo die einzelnen Elemente geschrieben werden müssen, und Ihren Code so entwickeln, dass automatisch die entsprechenden Werte aus der Datenbank über dem Bild (der Steuer) eingeblendet werden Form oder was auch immer es sein mag).
Sobald Sie bestimmt haben, 1) welche Felder müssen aus der Datenbank gezogen werden und 2) wo sie im Formular weitergehen sollen ...
Dies ist im Wesentlichen, was Sie tun würden:
%Vor% Dies könnte weit entfernt von Ihrem beabsichtigten Track sein; aber es könnte einen Gedanken wert sein. Ich habe an der Analyse gescannter strukturierter Dokumente in Django-Modellinstanzen gearbeitet. Mit testeract und unpaper, um die Vorverarbeitung und OCR zu machen, bekomme ich über 99% Genauigkeit. Dadurch kann ich den OCR-Ausgabetext mit den Modulen Levenshtein
und re
analysieren und eine einfache new_instance = MyModel(parsed1, parsed2, ...)
ausführen.
Es scheint, dass Sie versuchen, etwas Ähnliches zu tun. Schauen Sie sich die Formulare in Ссылка an. Sie neigen dazu, Textfelder links neben den Feldern zu haben. Mit etwas wie py-tesseract sollten Sie in der Lage sein, die Beschriftungen zu erkennen, den OCR-Text über das Formularbild zu legen und es dem Benutzer zu ermöglichen, die Feldbeschriftungen auszuwählen / zu bearbeiten.
Es gibt ein nettes kleines Werkzeug, ocrfeeder
Ссылка , das in Python geschrieben ist und Ihnen eine grundlegende Vorstellung davon geben soll wie der Prozess in einer Desktop-App funktioniert. Viel Glück.
Eine gute Antwort mit ReportLab und pyPDF finden Sie hier: Fügen Sie Text hinzu Bestehendes PDF mit Python
Ich kann die Frage falsch interpretieren, aber ich habe viel Erfahrung in der PDF-Erzeugung mit Python / Django wegen der Seite, an der ich 5 Monate gearbeitet habe. Ich würde vorschlagen, texlive zu verwenden. Im Grunde habe ich eine generische Tex-Vorlage für ein Dokument erstellt und dann django templating verwendet, um die Felder einzufügen. Ich habe die Vorlage so gerendert, als wäre sie html, mit render_to_string und dann mit dem Befehl pdflatex erzeugt. Ich habe pdflatex mit Python-Subprozess-Modul und ein wenig mehr ausgeführt. Um das Generieren zu tun, habe ich dieses Modul Ссылка mit einigen Modifikationen verwendet. Alles, was Sie brauchen, finden Sie in der Datei core.py im pdflatex-Verzeichnis.
Ex-tex-Dokument (test.tex))
%Vor%Ex-Rendering-Vorlage mit Django-Templating und render_to_string)
%Vor%Ex als PDF erzeugen)
%Vor%Latex hat eine etwas nervige, schwierige Lernkurve, aber wenn du die Zeit einarbeitest, kannst du lernen, was du wissen musst, um diese pdfs zu erstellen.
Hoffe, das hilft.
Ein Postscript-Parser lebt hier: Ссылка
Ich war daran interessiert, damit zu spielen, aber noch nicht.