{"id":12933,"date":"2019-03-31T03:00:18","date_gmt":"2019-03-31T01:00:18","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=12933"},"modified":"2019-03-31T08:31:59","modified_gmt":"2019-03-31T06:31:59","slug":"pdf-formulare-automatisch-auswerten-pdf-formulare-to-csv","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=12933","title":{"rendered":"PDF-Formulare automatisch auswerten &#8211; PDF-Formulare to CSV"},"content":{"rendered":"<p>Manchmal m\u00f6chte man mehrere PDF-Formulare automatisch auswerten. Z.B. von einer Umfrage. Also wie bekommt man die im <a href=\"https:\/\/de.wikipedia.org\/wiki\/Portable_Document_Format\" rel=\"noopener noreferrer\" target=\"_blank\">PDF<\/a>-Formular eingegebenen Felder aller <a href=\"https:\/\/de.wikipedia.org\/wiki\/Portable_Document_Format\" rel=\"noopener noreferrer\" target=\"_blank\">PDF<\/a> Dateien eines Verzeichnises in eine Excel CSV Datei f\u00fcr die Auswertung? Wie man PDF-Formulare kostenlos erstellt, hatte ich ja schon <a href=\"http:\/\/blog.wenzlaff.de\/?p=12897\" rel=\"noopener noreferrer\" target=\"_blank\">hier<\/a> beschrieben.<\/p>\n<p>Das geht mit dem Raspberry Pi (oder auch Mac und Windows) ganz einfach mit dem Java Tool <strong>twpdfformulartocsv<\/strong> das ich implementiert habe. Es muss mind. Java 8 auf dem Pi installiert sein. Das kann man mit <strong>java -version<\/strong> \u00fcberpr\u00fcfen. Es kommt auf dem Pi Zero bei mir<\/p>\n<pre>\r\nopenjdk version \"1.8.0_181\"\r\nOpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-2~deb9u1-b13)\r\nOpenJDK Client VM (build 25.181-b13, mixed mode)\r\n<\/pre>\n<p>Hier nun die Schritte, um es zu installieren.<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/TWPdfFormularToCsv.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/TWPdfFormularToCsv.jpg\" alt=\"\" width=\"2732\" height=\"2048\" class=\"aligncenter size-full wp-image-12934\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/TWPdfFormularToCsv.jpg 2732w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/TWPdfFormularToCsv-300x225.jpg 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/TWPdfFormularToCsv-768x576.jpg 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/TWPdfFormularToCsv-1024x768.jpg 1024w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p><!--more--><br \/>\n1. Das Archive mit dem <strong>twpdfformulartocsv_0.0.1-2_all.deb<\/strong> hier <a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/twpdfformulartocsv_0.0.1-2_all.deb_.zip\">ZIP<\/a> kostenlos laden und in das <strong>\/home\/pi<\/strong> Verzeichnis auspacken.  <\/p>\n<p>2. Installieren <strong>sudo dpkg -i twpdfformulartocsv_0.0.1-2_all.deb<\/strong><br \/>\nAusgabe:<\/p>\n<pre>\r\nVormals nicht ausgew\u00e4hltes Paket twpdfformulartocsv wird gew\u00e4hlt.\r\n(Lese Datenbank ... 83201 Dateien und Verzeichnisse sind derzeit installiert.)\r\nVorbereitung zum Entpacken von twpdfformulartocsv_0.0.1-2_all.deb ...\r\nEntpacken von twpdfformulartocsv (0.0.1-2) ...\r\ntwpdfformulartocsv (0.0.1-2) wird eingerichtet ...\r\n<\/pre>\n<p>3. Rechte anpassen <strong>sudo chown -R pi:pi \/home\/pi\/twpdfformulare<\/strong><\/p>\n<p>4. In das Verzeichnis wechseln <strong>cd \/home\/pi\/twpdfformulare<\/strong><\/p>\n<p>6. <a href=\"https:\/\/de.wikipedia.org\/wiki\/Portable_Document_Format\" rel=\"noopener noreferrer\" target=\"_blank\">PDF<\/a>-Formulare mit Testdaten in das \/home\/pi\/twpdfformulare\/beispiele verzeichnis kopieren (Beispiele hier laden <a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/PDF-Testdaten.zip\">PDF-Testdaten<\/a>)<\/p>\n<p>5. Programm mit den Testdatenverzeichnis starten: <strong>java -jar twpdfformulartocsv-0.0.1.jar .\/PDF-Testdaten<\/strong><\/p>\n<p>Das Ergebnis wird in die Datei \/home\/pi\/twpdfformulare\/<strong>formular-daten.csv<\/strong> geschrieben. Als Trennzeichen wird das <strong>#<\/strong> verwendet, da Komma und Semikolon oft in Textfeldern eingegeben werden. Ein erneuter Lauf, \u00fcberschreibt die Ergebnissdatei wieder. Hier die Ausgabe mit den obigen Beispieldaten:<\/p>\n<pre class=\"lang:default decode:true \" >\r\ncat formular-daten.csv\r\nVerzeichnis#PDF-Dateiname#Feldname#Inhalt#\r\n.\/PDF-Testdaten#pdf-formular-beispiel-1.pdf#Kombinationsfeld 1#[Immer mit SHIFT+ENTER]#\r\n.\/PDF-Testdaten#pdf-formular-beispiel-leer.pdf#Kombinationsfeld 1#[]#\r\n.\/PDF-Testdaten#pdf-formular-beispiel-2.pdf#Kombinationsfeld 1#[Auswahl zwei]#\r\n<\/pre>\n<p>Die Daten k\u00f6nnen dann in Excel importiert und ausgewertet werden. Dazu die Funktion &#8222;Text in Spalten&#8220; im Daten Men\u00fc mit den selektierten Daten verwenden:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.29.56.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.29.56.png\" alt=\"\" width=\"957\" height=\"322\" class=\"aligncenter size-full wp-image-12942\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.29.56.png 957w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.29.56-300x101.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.29.56-768x258.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>Dann als Trennkenzeichen das <strong>#<\/strong> unter &#8222;<strong>Anderes<\/strong>&#8220; ausw\u00e4hlen:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.30.10.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.30.10.png\" alt=\"\" width=\"768\" height=\"444\" class=\"aligncenter size-full wp-image-12943\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.30.10.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.30.10-300x173.png 300w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>und fertig:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.30.36.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.30.36.png\" alt=\"\" width=\"818\" height=\"275\" class=\"aligncenter size-full wp-image-12944\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.30.36.png 818w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.30.36-300x101.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.30.36-768x258.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>und formatieren:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.30.57.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.30.57.png\" alt=\"\" width=\"900\" height=\"321\" class=\"aligncenter size-full wp-image-12945\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.30.57.png 900w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.30.57-300x107.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/03\/Bildschirmfoto-2019-03-30-um-21.30.57-768x274.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>Will man das Programm wieder entfernen geht das mit <\/p>\n<p><strong>sudo dpkg -r twpdfformulartocsv<\/strong><\/p>\n<p><strong>TODO<\/strong>:<br \/>\n-Ausgabedateinamen als Parameter \u00fcbergeben<br \/>\n-Scripte und Beispiele in das deb Archive<br \/>\n-Trennkennzeichen als Parameter \u00fcbergeben<br \/>\n-GUI<br \/>\n-oder was braucht ihr noch? Ideen und Feedback gern per E-Mail.<\/p>\n<p>Aber jetzt erst mal die Uhren umstellen &#8230; \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Manchmal m\u00f6chte man mehrere PDF-Formulare automatisch auswerten. Z.B. von einer Umfrage. Also wie bekommt man die im PDF-Formular eingegebenen Felder aller PDF Dateien eines Verzeichnises in eine Excel CSV Datei f\u00fcr die Auswertung? Wie man PDF-Formulare kostenlos erstellt, hatte ich ja schon hier beschrieben. Das geht mit dem Raspberry Pi (oder auch Mac und Windows) &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=12933\" class=\"more-link\"><span class=\"screen-reader-text\">\u201ePDF-Formulare automatisch auswerten &#8211; PDF-Formulare to CSV\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[220,5,3172,3423,1361,2884,808,1023,2752,7],"tags":[1721,2309,3576,3586,3587],"class_list":["post-12933","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-java","category-java-10","category-java-11","category-java-8","category-java-9","category-linux-2","category-raspberry-pi","category-raspberry-pi-zero-w","category-tools","tag-csv","tag-pdf","tag-pdf-formular","tag-pdf-to-csv","tag-twpdfformulartocsv"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/12933","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=12933"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/12933\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=12933"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=12933"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=12933"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}