scandor

scandor ist ein Tool, dass das Scannen, Erkennen und Ablegen von Dokumenten so einfach wie möglich macht. Die Oberfläche verfügt nur über die nötigsten Buttons für diesen Workflow. In der Regel besteht der gesamte Ablage Prozess aus wenigen Schritten. z.B.

Bei Bedarf kann über die Option Sortieren/Rotieren eingestellt werden, das die einzelnen Seiten noch gedreht oder umsortiert werden sollen.

Über die Konfiguration bestimmen Sie wie die Dokumente erkannt werden, und in welche Verzeichnisse sie gespeichert werden sollen. Siehe dazu Abschnitt Konfiguration

Das Programm aktualisiert sich bei Bedarf automatisch.

scandor ist frei für nicht kommerzielle Nutzung.

Konfiguration

Über die Konfigurationsdatei docTypes.xml bestimmen Sie wie Dokumente erkannt werden, und in welche Verzeichnisse sie gespeichert werden sollen. Dabei können auch Dokumenteninhalte ausgelesen und im Verzeichnis-/Dateinamen verwendet werden. Diese Einstellung nehmen Sie lediglich einmal je Dokumententyp vor. Danach erfolgt die Erkennung immer wieder automatisch.

NEU: Konfiguration über die Einstellungen möglich

Ab sofort kann die Konfigurationsdatei über die Oberfläche verändert werden.

Ein Beispiel

	<Type name="Rechnung Allgemein" fileTargetName="C:/dokumente/Rechnungen/${CURRENT_YEAR}/${NAME}_${DATUM}.pdf">
		<select pattern="Rechnung"/>
		<select pattern="Betrag"/>
		<select pattern="Auftrag"/>
		<select pattern="(?i)MWSt"/>
		<select pattern=" +(\d\d\.\d\d\.\d\d\d\d)" parameter="DATUM"/>
	</Type>
	
Dabei haben die Einträge folgende Bedeutungen:

Platzhalter

Datei und Verzeichnisnamen können Platzhalter enthalten, die entweder automatisch, aus Dateiinhalten oder vom Benutzer ersetzt werden müssen. Ein Platzhalter sieht wie folgt aus:

	${XXX}
	
Dabei steht XXX für den Namen des Platzhalters. Das Programm kennt folgende Platzhalter. Weitere Platzhalter können mit Werten aus einem select ersetzt werden, wenn hier das Attribut parameter gesetzt wurde. Der Wert von Parameter entspricht dann dem Platzhalter.
Kann scandor keinen Wert für einen Platzhalter ermitteln, dann wird der Benutzer nach dem Wert gefragt.

Pattern

Pattern beschreiben einen Inhalt der innerhalb des Dokuments gefunden werden soll. Im einfachsten Fall ist das einfach ein Text. Anhand von einigen Beispielen wird hier gezeigt, wie das aussehen kann.
Der Dokumententyp bei dem prozentual die meisten Pattern passen wird als der richtige Typ ausgewählt. Daher ist es gut möglichst viele Merkmale in den Pattern zu haben, um die Erkennungsrate zu verbessern.
Einfacher Text kann ohne weiteres direkt in das Pattern geschrieben werden. Dabei dürfen allerdings keine Umlaute oder Sonderzeichen wie Punkte, Klammern usw. vorkommen.

	<select pattern="Rechnung"/>
	
Neben einfachem Text können in einem Pattern verschiedene Kommandos vorkommen. Dabei unterscheidet man 4 Arten von Kommandos: Kommandos werden mit Punkten voneinander getrennt, und haben fest definierte Namen. Es gibt Kommandos mit und ohne Paramter.
	<select pattern="add('Rechnung').anyCharacter().count(4)"/>
	

Inhalts Kommandos

Das einfachste Kommando lautet add. Das folgende Beispiel entspricht exakt dem einfachen Text Pattern von oben.

	<select pattern="add('Rechnung')"/>
	
Weitere Inhalts Kommandos:

Anzahl Kommandos

Kommandos zur Anzahl beziehen sich immer auf das vorhergehende Inhaltskommando, und beschreiben wie häufig das vorherige Element vorkommen muss.

Gruppierungs Kommandos

Gruppierungen zeichnen sich durch einen Beginn und ein Ende aus. Es gibt genau zwei Gruppierungsarten.

Der Unterschied besteht lediglich darin, das der Inhalt einer capture Group einem Platzhalter zugewiesen werden kann.

Beispiel

Hier ein Beispieldokument, aus dem bestimmte Dinge ausgelesen werden sollen:

	Rechnung
	Max Mustermann AG
	Sonnenweg 947
	99111 Musterstadt                                           Rechnungsdatum: 01.01.2000
	
	Rechnung über ein Rauschiff der Klasse G.
	Hyperantrieb                    47.000.000 ED
	Traktorstrahl                      499.000 ED
	Rumpf                            8.000.000 ED
	
	Gesamtbetrag:                   55.499.000 ED
	
	Bitte überweisen Sie den Betrag bis zum 01.01.3748 an die imperiale Sternenflotte.
	
	Max Mustermann AG, IBAN ZZ11 1111 2222 3333 4444 5555, Bank des Universums, Musterstadt
	
Mögliche definitionen:
add('Rechnung')
Identifiziert das Dokument als Rechnung
add('Mustermann AG')
Erkennt die Firma Mustermann AG
add('Rechnungsdatum').anyCharacter().oneOrMore().capture().digit().count(2).dot().digit().count(2).dot().digit().count(4).captureEnd()
Erkennt das Rechnungsdatum. Durch die capture Gruppierung kann das Datum einem Platzhalter zugewiesen werden
datum()
Erkennt das erste Datum auf der Seite. In diesem Fall identisch mit dem Rechnungsdatum.