sane-bh - SANE-Backend für Dokumentenscanner der
Bell+Howell Copiscan II-Serie
Die Bibliothek sane-bh implementiert ein SANE- (Scanner
Access Now Easy-) Backend, das Zugriff auf Dokumentenscanner der Bell+Howell
Copiscan II-Serie ermöglicht. Während der Entwicklung und des
Testens war der Copiscan II 6338 das primäre Scanner-Modell, aber da
die Programmierschnittstelle für die gesamte Serie konsistent ist,
sollte es für die folgenden Scanner-Modelle funktionieren:
COPISCAN II 6338 Duplex-Scanner mit ACE
COPISCAN II 2135 Simplex-Scanner
COPISCAN II 2137(A) Simplex-Scanner (mit ACE)
COPISCAN II 2138A Simplex-Scanner mit ACE
COPISCAN II 3238 Simplex-Scanner
COPISCAN II 3338(A) Simplex-Scanner (mit ACE)
Falls Sie einen Bell+Howell-Scanner haben und in der Lage sind,
ihn mit diesem Backend zu testen, informieren Sie bitte (auf Englisch)
sane-devel@alioth-lists.debian.net mit der Modellnummer und den
Testergebnissen. Schauen Sie auf
http://www.sane-project.org/mailing-lists.html bezüglich des
Abonnements von Sane-devel. Zusätzlich ist der Autor bezüglich
der Wahrscheinlichkeit, dieses Backend mit den neueren Scannern der 4000-
und 8000-Serie zu verwenden, neugierig. Falls Sie so ein Teil haben, lassen
Sie es mich wissen.
Die Dokumentenscanner der Bell+Howell Copiscan II-Serie sind
für Dokumenten-Scan-Anwendungen für große Mengen und
hohen Durchsatz entwickelt. Daher sind sie Lineart-/Graustufen-Scanner, die
eine feste Anzahl an relativ geringen Auflösungen unterstützen
(z.B. 200/240/300 DPI). Allerdings verfügen sie über eine
Reihe von interessanten und nützlichen Funktionalitäten, die
für die Bedürfnisse von Dokumentdarstellungsanwendungen
geeignet sind. Dieses Backend versucht, so viele dieser
Funktionalitäten wie möglich zu unterstützen.
Die beim Schreiben dieses Backends verwendete zentrale technische
Referenz war das Technical Manual Version 1.5 des Bell and Howell
Copiscan II Remote SCSI Controller (RSC) OEM. Das
Linux-SCSI-Programmier-HOWTO, die SANE-API-Dokumentation und der
SANE-Quellcode waren auch extrem wertvolle Ressourcen.
Die neuste Backend-Veröffentlichung, zusätzliche
Informationen und hilfreiche Tipps sind von der Backend-Homepage
verfügbar:
http://www.martoneconsulting.com/sane-bh.html
Dieses Backend erwartet Gerätenamen der folgenden Form:
Spezialdatei
Die angegebene Spezialdatei ist der Pfadname eines
Spezialgeräts, das einem SCSI-Scanner entspricht. Für
SCSI-Scanner muss der Name des Spezialgeräts ein generisches
SCSI-Gerät oder ein symbolischer Link zu so einem Gerät sein.
Unter Linux hat ein solcher Gerätename beispielsweise das Format
/dev/sga oder /dev/sg0. Siehe sane-scsi(5) für
Details.
- Scanmodus-Optionen:
- --preview[=(yes|no)]
[no]
- fordert einen Scan in Vorschau-Qualität an. Wenn --preview
auf »yes« gesetzt ist, wird die Bildkomprimierung
deaktiviert und das Bild wird in einem SANE_FRAME_GRAY-Rahmen
geliefert.
- --mode lineart|halftone
[lineart]
- wählt den Scan-Modus (z.B. lineart, monochrome oder color).
- --resolution
200|240|300dpi [200]
- wählt die Auflösung des gescannten Bildes. Jedes
Scanner-Modell unterstützt eine Reihe von
Standardauflösungen; nur diese Auflösungen können
verwendet werden.
- --compression
none|g31d|g32d|g42d [none]
- setzt den Kompressionsmodus des Scanners. Bestimmt die Art der Daten, die
vom Scanner zurückgeliefert werden. Werte sind:
none - unkomprimierte Daten - ausgeliefert in einem
SANE_FRAME_GRAY-Rahmen
g31d - CCITT G3 1 dimension (MH) - ausgeliefert in einem
SANE_FRAME_G31D-Rahmen
g32d - CCITT G3 2 dimensions (MR, K=4) - ausgeliefert in einem
SANE_FRAME_G32D-Rahmen
g42d - CCITT G4 (MMR) - ausgeliefert in einem SANE_FRAME_G42D-Rahmen
HINWEIS: Die Verwendung der Kompressionswerte g31d, g32d
und g42d führt dazu, dass das Backend optionale Rahmenformate
erstellt, die nicht von allen SANE-Oberflächen unterstützt
werden könnten.
- Geometrie-Optionen:
- --autoborder[=(yes|no)]
[yes]
- aktiviert/deaktiviert die automatische Bildkantenerkennung. Die
RSC-Einheit wird automatisch den Bildbereich erkennen und die passende
Fenstergeometrie setzen, wenn diese Option aktiviert ist.
- --paper-size
Custom|Letter|Legal|A3|A4|A5|A6|B4|B5 [Custom]
- gibt die Scanfenster-Geometrie an, indem die Papiergröße der
einzuscannenden Dokumente angegeben wird.
- --tl-x 0..297.18mm
[0]
- Obere linke x-Position des Scanbereichs.
- --tl-y 0..431.8mm
[0]
- Obere linke y-Position des Scanbereichs.
- --br-x 0..297.18mm
[297.18]
- Untere rechte x-Position des Scan-Bereichs.
- --br-y 0..431.8mm
[431.8]
- Untere rechte y-Position des Scan-Bereichs.
- Einzug-Optionen:
- --source Automatic
Document Feeder|Manual Feed Tray [Automatic Document Feeder]
- wählt die Scan-Quelle (wie einen Dokumenteneinzug). Diese Option
wird bereitgestellt, um mehrfache Bildscans mit xsane(1) zu
erlauben, sie hat keinerlei anderen Zweck.
- --batch[=(yes|no)]
[no]
- aktiviert/deaktiviert Stapelmodusscannen. Stapelmodus erlaubt das Scannen
bei maximalem Durchsatz durch Puffern innerhalb der RSC-Einheit. Diese
Option wird empfohlen, wenn mehrere Seiten-Scans durchgeführt
werden, bis die Zuführung leer ist.
- --duplex[=(yes|no)]
[no]
- aktiviert Duplex- (doppelseitiges) Scannen. Der Scanner nimmt ein Bild von
jeder Seite des Dokuments auf, während eines einzigen Durchlaufs
durch den Scanner. Die Vorderseite wird ausgeliefert, gefolgt von der
Rückseite. Die meisten Optionen, wie Komprimierung, betreffen
sowohl die Vorder- als auch die Rückseite.
- --timeout-adf 0..255
[0]
- setzt die Zeitüberschreitung in Sekunden für den
automatischen Dokumenteneinzug (ADF). Der Wert 0 legt die Hardware-Vorgabe
fest, die vom Scanner-Modell abhängt.
- --timeout-manual
0..255 [0]
- setzt die Zeitüberschreitung in Sekunden für
semi-automatische Dokumentenzuführungen. Der Wert 0 legt die
Hardware-Vorgabe fest, die vom Scanner-Modell abhängt.
- --check-adf[=(yes|no)]
[no]
- prüft vor dem Starten des Scans den ADF-Status mittels des Befehls
»OBJECT POSITION«. Beachten Sie, dass diese
Funktionalität die RSC-Firmwarestufe 1.5 oder höher
benötigt und der Kippschalter 4 in der Ein-Position sein muss.
Beachten Sie: Diese Option wurde nicht ausführlich getestet und
könnte unerwünschte Ergebnisse liefern.
- Verbesserung:
- --control-panel[=(yes|no)]
[yes]
- aktiviert das Steuerfeld des Scanners zur Auswahl von
Bildverbesserungsparametern. Wenn die Option auf »no«
gesetzt ist, werden die folgenden Optionen zur Steuerung der
Bildverbesserung verwendet. Siehe die Benutzeranleitung der
Bell+Howell-Scanner für die vollständigen Informationen
über die ACE-Funktionalität.
- --ace-function -4..4
[3]
- legt die automatische Kontrastverbesserungs- (ACE-)Funktion fest.
- --ace-sensitivity 0..9
[5]
- legt die Empfindlichkeit der Kontrastverbesserung (ACE) fest.
- --brightness
0..255 [0]
- steuert die Helligkeit des aufgenommenen Bildes. Für
ACE-fähige Scanner wird dies ignoriert.
- --threshold
0..255 [0]
- wählt die minimale Helligkeit, um einen Weißpunkt zu
erhalten. Für ACE-fähige Scanner wird dies ignoriert.
- --contrast 0..255
[inactive]
- steuert den Kontrast des aufgenommenen Bildes. Diese Option wird derzeit
vom Scanner nicht verwendet (und wird dies wahrscheinlich auch nie).
- --negative[=(yes|no)]
[no]
- tauscht schwarz und weiß, führt zu einem invertierten
Bild.
- Icon:
- --icon-width 0..3600pel (in
Schritten von 8) [0]
- Breite des Icons (Minibildes) in Pixel.
- --icon-length
0..3600pel (in Schritten von 8) [0]
- Länge des Icons (Minibildes) in Pixel.
- Barcode-Optionen:
- --barcode-search-bar
<siehe Liste> [none]
- legt den Barcodetyp fest, nach dem gesucht werden soll. Falls diese Option
nicht oder mit einem Wert »none« angegeben ist, dann wird
die Barcode-Dekodierfunktionalität komplett deaktiviert. Die
gültigen Barcodetypen sind:
none
ean-8
ean-13
reserved-ean-add
code39
code2-5-interleaved
code2-5-3lines-matrix
code2-5-3lines-datalogic
code2-5-5lines-industrial
patchcode
codabar
codabar-with-start-stop
code39ascii
code128
code2-5-5lines-iata
- --barcode-search-count
1..7 [3]
- Anzahl, wie oft der RSC den Dekodieralgorithmus durchführen soll.
Um die Leistung zu erhöhen, geben Sie den kleinstmöglichen
Wert an. Falls Probleme beim Erkennen des Barcodes auftreten, wird
empfohlen, dass Sie diese Option auf ihren Maximalwert (7)
erhöhen.
- --barcode-search-mode
<siehe Liste> [horiz-vert]
- wählt die Orientierung der Barcodes, nach denen gesucht werden
soll. Die gültigen Orientierungen sind:
horiz-vert
horizontal
vertical
vert-horiz
- --barcode-hmin
0..1660mm [5]
- setzt die minimale Höhe des Barcodes in Millimetern
(größere Werte erhöhen die
Erkennungsgeschwindigkeit). Natürlich müssen die
tatsächlichen Barcodes im Dokument von geeigneter
Größe sein.
- --barcode-search-timeout
20..65535us [10000]
- setzt die Zeitüberschreitung für die Barcode-Suche in
Millisekunden. Wenn die Zeitüberschreitung abgelaufen ist, wird der
Dekoder aufhören zu versuchen, nach Barcodes zu suchen.
- --section
<Zeichenkette> []
- legt eine Reihe von Bildabschnitten fest. Ein Abschnitt kann zum Erfassen
eines Teilbildes oder eines kleineren Bereichs für die Suche nach
Barcodes verwendet werden. Jeder Abschnitt wird in dem folgenden Format
angegeben (Einheiten sind Millimeter):
<Breite>x<Höhe>+<obere-linke-x>+<obere-linke-y>[:Funktionscode]
Mehrere Abschnitte können angegeben werden, indem sie durch
Kommata getrennt werden.
Zum Beispiel identifiziert 76.2x25.4+50.8+0:frontbar einen
3 Zoll breiten und 1 Zoll hohen Bereich, wo sich die obere linke Ecke oben
an der Seite und zwei Zoll von der linken Seite des Papiers befindet. Dieser
Abschnitt wird nur für die Barcode-Dekodierung auf der Titelseite
verwendet.
Zum Beispiel identifiziert
50.8x25.4+25.4+0:frontbar:front:g42d einen 2 Zoll breiten und 1 Zoll
hohen Bereich, wo sich die obere linke Ecke oben an der Seite und einen Zoll
von der linken Seite des Papiers befindet. Dieser Abschnitt wird für
die Barcode-Dekodierung auf der Titelseite sowie zur Erstellung eines mit
g42d komprimierten Bildes verwendet.
Normalerweise werden Barcodes im gesamten Bild gesucht. Wenn Sie
allerdings einen Abschnitt festlegen, erfolgt die gesamte Suche innerhalb
des gekennzeichneten Abschnitts. Dies kann den Dekodierprozess deutlich
beschleunigen.
Die folgenden Funktions-Codes sind verfügbar:
front - erstellt ein Bild für den Titelseitenabschnitt
back - erstellt ein Bild für den Rückseitenabschnitt
frontbar - führt die Barcode-Suche im Titelseitenabshnitt durch
backbar - führt die Barcode-Suche im Rückseitenabschnitt
durch
frontpatch - führt die Patchcode-Suche im Titelseitenabschnitt
durch
backpatch - führt die Patchcode-Suche im
Rückseitenabschnitt durch
none - verwendet keine Bildkomprimierung
g31d - verwendet eindimensionale Gruppe 3-Bild-Komprimierung
g32d - verwendet zweidimensionale Gruppe 3-Bildkomprimierung
g42d - verwendet zweidimensionale Gruppe 4-Bildkomprimierung
Falls Sie keinen Funktions-Code für die Komprimierung
angeben, wird die Einstellung für ganzseitige Komprimierung
verwendet. Falls Sie mehrere Komprimierungs-Funktions-Codes angeben, wird
der letzte verwendet.
- --barcode-relmax
0..255 [0]
- legt die maximale Beziehung vom breitesten zum schmalsten Balken
fest.
- --barcode-barmin
0..255 [0]
- legt die minimale Anzahl an Balken in Bar-/Patch-Code fest.
- --barcode-barmax
0..255 [0]
- legt die maximale Anzahl an Balken in Bar-/Patch-Code fest.
- --barcode-contrast
0..6 [3]
- legt den beim Dekodieren verwendeten Bildkontrast fest. Verwenden Sie
höhere Werte, wenn es mehr weiße Pixel im Code gibt.
- --barcode-patchmode
0..1 [0]
- steuert die Erkennung des Patch-Codes.
Der Inhalt der Datei bh.conf ist eine Liste von Dateinamen,
die Bell+Howell-Scannern entsprechen. Siehe sane-scsi(5)
bezüglich der Details, wie ein gültiger Dateiname aufgebaut
ist. Zusätzlich können Optionen angegeben werden; diese Zeilen
beginnen mit dem Wort »option«. Jede Option wird im Detail
nachfolgend beschrieben. Leere Zeilen und solche, die mit einer Raute (#)
beginnen, werden ignoriert.
Die folgenden Optionen können in der Datei bh.conf
festgelegt werden:
- disable-optional-frames
- Diese Option verhindert, dass das Backend optionale Rahmen sendet. Diese
Option kann nützlich sein, wenn Oberflächen ins Spiel
kommen, die diese zusätzlichen Rahmen nicht unterstützen.
Wenn diese Option wirksam ist, werden die Daten in einem
SANE_FRAME_GRAY-Rahmen gesendet. Die von diesem Backend optional
gesendeten Rahmen sind: SANE_FRAME_G31D, SANE_FRAME_G32D,
SANE_FRAME_G42D und SANE_FRAME_TEXT. Diese Rahmen werden
basierend auf den Komprimierungs- und Barcode-Optionen gesendet. Diese
Rahmen werden niemals im Vorschaumodus gesendet.
- fake-inquiry
- Diese Option ist im Fehlersuchmodus nützlich und wird nicht
empfohlen. Im Kern erlaubt sie es dem Backend, sich auch ohne vorhandenen
Scanner zu initialisieren. Dies ist nur zu Entwicklungszwecken
nützlich. Diese Option muss vor den Geräten, die fingiert
werden sollen, in der Konfigurationsdatei festgelegt werden.
- /etc/sane.d/bh.conf
- Die Backend-Konfigurationsdatei (siehe auch die nachfolgende Beschreibung
von SANE_CONFIG_DIR).
- /usr/lib/x86_64-linux-gnu/sane/libsane-bh.a
- Die statische Bibliothek, die dieses Backend implementiert.
- /usr/lib/x86_64-linux-gnu/sane/libsane-bh.so
- Die dynamische Bibliothek, die dieses Backend implementiert (auf Systemen
verfügbar, die dynamisches Laden unterstützen).
- SANE_CONFIG_DIR
- Diese Umgebungsvariable gibt eine Liste von Verzeichnissen an, die die
Konfigurationsdatei enthalten können. Auf *NIX-Systemen sind die
Verzeichnisse durch Doppelpunkte (:) getrennt, unter OS/2 durch Semikola
(;). Falls diese Variable nicht gesetzt ist, wird in zwei
Standardverzeichnissen nach der Konfigurationsdatei gesucht: zuerst im
aktuellen Arbeitsverzeichnis (.) und dann in /etc/sane.d. Falls der
Wert der Umgebungsvariable mit dem Verzeichnis-Trennzeichen endet, dann
werden die Standardverzeichnisse nach den explizit angegebenen
Verzeichnissen durchsucht. Wenn Sie beispielsweise SANE_CONFIG_DIR
auf »/tmp/config:« setzen, wird in den Verzeichnissen
»tmp/config«, ».« und
»/etc/sane.d« gesucht (in dieser Reihenfolge).
- SANE_DEBUG_BH
- Falls die Bibliothek mit Debug-Unterstützung kompiliert wurde,
steuert diese Umgebungsvariable die Debug-Stufe für dieses Backend.
Beispielsweise bewirkt ein Wert von 255 die Anzeige sämtlicher
Debug-Ausgaben. Kleinere Werte reduzieren die Ausführlichkeit.
- ADF-Unterstützung
- Bei Dokumentenscannern ist die Unterstützung des automatischen
Dokumenteneinzugs (ADF) eine Kernfunktionalität. Das Backend
unterstützt standardmäßig ADF und liefert
SANE_STATUS_NO_DOCS zurück, wenn die »Papier
leer«-Bedingung aufgetreten ist. Die SANE-Oberfläche
scanadf(1) ist eine Befehlszeilenoberfläche, die
Mehrseiten-Scans unterstützt. Sie wurde mit diesem Backend
erfolgreich verwendet. Die SANE-Oberfläche xsane(1) ist eine
verbesserte GUI-Oberfläche von Oliver Rauch. Die
Unterstützung für Mehrseiten-Scans ist in Xsane seit Version
0.35 enthalten.
- Duplex
Scannen
- Einige Modelle, wie der COPISCAN II 6338, unterstützen das
Duplex-Scannen. Das bedeutet, sie können während eines
einzelnen Durchlaufs durch den Scanner beide Seiten eines Dokuments
scannen (der Scanner hat zwei Kameras). Dieses Backend unterstützt
Duplex-Scannen (mit der Option --duplex). Die Bilder der Vorder-
und Rückseite werden nacheinander ausgeliefert, als ob sie separat
gescannte Seiten wären.
- Hardware-Komprimierung
- Der Scanner ist in der Lage, die Daten in einer Reihe von
Industriestandardformaten (CCITT G3, CCITT G3-2D, CCITT G4) zu
komprimieren. Dies führt zu erhöhter Leistung, da weniger
Daten vom Scanner über den SCSI-Bus an den Rechner weitergegeben
werden müssen. Das Backend unterstützt diese Komprimierungen
über die jeweiligen Optionen --g31d, --g32d, --g42d.
Allerdings sind viele SANE-Oberflächen nicht dazu
ausgerüstet, mit diesen Formaten umzugehen. Die
SANE-Oberfläche scanadf(1) unterstützt diese
optionalen Rahmenformate. Die komprimierten Bilddaten werden in eine Datei
geschrieben und können dann über ein Scan-Skript mit der
Option --scan-script weiterverarbeitet werden. Beispiele
hierfür finden Sie auf der Homepage von scanadf(1).
- Automatische
Randerkennung
- Der Scanner kann automatisch die Papiergröße erkennen und
die Scan-Fenster-Geometrie entsprechend anpassen. Das Backend
unterstützt diese nützliche Funktionalität mit der
Option --autoborder. Sie ist standardmäßig aktiviert.
- Stapelmods-Scannen
- Der Stapelmodus-Scan erlaubt maximalen Durchsatz. Die »Set
Window«-Parameter müssen während des gesamten
Durchlaufs konstant bleiben.
- Icon-Erstellung
- Die Icon-Funktion erstellt ein Miniaturbild des vollständigen
Seitenabbilds, das übertragen werden kann, als ob es eine getrennte
Seite wäre. Dies ermöglicht es dem Rechner, während
des Scannens schnell ein Miniaturbild anzuzeigen. Vielleicht wäre
dies eine großartige Art, einen Vorschau-Scan zu implementieren, da
aber der normale Scan so schnell ist, könnte dies den
Arbeitsaufwand nicht rechtfertigen.
- Mehrere
Abschnitte
- Mehrere Abschnitte (Scan-Teilfenster) können für die Vorder-
und Rückseiten definiert werden. Jeder Abschnitt kann über
andere Charakteristiken (z.B. Geometrie, Komprimierung) verfügen.
Die Abschnitte werden zurückgeliefert, als ob sie getrennt
gescannte Bilder wären. Zusätzliche Abschnitte können
zur massiven Verbesserung der Genauigkeit und Effizienz des
Barcode-/Patchcode-Dekodierungsprozesses verwendet werden, indem der
Suchbereich auf einen kleinen Teil der Seite reduziert wird. Die meisten
Scanner der Copiscan II-Serie unterstützen bis zu 8
benutzerdefinierte Abschnitte.
- Unterstützung
für die Barcode-/Patchcode-Dekodierung
- Die RSC-Einheit kann Bar- und Patch-Codes verschiedener Typen erkennen,
die in die Seite eingebettet sind. Die Codes werden dekodiert und die
Daten an die Oberfläche als Textrahmen zurückgeliefert. Der
Text ist in XML kodiert und enthält einen großen Umfang an
Informationen über die dekodierten Daten, wie den Ort, wo sie
gefunden wurden, die Orientierung und die Zeit, die zum Finden
benötigt wurde. Weitere Informationen über den Inhalt dieses
Textrahmens sowie ein paar Barcode-Dekodier-Beispiele können auf
der Homepage des Backends gefunden werden.
- Dekodierung
eines einzelnen Barcode-Typs pro Scan
- Die RSC-Einheit kann nach bis zu sechs verschiedenen Barcode-Typen pro
Scan auf einmal suchen. Während der Code dies im Allgemeinen gut
unterstützt, erlaubt die Option --barcode-search-bar nur die
Angabe eines einzelnen Barcode-Typs. Vielleicht könnte eine weitere
Option hinzugefügt werden, die dem Benutzer die Angabe einer
Kommata-getrennten Liste an Barcode-Typen erlauben würde, um das zu
erreichen.
- Scannen einer festen
Seitenanzahl im Stapelmodus
- Die Trennung von Backend- und Oberflächenfunktionalität in
SANE stellt ein Problem dar, die Funktionalität
»Stapelverarbeitung abbrechen« beim Scanner zu
unterstützen. Im Stapelverarbeitungsmodus ist der Scanner dem
Rechner immer eine Seite voraus. Der Rechner, der vorab weiß,
welche Seite die letzte sein wird, kann den Stapelverarbeitungsmodus
abbrechen, bevor er den letzten Scan-Befehl initiiert. Derzeit ist
für die Oberfläche kein Mechanismus verfügbar, um
dieses Wissen an das Backend weiterzugeben. Falls der
Stapelverarbeitungsmodus aktiviert ist und --end-count eine
Scanadf-Sitzung abbricht, wird eine zusätzliche Seite durch den
Scanner gezogen, die aber weder gelesen noch an die Oberfläche
ausgeliefert wird. Dieses Problem kann vermieden werden, indem
--batch=no beim Scannen einer festen Seitenanzahl verwendet
wird.
- Revision 1.2
Patch-Erkenner
- Es gibt einen erweiterten Patchcode-Erkennungsalgorithmus, der in der RSC
mit Version 1.2 oder höher verfügbar ist, der schneller und
zuverlässiger als der Standard Bar-/Patchcode-Dekodierer ist. Dies
wird derzeit nicht unterstützt.
Dies ist ein neues Backend, detaillierte Fehlerberichte (auf
Englisch) werden begrüßt und erwartet ;)
Falls Sie glauben, einen Fehler gefunden zu haben, versuchen Sie
ihn zu reproduzieren, nachdem Sie die Umgebungsvariable SANE_DEBUG_BH
auf 255 gesetzt haben und schicken Sie auf Englisch einen Bericht mit den
detaillierten Bedingungen rund um den Fehler an
sane-devel@alioth-lists.debian.net.
sane(7), sane-scsi(5), scanimage(1),
scanadf(1), xsane(1)
Das Backend sane-bh wurde von Tom Martone, basierend auf
dem Backend sane-ricoh(5) von Feico W. Dillema und dem Programm
Bnhscan von Sean Reifschneider von tummy.com ltd. geschrieben. Mark Temple
fügte rund 8000 Verbesserungen hinzu.
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von
Mario Blättermann <mario.blaettermann@gmail.com> und Helge
Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU General
Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite
finden, schicken Sie bitte eine E-Mail an die
Mailingliste
der Übersetzer.