Makro zum Einfuegen einer Grafik vom Scanner

06/11/2007 - 22:43 von Wolfgang Klein | Report spam
Hallo,

ich habe mit Hilfe der Aufzeichnungsfunktion ein Makro erstellt, das
eine Grafik aus einer Datei einfügt, welche zuvor mit scanimage erzeugt
wird. Ziel ist es, mit nur einem Tastendruck ein externes Dokument vom
Scanner einzulesen und in das aktuelle Writer-Dokument einzufügen. Ich
greife dabei auf scanimage zurück, weil das Scan-Interface von
OpenOffice viel zu... naja, sagen wir mal: "gewöhnungsbedürftig" ist.

Hier ist also das Makro. Um etwas Platz zu sparen, schmeiße ich
Kommentare und Leerzeilen raus:


Sub scan_einfuegen

shell("bash -c 'scanimage > /tmp/scan.png'")

dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(3) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FileName"
args1(0).Value = "file:///tmp/scan.png"
args1(1).Name = "FilterName"
args1(1).Value = "<Alle Formate>"
args1(2).Name = "AsLink"
args1(2).Value = false
args1(3).Name = "Style"
args1(3).Value = "Grafik"
dispatcher.executeDispatch(document, ".uno:InsertGraphic", "", 0, args1())

end sub



Beide Befehle funktionieren separat, nur nicht beide zusammen: die
Shell-Funktion wird angesprochen, der Scanner betàtigt und die temporàre
Datei erzeugt. Sie wird aber nicht in das Dokument eingefügt.

Kommentiere ich dagegen die shell-Funktion aus, wird die vom vorherigen
Durchlauf noch bestehende Datei wie gewünscht eingefügt.

Wo steckt da der Fehler? Oder geht das, was ich vorhabe, gar nicht?


Wolfgang Klein, DE - Paderborn ,_,
PGP-Schlüssel per e-mail anfordern: (o,o) Request PGP key by e-mail:
"Bitte PGP-Schluessel senden" {' '} "Please send PGP key"
=#=#
 

Lesen sie die antworten

#1 Volker Kohaupt
07/11/2007 - 00:07 | Warnen spam
Wolfgang Klein schrieb:

Beide Befehle funktionieren separat, nur nicht beide zusammen: die
Shell-Funktion wird angesprochen, der Scanner betàtigt und die temporàre
Datei erzeugt. Sie wird aber nicht in das Dokument eingefügt.



Die Ursache liegt darin begründet das der Shell Befehl, in deiner
Ausführung, nicht wartet bis der Scan fertig ist. Das kannst du testen
in dem du vor dem 'end sub' ein Print "Hallo" einbaust, diesen Hallo
Dialog bekommst du dann schon zu Gesicht bevor der Scanner angesprochen
wird.

Abhilfe kann man schaffen in dem man dem Shell Befehl noch weitere
Optionen mit gibt. In deinem Fall würde er dann so aussehen.

shell("bash -c 'scanimage > /tmp/scan.png'",,,true)


Kommentiere ich dagegen die shell-Funktion aus, wird die vom vorherigen
Durchlauf noch bestehende Datei wie gewünscht eingefügt.



Warum das so ist dürfte jetzt klar sein :>)


Viele grüße von Volker aus dem Windows freien Büro.

PC 1 : Linux Opensuse 10.2
PC 2 : Linux Opensuse 10.2
Server: Linux Opensuse 10.2 ohne X

Ähnliche fragen