- Registriert
- 26.10.05
- Beiträge
- 3.120
Dies Script dürfte für die Nutzer von SANE interessant sein. Wenn ich den Scanbereich einstellen will, dann ist es nahezu unmöglich, den passenden Wert zu treffen, da man entweder nur mikrometergenau einstellen kann oder grob mit dem Schieber einen Wert suchen kann.
Das angehängte script erlaubt es, den Scanbereich frei einzugeben. Allerdings nur Breite und Höhe, also rechter und unterer Rand des Scanbereichs. Für mich hat das gereicht und das Script sollte ja nun mal für mich sein
Das angehängte script erlaubt es, den Scanbereich frei einzugeben. Allerdings nur Breite und Höhe, also rechter und unterer Rand des Scanbereichs. Für mich hat das gereicht und das Script sollte ja nun mal für mich sein
- Kopiert es in den Script Editor
- Speichert es als Programm unter (z.B.) dem Namen "twain-dim"
- Vor(!) dem Aufruf der Scansoftware, ruft Ihr das Script auf
- wählt (bei eventuell vorhandenen mehreren Scannern) den passenden
- Ihr seht dann den momentanen Scanbereich gerundet auf 2 Nachkommastellen als "Breite x Höhe"
- gebt die gewünschten Werte mit "x" getrennt ein
- Startet anschließend die Scan Software
Code:
(*
twain-dim v0.1 (C) 2008 by Skeeve
mailto: twain-dim.question.skeeve et xoxy dot net
*)
property TWAIN : "se.ellert.twain-sane"
property CD_key : "Current Device"
on run
set available_devices to get_twain_devices()
set current_device to get_twain_device()
repeat
if (count of available_devices) is greater than 1 then
set new_cd to choose from list available_devices default items {current_device}
if new_cd is false then exit repeat
set current_device to first item of new_cd
end if
set x_y to get_x_y(current_device)
set new_x_y to display dialog "Neuer Scanbereich" default answer x_y
set_x_y(current_device, text returned of new_x_y)
if (count of available_devices) is 1 then exit repeat
end repeat
end run
to get_twain_device()
return first paragraph of (do shell script "defaults read " & TWAIN & " " & quoted form of CD_key)
end get_twain_device
to get_twain_devices()
return paragraphs of (do shell script "defaults read " & TWAIN & " | perl -e " & quoted form of ("
undef $/;
$_=<>;
exit 1 unless /^(\\s+)\"" & CD_key & "\"/m;
print join qq(\\n),/^$1\"Device\\s+([^\"]+)\"/gm
"))
end get_twain_devices
to get_x_y(twain_device)
return paragraphs of (do shell script "defaults read " & TWAIN & " " & (quoted form of ("Device " & twain_device)) & " | perl -e " & quoted form of ("
undef $/;
$_=<>;
my %res= {x=>'',y=>''};
$res{$1}= int($2*100+0.5)/100 while /\"br-(x|y)\"\\s+=\\s+(\\d+(?:\\.\\d+)?)/g;
print $res{'x'}.' x '.$res{'y'};
"))
end get_x_y
to set_x_y(twain_device, x_y)
set x to offset of "x" in x_y
set y to text (x + 1) thru -1 of x_y
set x to text 1 thru (x - 1) of x_y
do shell script "defaults write " & TWAIN & " " & (quoted form of ("Device " & twain_device)) & " -dict-add br-x -float " & x & " br-y -float " & y
end set_x_y