Änderungen

Zur Navigation springen Zur Suche springen
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.
    
--------
 
--------

Navigationsmenü