|
|
|
|
Der Zeitfaktor ist mir im Endeffekt dann auch recht egal. Ich schrieb ja schon, dass auf dem Pi gleichzeitig auch PiHole und deCONZ laufen. Ich habe für paperless die Considerations for less powerful devices beachtet. Damit werden maximal 2 Dokumente parallel verarbeitet. Während das passiert, konnte ich keine Einschränkungen in Bezug auf sonstige Software auf dem Pi feststellen. PiHole, VNC, auch Chromium hat der parallel alles sauber hinbekommen.
|
|
|
|
|
|
|
| Zitat von tbd
Das klingt doch insgesamt sehr ordentlich, nice!
Da fällt mir ein ganz praktisches Problem ein: wenn ich einen Stapel Dokumente einscanne bekommen ich hinterher nur ein pdf (wie wohl auch bei deinen Gehaltsabrechnungen). Gibt es da bei paperless eine Möglichkeit Dokumente zu trennen?
| |
Ich glaube, das geht nicht. Also weder Trennen noch Zusammenfügen. Oder ich übersehe die Funktion.
Ich lass die Abrechnungen für ein Jahr jetzt in einer kompletten Datei. Der Volltext lässt sich ja durchsuchen. Automatisiert wirst du vermutlich auch nichts hinkriegen und bei allem manuell nachfassen, ist mir zu viel Aufwand.
Alternativ schiebst du nur die Blätter in den Scanner, die auch zusammen in einem PDF landen sollen oder du machst manuell was dran.
|
|
|
|
|
|
|
Ist vom Entwickler auch nicht gewollt.
https://github.com/jonaswinkler/paperless-ng/issues/120
Wobei ich nicht ganz verstehe, warum die Dokumenthandhabung das Problem sein soll, man könnte ja vor dem Import des Dokuments eine Vorstufe laufen lassen, die das PDF aufteilt und dann erst importieren.
EcoDMS macht das wohl so:
https://www.ecodms.de/index.php/de/download/ecodms-archiv/ecodms-version-18-09-apu
Edit: Es gibt ein paar Lösungen auf GitHub, die auf Barcode basierend ein PDF in mehrere Dokumente zerlegen, aber die basieren alle auf Barcodes AUF den Dokumenten... Ich würde ja ein Trennblatt bevorzugen.
Edit2: Das hier könnte funktionieren, aber man müsste sich was basteln.
https://github.com/adlerweb/PdfQRSplit
Paperless kann ja Hooks verwenden (PAPERLESS_PRE_CONSUME_SCRIPT) - einfach vorher das split script laufen lassen? Die Benennung ist nicht optimal, aber das ist sie auch vom Scanner her schon nicht.
|
[Dieser Beitrag wurde 3 mal editiert; zum letzten Mal von [KDO2412]Mr.Jones am 12.05.2021 11:53]
|
|
|
|
|
|
Dürfte mit dem pre consume script schon zu machen sein. Einfach ein paar Seiten abschneiden und in ein zweites (drittes, viertes) Dokument legen. Paperless würde dann immer noch das ursprüngliche Dokument verarbeiten und beim nächsten Erfassen aller Dateien im Consume Ordner dann die weiteren Dokumente in die Queue reinschieben.
Ich würde aber die erste Datei belassen, also gleicher Dateiname. Ich weiß nicht, ob paperless damit zurechtkommt, dass das pre-Script das Dokument verschiebt oder umbenennt.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Armag3ddon am 12.05.2021 12:02]
|
|
|
|
|
|
Das ursprüngliche Dokument müsste man dann schon löschen, sonst hat man ja alles doppelt. Kann man da kein Stop-Bit setzen? Also "hey Paperless, verarbeite dieses Dokument mal nicht!"?
Oder halt noch einen weiteren Ordner für das Trennen und einfach einen Cron-basierten Scriptaufruf, der dass dann in den Consume-Ordner von Paperless verschiebt.
Nervt auch.
|
|
|
|
|
|
|
Die pre/post Scripte können leider nicht mit paperless kommunizieren.
Pre-Script ist hier:
Popen((settings.PRE_CONSUME_SCRIPT, self.path)).wait()
So wie ich das sehe, checkt paperless danach auch nicht mehr, ob das Dokument noch vorhanden ist. Würde also explodieren, wenn das weg ist. Das Script kann natürlich die Datei selber löschen und der ersten Split-Datei denselben Namen verpassen.
|
|
|
|
|
|
|
So, wieder ein pOT Moment. Langeweile mitten im der Nacht weil die Kids grummeln und mal eben heute die elektronische Archivierung begonnen.
Hab mal den aktuellen Ablagestapel mit Abbyy gescannt und mit Namen wie Datum-Absender-Thema in einer einfachen Ordnerstruktur auf dem Synology NAS abgelegt. Nur funktioniert darauf die indizierte Suche noch nicht.
Jetzt schaue ich mir gerade Devonthink an, da dort die Abbyy OCR eingebaut ist. Und dazu ist es billiger. Sollte das Programm mal nicht mehr funktionieren (das ist bei mir immer ein Kriterium) dann kann ich die Daten mitsamt der Folder exportieren.
Hat jemand noch Tipps dafür oder generell wie ihr es auf einer Synology macht (insbesondre das Backup).
|
|
|
|
|
|
|
Der Plan sieht vor, Paperless NG als Docker Container laufen zu lassen und das offsite Backup per HyperBackup auf eine alte DiskStation bei meinem Eltern im Keller zu spielen...
Edit: Allerdings kann Paperless nicht mit verschiedenen Benutzern umgehen. Ich habe momentan den Scanner so eingerichtet (zumindest hatte ich das... Arma, konntest Du die Einstellungen behalten oder war ein hard reset notwendig?), dass er in verschiedene Ordner scannt, je nachdem, was man für ein Dokument scannt (manuell über den Touchscreen ausgewählt).
Bei Paperless würde ja alles in den Eingangsordner kommen und man hätte nicht direkt die Trennung von z.B. Job, Schule, Versicherung... etc.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von [KDO2412]Mr.Jones am 12.05.2021 20:35]
|
|
|
|
|
|
| Zitat von [KDO2412]Mr.Jones
Der Plan sieht vor, Paperless NG als Docker Container laufen zu lassen und das offsite Backup per HyperBackup auf eine alte DiskStation bei meinem Eltern im Keller zu spielen...
Edit: Allerdings kann Paperless nicht mit verschiedenen Benutzern umgehen. Ich habe momentan den Scanner so eingerichtet (zumindest hatte ich das... Arma, konntest Du die Einstellungen behalten oder war ein hard reset notwendig?), dass er in verschiedene Ordner scannt, je nachdem, was man für ein Dokument scannt (manuell über den Touchscreen ausgewählt).
Bei Paperless würde ja alles in den Eingangsordner kommen und man hätte nicht direkt die Trennung von z.B. Job, Schule, Versicherung... etc.
| |
Edit gar nicht gesehen. ich hab an den Einstellungen eigentlich nichts gedreht. Mein WLAN eingerichtet und das war's, Scans fordere ich über das ControlCenter 4 vom Rechner her an (der Touchscreen am Gerät braucht so dermaßen lange, bis man da durch ist!).
|
|
|
|
|
|
|
Kannst Dir einen "quick button" einrichten, dann brauchst Du nur noch den auswählen und er scannt dann direkt zum angegebenen Ziel mit den festgelegten Einstellungen.
Der Witz am Netzwerkscanner ist doch gerade, dass der Rechner nicht an sein muss.
|
|
|
|
|
|
|
Das stimmt natürlich. Aber so muss ich nicht an deiner Config rumfummeln und ich arbeite derzeit ohnehin manuell nach und benenne die Dateien um. Da dein Scanner hier nicht der Dauerzustand bleibt, habe ich in die Richtung jetzt keinen großen Aufwand betrieben.
|
|
|
|
|
|
|
Mehr Scripting!
Falls jemand an meiner Backuplösung interessiert ist, habe ich dazu noch ein Begleitscript geschrieben. Weil ich das Backupscript erst verspätet eingebaut habe, waren schon eine ganze Menge Dokumente in paperless erfasst, die ich natürlich gleichermaßen ins Backup schieben wollte. Also ein Script, welches alle PDFs aus einem Ordner und allen Unterordnern nimmt und hochlädt:
|
Code: |
#!/usr/bin/env bash
dryrun=false;
while getopts d:t flag
do
case "${flag}" in
d) dir=${OPTARG};;
t) dryrun=true;;
esac
done
if $dryrun; then
printf "Testing the loop script.\n"
fi
shopt -s globstar dotglob
for f in $dir/**/*.pdf;
do
filename=$(basename "$f");
if $dryrun; then
printf "Found pdf: $f\n";
printf "Filename: $filename\n";
else
printf "Processing: $f\n";
gpg --encrypt -r mail@mail.de "$f";
printf "Encryption done. ";
curl -u User:Password -T "$f.gpg" "https://nextcloud/remote.php/dav/files/.../$filename.gpg";
printf "Upload done. ";
rm "$f.gpg";
printf "Removed.\n";
fi
done
printf "Done.\n"
|
|
Benutzung:
Alles hochladen: script.sh -d /pfad/zum/ordner
Testen (zeigt alle gefunden PDFs an): script.sh -t -d /pfad/zum/ordner
Außerdem habe ich mit der angedachten automatischen Aufteilung rumprobiert. D.h. mit PdfQRSplit.py. Dazu einfach das Script herunterladen, Java installieren (apt install default-jre) und die drei Python-Module, die da bei github genannt sind.
PAPERLESS_PRE_CONSUME_SCRIPT dann bspw.:
|
Code: |
#!/usr/bin/env bash
DOCUMENT_SOURCE=${1}
DOCUMENT_NAME=$(basename "$DOCUMENT_SOURCE" .pdf)
DOCUMENT_PATH=$(dirname "$DOCUMENT_SOURCE")
cd "$DOCUMENT_PATH"
python3 /pfad/zu/PdfQRSplit/PdfQRSplit.py "$DOCUMENT_SOURCE" -p "$DOCUMENT_NAME" -s "schneiden"
if [ $? -eq 0 ]
then
# Keine Fehler
rm "$DOCUMENT_SOURCE"
mv "${DOCUMENT_NAME}_0_0.pdf" "${DOCUMENT_NAME}.pdf"
else
echo "Fehler beim Auftrennen des PDF, überspringe."
fi
|
|
Das nimmt dann das gefundene PDF, trennt es entsprechend ggf. vorhandener Barcodes (hier, wenn der Barcode "schneiden" beinhaltet) auf und benennt die erste Datei (*_0_0.pdf) wieder zum ursprünglichen Namen um, damit paperless es verarbeiten kann. Die Barcodeseiten werden gelöscht. Die weiteren Dateien werden beim nächsten Durchlauf des Consumers gefunden und eingereiht.
Barcodes/QRCodes o.ä. kann man sich hier erstellen: https://barcode.tec-it.com/de/DataMatrix
Es geht alles, was zxing kann: https://github.com/zxing/zxing#supported-formats
Ein DataMatrix Code, der nur "schneiden" sagt, hätte ich als DIN A4 PDF hier: https://filehorst.de/d/dDJGhpij
Wenn man sich was eigenes machen will, würde ich anraten, den Code hier zu testen (eingefügt in ein DIN A4 Bild): https://zxing.org/w/decode.jspx
zxing scheint die Codes nach meinen Tests eigentlich nur zu erkennen, wenn die komplett mittig (horizontal und vertikal) auf der Seite sitzen. Daher scheinen so Ideen, wie den Code irgendwo auf eine Seite zu kleben oder zu stempeln o.ä. nicht zu gehen. Man muss wirklich ausgedruckte Trennseiten zwischenlegen.
Dazu kommt Error Handling. Wenn ich das PDF direkt vom Scanner ins Script werfe, ist alles gut gegangen. Zwischenzeitlich hatte ich ein PDF allerdings mit einem Programm (PDFBinder) zusammengefügt. Da kommt wohl ein Format bei raus, was PdfQRSplit.py nicht kann und es steigt mittendrin mit einem Fehler aus. Damit dann nicht einfach das PDF gelöscht wird, überspringe ich weitere Schritte. Dann hat man keinen Split, aber immerhin kommt alles in paperless an.
|
|
|
|
|
|
|
Ganz vergessen: Zeitfaktor!
Mein Test-PDF hat 4 Seiten gehabt. Da arbeitet das Splitscript so ~30 Sekunden dran (es speichert ein Bild jeder Seite ab und lässt zxing arbeiten).
Verbesserungen des Scripts wären, dass man bereits gesplittete PDF nicht nochmal verarbeitet. Da geht aber wohl nur, wenn man den Dateinamen auf das Schema _0_* prüft.
|
|
|
|
|
|
|
|
|
|
|
Mein altes Canon Multi Monster macht so langsam die krätsche. Welcher Drucker/Scanner würde sich denn anbieten wenn man auch so langsam mal seinen Dokumentenberg digitalisieren will. Brother lese ich hier immer mal wieder…
Taugt Laser für „auf den Schreibtisch“? Da gab es doch mal was wegen Feinstaub oder so…
|
|
|
|
|
|
|
| Zitat von Armag3ddon
Mehr Scripting!
Falls jemand an meiner Backuplösung interessiert ist, habe ich dazu noch ein Begleitscript geschrieben. Weil ich das Backupscript erst verspätet eingebaut habe, waren schon eine ganze Menge Dokumente in paperless erfasst, die ich natürlich gleichermaßen ins Backup schieben wollte. Also ein Script, welches alle PDFs aus einem Ordner und allen Unterordnern nimmt und hochlädt:
|
Code: |
#!/usr/bin/env bash
dryrun=false;
while getopts d:t flag
do
case "${flag}" in
d) dir=${OPTARG};;
t) dryrun=true;;
esac
done
if $dryrun; then
printf "Testing the loop script.\n"
fi
shopt -s globstar dotglob
for f in $dir/**/*.pdf;
do
filename=$(basename "$f");
if $dryrun; then
printf "Found pdf: $f\n";
printf "Filename: $filename\n";
else
printf "Processing: $f\n";
gpg --encrypt -r mail@mail.de "$f";
printf "Encryption done. ";
curl -u User:Password -T "$f.gpg" "https://nextcloud/remote.php/dav/files/.../$filename.gpg";
printf "Upload done. ";
rm "$f.gpg";
printf "Removed.\n";
fi
done
printf "Done.\n"
|
|
Benutzung:
Alles hochladen: script.sh -d /pfad/zum/ordner
Testen (zeigt alle gefunden PDFs an): script.sh -t -d /pfad/zum/ordner
Außerdem habe ich mit der angedachten automatischen Aufteilung rumprobiert. D.h. mit PdfQRSplit.py. Dazu einfach das Script herunterladen, Java installieren (apt install default-jre) und die drei Python-Module, die da bei github genannt sind.
PAPERLESS_PRE_CONSUME_SCRIPT dann bspw.:
|
Code: |
#!/usr/bin/env bash
DOCUMENT_SOURCE=${1}
DOCUMENT_NAME=$(basename "$DOCUMENT_SOURCE" .pdf)
DOCUMENT_PATH=$(dirname "$DOCUMENT_SOURCE")
cd "$DOCUMENT_PATH"
python3 /pfad/zu/PdfQRSplit/PdfQRSplit.py "$DOCUMENT_SOURCE" -p "$DOCUMENT_NAME" -s "schneiden"
if [ $? -eq 0 ]
then
# Keine Fehler
rm "$DOCUMENT_SOURCE"
mv "${DOCUMENT_NAME}_0_0.pdf" "${DOCUMENT_NAME}.pdf"
else
echo "Fehler beim Auftrennen des PDF, überspringe."
fi
|
|
Das nimmt dann das gefundene PDF, trennt es entsprechend ggf. vorhandener Barcodes (hier, wenn der Barcode "schneiden" beinhaltet) auf und benennt die erste Datei (*_0_0.pdf) wieder zum ursprünglichen Namen um, damit paperless es verarbeiten kann. Die Barcodeseiten werden gelöscht. Die weiteren Dateien werden beim nächsten Durchlauf des Consumers gefunden und eingereiht.
Barcodes/QRCodes o.ä. kann man sich hier erstellen: https://barcode.tec-it.com/de/DataMatrix
Es geht alles, was zxing kann: https://github.com/zxing/zxing#supported-formats
Ein DataMatrix Code, der nur "schneiden" sagt, hätte ich als DIN A4 PDF hier: https://filehorst.de/d/dDJGhpij
Wenn man sich was eigenes machen will, würde ich anraten, den Code hier zu testen (eingefügt in ein DIN A4 Bild): https://zxing.org/w/decode.jspx
zxing scheint die Codes nach meinen Tests eigentlich nur zu erkennen, wenn die komplett mittig (horizontal und vertikal) auf der Seite sitzen. Daher scheinen so Ideen, wie den Code irgendwo auf eine Seite zu kleben oder zu stempeln o.ä. nicht zu gehen. Man muss wirklich ausgedruckte Trennseiten zwischenlegen.
Dazu kommt Error Handling. Wenn ich das PDF direkt vom Scanner ins Script werfe, ist alles gut gegangen. Zwischenzeitlich hatte ich ein PDF allerdings mit einem Programm (PDFBinder) zusammengefügt. Da kommt wohl ein Format bei raus, was PdfQRSplit.py nicht kann und es steigt mittendrin mit einem Fehler aus. Damit dann nicht einfach das PDF gelöscht wird, überspringe ich weitere Schritte. Dann hat man keinen Split, aber immerhin kommt alles in paperless an.
| |
Werde ich mir bei Gelegenheit mal genauer anschauen, danke! Aber wozu brauche ich das JRE?
----
Nutzt jemand von euch den Parameter PAPERLESS_FILENAME_FORMAT? Bei mir klappt das grundsaetzlich ganz gut, allerdings passt ein Teil des Namens nicht (created_month).
Hat jemand was aehnliches beobachtet?
|
|
|
|
|
|
|
Ich benutze "{created_year}/{correspondent}/{added} {title} {asn}" - das funktioniert bis auf asn. Ich habe wohl irgendeine Einstellung verpasst, dass die Nummer automatisch vergeben wird und nehm das dann wohl einfach raus, weil ich jetzt bei 108 Dokumenten eher keine Lust habe, die manuell zu vergeben. (ich habe nicht nachgelesen, wofür die asn eigentlich gedacht ist!)
Das Erstelldatum des Dokuments wird bei mir recht zuverlässig erkannt (wird ja in die Detaildaten übernommen). Selbst bei ausgeschriebenen Monaten. Nur dann nicht, wenn ein anderes Datum früher im Dokument vorkommt (bspw. jetzt bei Arbeitsverträgen, wo das Datum ganz am Ende steht, aber mein Geburtsdatum ganz am Anfang).
JRE brauchst du für zxing. Das installierst du zwar trotzdem über pip, aber zum Arbeiten braucht es Java.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Armag3ddon am 23.05.2021 12:12]
|
|
|
|
|
|
Das Große Scannen ist durch \o/
278 Dokumente sind nun digital verfügbar. Jetzt noch alle weiterhin vorhandenen Unterlagen durchgehen und eine ASN vergeben.
|
|
|
|
|
|
|
In welchem pdf Format archiviert ihr eigentlich? Eigentlich sollte man ja pdf/a nutzen. Aber ausnahmslos alle Software am Mac - Adobe habe ich wegen des ABOs noch nicht getestet und ist auch raus - also auch Abbyy bestehen mit ihren pdf/a keinen Validierungstest. Jetzt muss man sich fragen: ist pdf/a für die private Archivierung so wichtig? Ich lege meine unwichtigen Dokumente trotzdem nochmals in Papier in Archivierungsboxen mit Panagierstempel ab.
Die wichtigen kommen trotzdem noch in die Ordner.
|
|
|
|
|
|
|
bis eben wusste ich nichtmal, dass es da Unterschiede gibt
Aber ohne mich infomiert zu haben: Ich als Privatmensch will die Dinger digital und durchsuchbar haben. Was bringt mit da irgendwelches Validierungszeug?
|
|
|
|
|
|
|
paperless-ng schmeißt die Dokumente durch OCRmyPDF, da kommt dann PDF/A-2b raus.
|
|
|
|
|
|
|
Mein Verständnis ist, dass du dann das PDF immer anzeigen kannst und es nach ISO zertifiziert ist. Das pdf also auch in 30 Jahren noch lesbar ist.
|
|
|
|
|
|
|
| Zitat von Armag3ddon
paperless-ng schmeißt die Dokumente durch OCRmyPDF, da kommt dann PDF/A-2b raus.
| |
Mal eine Datei in einen Validierer geschmissen ob der Standard erfüllt wird?
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Mad_X* am 30.05.2021 13:42]
|
|
|
|
|
|
Bisher nicht, kann ich mal testen!
|
|
|
|
|
|
|
Mach bitte mal und gib mir bescheid. Notfalls muss ich mir ocrmypdf nachinstallierten
|
|
|
|
|
|
|
|
|
|
|
Eben mal in Abby auf pdf/a umgestellt.
Wird auch wie bei Arma bestanden.
| The file is a valid PDF/A-1A document | |
Dann lass ich das nun mal so, wenn das besser ist.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Icefeldt am 30.05.2021 14:02]
|
|
|
|
|
|
Jup, passt bei mir jetzt auch.
|
|
|
|
|
|
|
Was ist denn aktuell der heisse Scheiss was Dokumenten Scanner angeht, wenn man wenig selbst basteln will?
|
|
|
|
|
|
|
| Zitat von punkd
Was ist denn aktuell der heisse Scheiss was Dokumenten Scanner angeht, wenn man wenig selbst basteln will?
| |
Schließe mich der Frage an!
"Reicht" der Brother ADS1700W oder gibt es entscheidende Gründe für den ADS2x00W?
Will auch paperless-ng nutzen, bisher allerdings nur Testinstallation.
|
|
|
|
|
|
Thema: Fuck you Registratur ( Unterlagen ordnen für Dummies... ) |