Zeile 13: |
Zeile 13: |
| | | |
| == PDF == | | == PDF == |
| + | |
| + | === Mini-Dokumentenmanagementsystem === |
| + | |
| + | * Status: Idee |
| + | * Ziel: Einfache Volltextsuche auch gescannter Dokumente |
| + | * Unterziele: |
| + | ** Keine Bindung an das Projekt, leichter Umstieg auf ein anderes (richtiges) [[DMS]] |
| + | ** Nutzung bisheriger Ordnerstruktur |
| + | * Umsetzung |
| + | ** Es wird ein Erfassungs-Workflow geschaffen |
| + | *** Schritt 1: Sofern das Dokument in Papier vorliegt, muss es |
| + | **** gescannt |
| + | ***** z.B. mit Scanimage ([https://jvns.ca/blog/2020/07/11/scanimage--scan-from-the-command-line/ kann über Umweg auch PDF erzeugen]) |
| + | **** und per OCR erfasst werden |
| + | **** Es wird ein PDF in der bestehenden Ordnerstruktur erzeugt, das einen Textlayer hat. |
| + | *** Im Schritt 2 wird eine Text-Datei erzeugt, |
| + | **** die den kompletten Textinhalt der Datei enthält und |
| + | **** die im selben Ordner wie die Originaldatei liegt und |
| + | **** die als Dateinamen den Namen der ursprünglichen Datei einschließlich Endung mit der zusätzlichen Endung ".mdms.txt" erhält |
| + | ** Es gibt ein Suchskript über die .mdms.txt-Dateien |
| + | *** Basis wahrscheinlich [https://svij.org/blog/2017/03/08/suchen-und-finden-mit-ag-statt-ack-statt-grep/ ag] statt ack oder grep (in Kombination mit find) |
| + | *** dies kann optional die gefundenen Dateien öffnen |
| + | **** xdg-open in Verbindung mit dem Dateinamen der mdms.txt-Datei, jedoch ohne .mdms.txt |
| + | * Erweiterungen |
| + | ** Es werden nicht nur Scanns erfasst, sondern auch bestehende Dokumente, z.B. |
| + | *** mittels pdftotext bei PDFs, die aus einer Textverarbeitung stammen (also kein OCR benötigen) |
| + | *** DOC, DOCX, ODS, ODT-Dateien |
| + | ** Es braucht ein Erfassungsskript, das die mdms.txt-Dateien anlegt. |
| + | ** Bei in Textform bereits vorliegenden Formaten, braucht es keine mdms.txt-Dateien. Insoweit muss das Suchskript lediglich erweitert werden. Beispiele |
| + | *** Programmcode wie .js, .ts, .c , .cpp, .rs, .html |
| + | *** Markup wie Markdown .md, .markdown und Asciidoc .adoc |
| + | * Alternativen |
| + | ** openpaper PaperWorks |
| + | *** unterstützt leider die bisherige Ordnerstruktur nicht. |
| + | ** https://github.com/darrenldl/docfd |
| + | *** docfd arbeitet in einem Terminalfenster und stellt eine Art halbgrafisches [[grep]] für unterschiedliche Dokumentenformate (u.a. PDF, DOCX) dar. |
| + | |
| + | === Füge PDF in Word-Dokument ein === |
| + | * Status: Idee |
| + | * Ziel: PDF-Datei in Word-Datei so einfügen, dass Kopf- und Fußzeilen in Word erhalten bleiben. Ggf. sollten die PDF-Seiten zugeschnitten oder skaliert werden können. |
| + | * Umsetzung |
| + | ** Extrahieren der PDF-Seiten in PNG/JPEG-Bilder |
| + | *** https://www.npmjs.com/package/pdf-img-convert |
| + | ** Einfügen der Bilder in Word an einem Platzhalter |
| + | ** [[Nodejs]]-Packages |
| + | *** [https://github.com/dolanmiu/docx DOCX]-package zum Erzeugen von Word-Dateien. |
| + | **** [https://dev.to/iainfreestone/how-to-create-a-word-document-with-javascript-24oi Einführung in DOCX und file-saver] |
| + | *** https://www.npmjs.com/package/docx-templates |
| + | *** https://github.com/alonrbar/easy-template-x |
| + | *** Dagegen hat [https://www.npmjs.com/package/docxtemplater docxtemplater] nur ein kommerzielles [https://docxtemplater.com/modules/image/ Bilder-Modul]. |
| + | *** Bei https://www.npmjs.com/package/docx-template fehlt Dokumentation. |
| + | *** [https://www.npmjs.com/package/nodeoffice NodeOffice] kann Docx-Dateien parsen, aber nicht schreiben (scheint nicht weiterentwickelt zu werden) |
| + | *** https://www.npmjs.com/package/@microsoft/office-js |
| + | ** Weitere mögliche Hilfen |
| + | *** [https://pandoc.org/demos.html pandoc] kann auch docx-Dokumente nach [[HTML]] und [[CSS]] konvertieren |
| | | |
| === Erzeuge PDF im Browser === | | === Erzeuge PDF im Browser === |
Zeile 20: |
Zeile 75: |
| ** Darstellung mit drei Feldern: | | ** Darstellung mit drei Feldern: |
| *** Eingabe/Editor-Feld (in HTML/JavaScript bzw. [[TypeScript]] implementiert) | | *** Eingabe/Editor-Feld (in HTML/JavaScript bzw. [[TypeScript]] implementiert) |
− | *** JSON-Feld, das den Text samt Formatierung ähnlich dem makepdf.js-Format anzeigt | + | *** JSON-Feld, das den Text samt Formatierung ähnlich dem [http://pdfmake.org/#/ pdfmake.org]-Format anzeigt |
− | *** PDF-Feld, in dem das mit makepdf.js erzeugte PDF mittels [[PDF.js]] in einem IFrame angezeigt wird | + | *** PDF-Feld, in dem das mit [http://pdfmake.org/#/ pdfmake.org] erzeugte PDF mittels [[PDF.js]] in einem IFrame angezeigt wird |
− | | + | ** Features |
| + | *** Markieren, Löschen, Formatieren |
| + | *** Cut & Paste mit dem Systemclipboard |
| | | |
| === PDF-Maschine === | | === PDF-Maschine === |
Zeile 30: |
Zeile 87: |
| * Umsetzung: Linux-Server mit [[CUPS]], PDF-Druckertreiber und [[Samba]]. Der PDF-Drucker sollte die PDFs in ein öffentliches Verzeichnis des [[Linux]]-Servers ablegen, auf das ([[Windows]])-Clients zugreifen können. Der Linux-Server wird in einer (kleinen) virtuellen Maschine mittels [[Virtual Box]] aufgesetzt. Diese Virtuelle Maschine sollte beim Booten automatisch gestartet werden. | | * Umsetzung: Linux-Server mit [[CUPS]], PDF-Druckertreiber und [[Samba]]. Der PDF-Drucker sollte die PDFs in ein öffentliches Verzeichnis des [[Linux]]-Servers ablegen, auf das ([[Windows]])-Clients zugreifen können. Der Linux-Server wird in einer (kleinen) virtuellen Maschine mittels [[Virtual Box]] aufgesetzt. Diese Virtuelle Maschine sollte beim Booten automatisch gestartet werden. |
| | | |
− | == PDF-Anmalen == | + | === PDF-Anmalen === |
| | | |
| * Status: Idee | | * Status: Idee |
| * Ziel: User soll PDF-Dateien im Browser eines Tablets (wie z.B. Microsoft Surface) öffnen und mit handschriftlichen Anmerkungen versehen können. | | * Ziel: User soll PDF-Dateien im Browser eines Tablets (wie z.B. Microsoft Surface) öffnen und mit handschriftlichen Anmerkungen versehen können. |
| | | |
− | Siehe auch | + | Das Ziel wird bereits durch Desktop-Programme erreicht: |
| + | |
| + | * [http://xournal.sourceforge.net/ Xournal] (für Linux, Windows, Android) |
| + | * [https://github.com/xournalpp/xournalpp Xournal++] |
| + | * [http://www.dklevine.com/general/software/tc1000/jarnal.htm Jarnal] (Java-basiert, für Windows oder für Linux) |
| + | |
| + | |
| + | Siehe auch für die Zeichenschicht: |
| * [https://stackoverflow.com/questions/22891827/how-do-i-hand-draw-on-canvas-with-javascript# Stackoverflow: JavaScript-Freihandzeichnung] | | * [https://stackoverflow.com/questions/22891827/how-do-i-hand-draw-on-canvas-with-javascript# Stackoverflow: JavaScript-Freihandzeichnung] |
| * [http://www.williammalone.com/articles/create-html5-canvas-javascript-drawing-app/ Tutorial Javascript Canvas] | | * [http://www.williammalone.com/articles/create-html5-canvas-javascript-drawing-app/ Tutorial Javascript Canvas] |
Zeile 41: |
Zeile 105: |
| * [https://gojs.net/latest/extensions/FreehandDrawing.html GoJS FreehandDrawing] | | * [https://gojs.net/latest/extensions/FreehandDrawing.html GoJS FreehandDrawing] |
| * [https://www.drawerjs.com/ DrawerJS] | | * [https://www.drawerjs.com/ DrawerJS] |
| + | * [https://developers.google.com/web/updates/2019/05/desynchronized Google Chrome hat eine Verbesserung bei der Latenz für Stylus-Anwendungen]: den <code>desynchronized</code> Hinweis für <code>canvas.getContext()</code> |
| + | |
| + | Siehe auch für die PDF-Anzeigeschicht: |
| + | * https://pspdfkit.com/blog/2018/render-pdfs-in-the-browser-with-pdf-js/ |
| + | * https://pdf-lib.js.org/ |
| + | |
| + | Siehe auch für die PDF-Modifikation: |
| + | * https://pdf-lib.js.org/ |
| + | * https://github.com/DevelopingMagic/pdfassembler |
| | | |
| == Farbname-App == | | == Farbname-App == |
Zeile 66: |
Zeile 139: |
| * Umsetzung: Zu verwenden wäre wohl die [[IFRAME]]-Technik. Als Alternative kann der Portalserver die entsprechenden Elemente laden und weitergeben. | | * Umsetzung: Zu verwenden wäre wohl die [[IFRAME]]-Technik. Als Alternative kann der Portalserver die entsprechenden Elemente laden und weitergeben. |
| ** Zur Auswahl des abzubildenden Elements kann man evtl. die Technik, die bei [[Zoho]] für die Einbindung fremder Inhalte in Tabellen verwendet wird, nutzen. | | ** Zur Auswahl des abzubildenden Elements kann man evtl. die Technik, die bei [[Zoho]] für die Einbindung fremder Inhalte in Tabellen verwendet wird, nutzen. |
| + | |
| + | |
| + | === Verkehr === |
| + | |
| + | Sinnvoll wären auch Abfahrtstafeln nahe gelegener Bahnhöfe / Stationen. |
| + | |
| + | Siehe auch |
| + | |
| + | * https://github.com/derhuerst/db-stations - Liste mit allen DB-Stationen |
| + | * https://dbf.finalrewind.org/ - Abfahrtstafeln, über [[iframe]] integrierbar |
| + | ** https://github.com/derf/db-fakedisplay/blob/main/README.md |
| + | |
| + | * DB API Marketplace - meist kostenpflichtig |
| + | ** DB Timetables API - [https://developers.deutschebahn.com/db-api-marketplace/apis/node/26497 kostenfrei] |
| + | *** https://pypi.org/project/deutsche-bahn-api/ |
| + | **** https://github.com/Tutorialwork/deutsche_bahn_api |
| + | ** https://github.com/ArduinoHannover/DBAPI |
| + | ** Railway Station Pictures - [https://developers.deutschebahn.com/db-api-marketplace/apis/product/118510 kostenfrei] |
| + | *** Benutzt auf https://map.railway-stations.org/ |
| + | ** [https://forums.livecode.com/viewtopic.php?t=35235 ältere Diskussion zu einem DB Departure Board] |
| + | |
| + | |
| + | === Bibliothek === |
| + | |
| + | * https://info.opacapp.net/androidconfigs/ |
| + | * https://github.com/opacapp/opacclient/blob/master/opacclient/libopac/README.md |
| | | |
| == MediaWiki-Sync == | | == MediaWiki-Sync == |
Zeile 123: |
Zeile 222: |
| * Lokaler Rechner übermittelt RESTORE Befehl an Remote Rechner, obiger Backup-Vorgang wird umgekehrt | | * Lokaler Rechner übermittelt RESTORE Befehl an Remote Rechner, obiger Backup-Vorgang wird umgekehrt |
| | | |
| + | |
| + | == Mobiler Peer 2 Peer Dateiaustausch == |
| + | |
| + | * Status: Idee |
| + | * Ziel: Große Dateien sollten direkt von Smartphone zu Smartphone übertragen werden können. |
| + | * Lösungsansätze: |
| + | ** Mittels Teilen eines [[QR-Code]]s von Smartphone A kann das Smartphone B eine WLAN-Verbindung herstellen und die Dateien von Smartphone B herunterladen oder zu ihm hochladen. |
| + | ** Mittels WiFi-Direct müsste nur Smartphone A eine Android-App haben, auf Smartphone B reicht ein Browser. |
| + | ** Smartphone A - App müsste |
| + | *** eine WiFi-Direct-Verbindung anbieten (ggf. einen QR-Code für die WLAN-Verbindung anzeigen) |
| + | *** einen Mini-Web-Server zur Verfügung stellen, um eine Webseite für Smartphone B anzubieten |
| + | *** einen QR-Code für den Zugriff des Smartphone B auf die Webseite anzeigen. |
| + | ** QRCode wird auf Smartphone A angezeigt, dieser von Smartphone B gescannt, die codierte URL verweist auf einen WebServer, der die Verbindungslogik enthält. |
| + | *** Verbindungslogik |
| + | **** Ein Websocket-Server dient als Datenaustauchbriefkasten |
| + | **** Es wird eine direkte Verbindung mittels WebRTC hergestellt, nur hilfsweise auf den Websocket-Austausch zurückgefallen . |
| + | ***** https://stackoverflow.com/questions/29032884/why-is-a-signaling-server-needed-for-webrtc/29056385#29056385 |
| + | ***** https://mac-blog.org.ua/webrtc-one-to-one-without-signaling-server/ |
| + | ***** https://peerjs.com/docs/#start |
| + | ****** https://github.com/peers/peerjs/issues/103 |
| + | ***** https://www.npmjs.com/package/node-datachannel |
| + | ***** https://shinyoshiaki.github.io/werift-webrtc/website/build/ |
| + | |
| + | *** Auslösen der Dateiübertragung entweder durch |
| + | **** FilePicker im Browser oder |
| + | **** [[Web Share Target API]] - Teilen-Knopf |
| + | ***** https://mconverter.eu/blog/web_share_target_api/ zeigt die Web Share Target API mit ein oder mehreren Dateien. |
| + | **** [https://github.com/WICG/file-handling/blob/main/explainer.md File Handling API] - "Öffnen mit..."-Menü auf dem Desktop |
| + | |
| + | ** Cli app auf Basis von nodejs |
| + | *** https://www.npmjs.com/package/qrcode |
| + | |
| + | |
| + | Siehe auch |
| + | ** https://ostechnix.com/easy-fast-way-share-files-internet-command-line/ |
| + | * [https://ostechnix.com/transfer-files-between-computers-and-mobile-devices-by-scanning-qr-codes/ Qrcp] |
| + | * https://www.mobileprocessing.org/p2p.html |
| + | * https://developer.android.com/guide/topics/connectivity/wifip2p |
| + | **https://developer.android.com/training/connect-devices-wirelessly/wifi-direct |
| + | * https://wiki.gnome.org/NetworkManager/WifiDirect |
| + | * https://unix.stackexchange.com/questions/370123/wifi-direct-between-linux-android |
| + | * [https://www.qrdrop.de qrdrop.de] - |
| + | ** positiv: einfaches User Interface, Passwortschutz, guter Name |
| + | ** negativ: Beschränkung auf 10 MB, Hochladen auf einen Server statt P2P-Austausch, bisher wohl keine Nutzung der [[Web Share Target API]] |
| + | |
| + | === Vorhandene Alternativen === |
| + | |
| + | * https://webdrop.space/#/ |
| + | ** wohl nur Weboberfläche, keine CLI |
| + | * [https://transfer.sh/ transfer.sh] |
| + | * [https://www.qrdrop.de qrdrop.de] - |
| + | ** positiv: einfaches User Interface, Passwortschutz, guter Name |
| + | ** negativ: Beschränkung auf 10 MB, Hochladen auf einen Server statt P2P-Austausch, bisher wohl keine Nutzung der [[Web Share Target API]] |
| | | |
| == BGH-Leitsätze == | | == BGH-Leitsätze == |
Zeile 286: |
Zeile 438: |
| | | |
| Luigi möchte die Heizung seines Appartements selbst steuern und vielleicht irgendwann weitere [[Smart Home]]-Funktionen nutzen. Siehe [[Luigis Smart Home]]. | | Luigi möchte die Heizung seines Appartements selbst steuern und vielleicht irgendwann weitere [[Smart Home]]-Funktionen nutzen. Siehe [[Luigis Smart Home]]. |
| + | |
| + | == Halbautomatische Buchhaltung == |
| + | |
| + | * Idee: Kontoauszüge werden automatisch - aufgrund bestimmter Regeln oder Muster - bestimmten Kategorien und Unterkategorien zugeordnet. |
| + | ** Eine Zahlung (bzw. Teilzahlung) kann auch mehreren Kategorien zugeordnet sein. |
| + | ** Manche Kategorienarten (Sammlung von Kategorien) müssen der Zahlung zugeordnet sein (d.h. die Zahlung muss mindestens/genau einer der Kategorien der Kategorienart zugeordnet sein). |
| + | * Umsetzung |
| + | ** Für die Konvertierung in ein gemeinsames Datenformat kann [https://daffodil.apache.org/ Apache Daffodil] eingesetzt werden. |
| | | |
| -------- | | -------- |