TBeDocScanner
TBeDocScanner - Belege einscannen per Codeblock
Die Klasse dient zum einscannen von Dokumenten mit dem Standard Scan-Dialog. Die gescannten Dokumente können anschließend als Datei oder in der Datenbank (in einem Blob-Feld) gespeichert werden.
Verwendung
- TBeDocScanner-Objekt erstellen
- die Default-Scan-Einstellungen überschreiben (optional)
- Scan ausführen
- Scan(s) abholen bzw. verarbeiten (siehe TBeDocScanItem)
Eigenschaften
Eigenschaft | Beschreibung | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Options.ScanSetting | Hiermit lassen sich die Einstellungen für den Scan manuell setzen.
| ||||||||||||||||
StackOfScans | Gibt eine Collection mit allen eingescannten Bildern zurück. Zugriff über CollItem(). | ||||||||||||||||
SettingID:N | Ermöglicht das Setzen von Einstellungen der Einträge in den Druckerzuweisungen. Nummer entspricht der zweistelligen ID der Einstellungen. | ||||||||||||||||
Caption:C | Ermöglicht das Setzen des Dialog-Titels. | ||||||||||||||||
AttachFileNames | Gibt eine Collection mit allen Dateinamen der Anhänge zurück. Zugriff über CollItem(). | ||||||||||||||||
ShowAttachments:B | Ermöglicht das hinzufügen von Anhängen im Scan-Dialog über einen Menüpunkt. | ||||||||||||||||
ExecScan | Führt den Scan aus bzw. zeigt den Scan-Dialog an. | ||||||||||||||||
ExecPageScan | Startet den Scanvorgang für eine Seite und fügt diese einer eventuell existierenden Scanliste (durch ExecScan) hinzu. | ||||||||||||||||
LayoutMode:B | Bestimmt ob die gescannten Dokumente nach der Verarbeitung aus dem Quell-Verzeichnis entfernt werden sollen. (Gilt nicht für Dokumente die über "öffnen" ausgewählt wurden) |
Beispiel
| oDocScanner, nSeitenNr, oSeite |
// 1. Objekt erstellen
oDocScanner := CreateObject( 'TBeDocScanner' ),
// 2. Setzen von optionalen Einstellungen
oDocScanner.Options.Silence := 1, // 0 = BE-Dialog UND Twain-Dialog des Treibers
// 1 = nur BE-Dialog
// 2 = kein Dialog
// 3 = nur Twain-Dialog des Treibers
oDocScanner.Options.ScanMultiple := False, // Kein mehrseitigen Scan zulassen
oDocScanner.Options.ScanSetting.Source := 'HP PrecisionScan LTX 1.2', // Gerätname setzen
oDocScanner.Options.ScanSetting.Size := 1, // A4 = Format voreinstellen
oDocScanner.Options.ScanSetting.Resolution := 150, // Auflösung von 150 dpi verwenden
oDocScanner.Options.ScanSetting.Color := 1, // Farben auf Graustufen voreinstellen
// Beleg-Scansetting laden (Nummer entspricht der Reihenfolge der Einträge in den Druckerzuweisungen)
// Achtung: Das Setzen der ID überschreibt bisher getroffene Einstellungen.
oDocScanner.SettingID := 2,
// 3. Scan ausführen bzw. Dialog anzeigen
oDocScanner.ExecScan,
// 4. Die Scans liegen jetzt in Form einer Collection-Liste vor und können abgeholt werden
// Wurde die Verarbeitung abgebrochen, ist die Liste leer
for nSeitenNr := 1 to CollCount(oDocScanner.StackOfScans) do
// Beispiel 1: als Datei speichern
oSeite := CollItem(oDocScanner.StackOfScans, nSeitenNr),
oSeite.Filename := 'c:\temp\TestSeite' + StrZero(nSeitenNr, 3) + '.jpg',
if oSeite.IsSaveFormatValid then
oSeite.AsFile,
else
MessageDlg('Ungültiges Format: Scan kann nicht gespeichert werden!'),
endif,
// Beispiel 2: in Blob-Feld speichern
DBAppend(oKdn700),
oKdn700:BILD := oSeite.AsString,
DBPost(oKdn700),
next,