{"id":3082,"date":"2014-04-19T18:28:59","date_gmt":"2014-04-19T16:28:59","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=3082"},"modified":"2021-11-22T17:15:27","modified_gmt":"2021-11-22T16:15:27","slug":"wie-koennen-dateien-automatisch-ueber-ein-dropbox-verzeichnis-zu-pdf-umwandeln-werden-mit-cups-auf-dem-raspberry-pi-inklusive-airprint","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=3082","title":{"rendered":"Wie k\u00f6nnen Dateien automatisch \u00fcber ein Dropbox Verzeichnis zu PDF umwandeln werden mit CUPS auf dem Raspberry Pi inklusive AirPrint?"},"content":{"rendered":"<p>Folgende 24\/7 Druckl\u00f6sung wird hier beschrieben.<\/p>\n<p>Es k\u00f6nnen alle Dateien die in einem Dropbox Verzeichnis kopiert werden, automatisch in PDF-Dateien umgewandelt werden. Diese PDF Dateien werden in ein weiteres Dropbox Verzeichnis bereitgestellt. So ist \u00fcber Dropbox ein platform\u00fcbergreifender Zugriff m\u00f6glich. Einfach die zu druckenden Dateien in das Verzeichnis kopieren. Der Drucker muss dazu nicht an sein.<\/p>\n<p>Auch k\u00f6nnen mit dieser L\u00f6sung \u00fcber iPhone, iPad&#8230; Dokumente \u00fcber AirPrint gedruckt werden auch wenn der Drucker nicht AirPrint-F\u00e4hig ist. Das l\u00e4uft \u00fcber den CUPS-Server.<\/p>\n<p>Der Drucker muss nicht immer an sein, da der Druckvorgang im Spooler des Raspberry Pi landet. Wenn der Drucker angeschaltet wird, werden die Dokumente gedruckt. Es ist rund um die Uhr ein Drucker erreichbar. <\/p>\n<p>Es werden also PDF Dateien erzeugt und es wird der angeschlossene Drucker \u00fcber CUPS &#8222;normal&#8220; verwendet. Das hei\u00dft es kann von jedem Ger\u00e4t, auch iPhone und iPad gedruckt werden!<\/p>\n<p><strong>Was ist daf\u00fcr zu tun? <\/strong><br \/>\nZuerst mal ein \u00dcberblick.:<br \/>\n<a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2014\/04\/Bildschirmfoto-2014-04-24-um-22.05.07.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2014\/04\/Bildschirmfoto-2014-04-24-um-22.05.07.png\" alt=\"Bildschirmfoto 2014-04-24 um 22.05.07\" width=\"1153\" height=\"1058\" class=\"aligncenter size-full wp-image-3166\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2014\/04\/Bildschirmfoto-2014-04-24-um-22.05.07.png 1153w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2014\/04\/Bildschirmfoto-2014-04-24-um-22.05.07-300x275.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2014\/04\/Bildschirmfoto-2014-04-24-um-22.05.07-1024x939.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2014\/04\/Bildschirmfoto-2014-04-24-um-22.05.07-900x825.png 900w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><br \/>\nEine valide BMPN 2.0 Version ist <a href=\"http:\/\/blog.wenzlaff.de\/?p=3165\" title=\"bpmn\" target=\"_blank\" rel=\"noopener\">hier<\/a> zu finden.<br \/>\n<!--more--><br \/>\nAnmelden auf dem Raspberry Pi und im Homeverzeichnis Dropbox-Uploader von GitHub holen:<\/p>\n<pre class=\"lang:default decode:true \" >git clone https:\/\/github.com\/andreafabrizi\/Dropbox-Uploader<\/pre>\n<p>Es wir das Verzeichnis <code>Dropbox-Uploader<\/code> angelegt mit den n\u00f6tigen Scripten.<\/p>\n<p>Kontakt zu DropBox einrichten wie hier schon mal <a href=\"http:\/\/blog.wenzlaff.de\/?p=2431\" title=\"dropbox\">beschrieben<\/a>.<\/p>\n<p>Die drei Verzeichnisse: <strong>input<\/strong>, <strong>output<\/strong> und <strong>pdf-output<\/strong> anlegen. Checken mit<\/p>\n<pre class=\"lang:default decode:true \" >~\/Dropbox-Uploader $ .\/dropbox_uploader.sh list&lt;\/code&gt;&lt;code&gt;\r\nAusgabe:\r\n&lt;code&gt; &gt; Listing \"\/\"... DONE\r\n [D] 0 input\r\n [D] 0 output\r\n [D] 0 pdf-output<\/pre>\n<p>Dann meine <strong>tw-scripte<\/strong> von GitHub holen mit<\/p>\n<pre class=\"lang:default decode:true \" >git clone https:\/\/github.com\/IT-Berater\/tw-scripte<\/pre>\n<p>Dann CUPS wie schon mal von mir <a href=\"http:\/\/blog.wenzlaff.de\/?p=2373\" title=\"cups\" target=\"_blank\" rel=\"noopener\">beschrieben<\/a> einrichten.<br \/>\nAlso kurz:<\/p>\n<pre class=\"lang:default decode:true \" >sudo apt-get update\r\nsudo apt-get upgrade\r\nsudo apt-get install avahi-daemon cups cups-pdf python-cups\r\nsudo nano \/etc\/cups\/cupsd.conf\r\n# Zeile anpassen: Only listen for connections from the local machine. Port 631\r\n# 3 x Allow @Local erg\u00e4nzen in location, location admin, location local\/conf\r\n\r\nsudo service cups restart\r\nsudo adduser pi lpadmin<\/pre>\n<p>Dann https:\/\/[Raspberry-Pi-IP]:631\/ aufrufen und wie beschrieben einrichten.<\/p>\n<p>Jetzt in das  <\/p>\n<pre class=\"lang:default decode:true \" >~\/tw-scripte<\/pre>\n<p>Verzeichnis wechseln, und <\/p>\n<pre class=\"lang:default decode:true \" >.\/dir-to-pdf.sh<\/pre>\n<p> aufrufen.<br \/>\nEs kommt diese Meldung:<br \/>\nUploading &#8222;\/home\/pi\/tw-scripte\/input\/input-beispiel.txt&#8220; to &#8222;\/output\/input-beispiel.txt&#8220;&#8230; DONE <\/p>\n<p>Dann  <\/p>\n<pre class=\"lang:default decode:true \" >.\/pdf-to-dropbox.sh<\/pre>\n<p> aufrufen. Es kommt die Meldung:<\/p>\n<p><code>PDF-Datei input-beispiel.pdf steht nun in der Dropbox im Verzeichnis \/pdf-output bereit.<\/code><\/p>\n<p>Nun kann im <code>pdf-output<\/code> Verzeichnis der Dropbox das \u00fcber CUPS erzeugte PDF angeschaut werden.<\/p>\n<p>Kommt es zu einer Fehlermeldung wie: lpr: Error &#8211; no default destination available. dann den default Drucker setzen wie <a href=\"http:\/\/blog.wenzlaff.de\/?p=2437\" title=\"keindrucker\" target=\"_blank\" rel=\"noopener\">hier<\/a> beschrieben.<\/p>\n<p>Jetzt diese beiden Scripte noch \u00fcber <code>\/etc\/crontab<\/code> automatisch alle 5 Minuten ausf\u00fchren lassen. Dazu mit <code>crontab -e<\/code> den folgenden Code anf\u00fcgen:<\/p>\n<pre class=\"lang:default decode:true \" >0,5,10,15,20,25,30,35,40,45,50,55 * * * * \/home\/pi\/tw-scripte\/dir-to-pdf.sh  #1. PDF generierung aus Dropbox inpox Verzeichnis\r\n2,7,12,17,22,27,32,37,42,47,52,57 * * * * \/home\/pi\/tw-scripte\/pdf-to-dropbox.sh    #2. PDF in Dropbox pdf-output Verzeichnis kopieren<\/pre>\n<p>Das einf\u00fcgen kann auch mit der<code>\/tw-scripte\/crontab-import.txt<\/code> Datei als Kopiervorlage verwendet werden.<\/p>\n<p>Habe ich noch was vergessen zu beschreiben? Bei mir l\u00e4uft diese L\u00f6sung schon seit Monaten erfolgreich.<\/p>\n<p>Ps. Der Dropbox uploader (v0.13) kann noch nicht mit Dateien umgehen, wo Umlaute (\u00e4\u00f6\u00fc\u00c4\u00d6\u00dc) vorhanden sind. Solche Dateien werden nicht zu PDF umgewandelt. Es gibt jetzt aber schon die v0.14.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Folgende 24\/7 Druckl\u00f6sung wird hier beschrieben. Es k\u00f6nnen alle Dateien die in einem Dropbox Verzeichnis kopiert werden, automatisch in PDF-Dateien umgewandelt werden. Diese PDF Dateien werden in ein weiteres Dropbox Verzeichnis bereitgestellt. So ist \u00fcber Dropbox ein platform\u00fcbergreifender Zugriff m\u00f6glich. Einfach die zu druckenden Dateien in das Verzeichnis kopieren. Der Drucker muss dazu nicht an &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=3082\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eWie k\u00f6nnen Dateien automatisch \u00fcber ein Dropbox Verzeichnis zu PDF umwandeln werden mit CUPS auf dem Raspberry Pi inklusive AirPrint?\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[214,40,808,79,1023,1,7],"tags":[1415,1134,421,1416],"class_list":["post-3082","post","type-post","status-publish","format-standard","hentry","category-ipad","category-iphone","category-linux-2","category-programmierung","category-raspberry-pi","category-uncategorized","category-tools","tag-air-print","tag-cups","tag-dropbox","tag-druckserver"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/3082","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=3082"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/3082\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3082"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3082"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3082"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}