Seite 1 von 1

evince GNOME viwer

Verfasst: Dienstag 10. Juni 2014, 16:00
von TryToLearn
Hi,
ich habe ein Problem mit dem evince Viwer von GNOME.
Ich öffne ein Dokument mit einem Subprocess hier der Aufruf:
process=subprocess.Popen([evince, '-l', 'Suchwort', Dokument.pdf])
So mein Problem ist nun, dass das Dokuemnt zwar geöffnet wird aber die Suche nicht direkt durchgeführt, sonder auf der ersten Seite geöffnet wird.
Sobald ich die Tastenkombination CTRL+F klicke wird die richtige Suche durchgeführt, jedoch kann ich leider kein weiteres Tool installieren um Tastatureingaben zu simulieren.
Mache ich einen Fehler im Aufruf oder gibt mir dieser Kommadozeilenoption nicht die Möglichkeit eine direkte Suche durchzuführen? :K
Vielleicht kennt sich ja jemand mit dem evince viwer aus :D

Oder es gibt die Möglichkeit den Tastaturbefehl CTRL+F an den subprocess zu schicken ohne ein weiteres Tool installieren zu müssen? :? :?:

Re: evince GNOME viwer

Verfasst: Dienstag 10. Juni 2014, 16:17
von BlackJack
@TryToLearn: Also wenn ich das mache dann wird die erste Seite angezeigt auf der das Suchwort gefunden wird. Es wird allerdings visuell nicht hervorgehoben wie bei einer Suche per Strg+F und man kann auch nicht mit den entsprechenden Tasten zu den nächsten Treffern weiter springen.

Re: evince GNOME viwer

Verfasst: Dienstag 10. Juni 2014, 16:47
von TryToLearn
@BlackJack: hast du exakt meinen Aufruf genommen ??
Also bei mir wird damit das Dokument leider nur auf der Ersten Seite geöffnet hmmm :?:

Re: evince GNOME viwer

Verfasst: Dienstag 10. Juni 2014, 17:16
von BlackJack
@TryToLearn: Nein nicht exakt, ich habe beim ersten und letzten Element der Liste Zeichenketten übergeben und statt 'Suchwort' ein Wort was auch tatsächlich in dem PDF vorkommt das ich als letztes Element in der Liste angegeben habe. Und das Suchwort tauchte auch nicht auf der Startseite auf, um sicherzugehen, dass ich auch tatsächlich eine andere als die Startseite angezeigt bekomme.

Re: evince GNOME viwer

Verfasst: Dienstag 10. Juni 2014, 17:30
von TryToLearn
ja so hab ich es auch gemacht nur nicht als letztes Element übergeben.
Nur dass wir uns richtig verstehen:
aufruf = 'envince'
path = '/mnt/Verzeichnis/Dokument.pdf'
process=subprocess.Popen([aufruf, '-l', path, 'Suchwort'])
meinst du so ? :D
Ich kann es heute leider nichtmehr ausprobieren :cry:

Re: evince GNOME viwer

Verfasst: Dienstag 10. Juni 2014, 18:32
von BlackJack
@TryToLearn: Nein, so natürlich nicht. Nach dem '-l' muss das Suchwort stehen.

Re: evince GNOME viwer

Verfasst: Montag 30. Juni 2014, 11:13
von TryToLearn
@BlackJack: sry dass ich mich jetzt erst wieder melde aber hattle viel anderes um die Ohren :(

Also ich habe jetzt nochmal alles ausprobiert aber bei mir wird das Dokument immer auf der ersten Seite geöffnet, doch sobald ich die Suche öffne ist mein Suchwort bereits eingegeben aber die Suche wurde nicht ausgeführt...

Es wäre nett wenn du mir mal deinen gesammten Aufruf schicken könntest.

Ich halte mich eigentlich mit meinem Aufruf nur an diese http://manpages.ubuntu.com/manpages/rar ... nce.1.html Anleitung

Hier nochmal mein Aufruf:

Code: Alles auswählen

evince=r'evince'
full_path= '/mnt/Verzeichnis/Dokument.pdf'
key='Suchwort' #Das Suchwort existiert und befindet sich nicht auf der ersten Seite
process=subprocess.Popen([evince, '-f', '--find=%s'%key, full_path])

Re: evince GNOME viwer

Verfasst: Montag 30. Juni 2014, 13:27
von BlackJack
@TryToLearn: Hm, der Version die ich gerade auf meinem Laptop installiert habe scheint diese Option auch völlig egal zu sein. Das ist aber kein Python-Problem, denn auch wenn ich das Programm direkt im Terminal ausführe bekomme ich es nicht zum Suchen der Seite. Funktioniert es bei Dir denn direkt?

Re: evince GNOME viwer

Verfasst: Dienstag 1. Juli 2014, 07:10
von TryToLearn
@BlackJack: Hmm ok danke das wird wohl das Problem sein. Es funktioniert direkt leider auch nicht...
Dann muss ich wohl doch ein Keybord-simulator verwenden...

Re: evince GNOME viwer

Verfasst: Dienstag 1. Juli 2014, 07:40
von mutetella
@TryToLearn
Falls Du nicht auf eine Anzeige des PDF in einem PDF-Viewer angewiesen bist, wäre auch zu überlegen, ob Du das PDF z. B. mit `pdftotext` aus dem Xpdf Projekt zuerst in ein Textfile konvertierst, das Du dann durchsuchen kannst. Ich habe das jetzt nicht ausprobiert, aber eventuell sind in einem so konvertiertem Textfile ja auch die Seitennummern angegeben, über die Du dann wiederum den PDF-Viewer aufrufen kannst, falls nötig...

Eher ein Hack als 'ne Lösung, aber PDF ist halt auch so 'ne Sache... :)

mutetella

EDIT: Unter Debian oder einem -derivat ist pdftotext innerhalb der `poppler-utils` enthalten...

Re: evince GNOME viwer

Verfasst: Dienstag 1. Juli 2014, 08:36
von TryToLearn
@mutetella: Ja darüber habe ich mir auch schon Gedanken gemacht und auch schon einiges ausprobiert, da ich am Anfang auf die Seite springen wollte und nicht nach Schlüsselwörtern suchen, jedoch bekomme ich die Seitenzahl leider nicht zurück, zumindest nicht mithilfe der Programme die mir generell zur Verfügung stehen.

Re: evince GNOME viwer

Verfasst: Dienstag 1. Juli 2014, 10:27
von Sirius3
@TryToLearn: pdftotext schreibt Seitenvorschubzeichen in die Text-Datei, die man zum Zählen der Seiten benutzen kann.

Re: evince GNOME viwer

Verfasst: Dienstag 1. Juli 2014, 12:05
von TryToLearn
@Sirius3: Ah ok vielen Dank, das schau ich mir an sobald ich Zeit habe.

Re: evince GNOME viwer

Verfasst: Dienstag 1. Juli 2014, 13:53
von TryToLearn
@all:

Also ich habe das Problem jetzt so gelöst:
Ich habe ein Modul gefunden, dass Tastaureingabeb simuliert und leicht einzubinden ist.
Damit kann ich einfach Control + F und den Suchbegriff simulieren.

Nochmal vielen Dank an alle die mir geholfen haben

Re: evince GNOME viwer

Verfasst: Dienstag 1. Juli 2014, 14:21
von mutetella
@TryToLearn
Wenn Du jetzt noch kurz den Namen/Link des Moduls angibst, wäre damit vielleicht künftigen Threadlesern geholfen... Wobei ich diesen "Tastendruck-Simulations-Lösungen" immer ein wenig skeptisch gegenübersteh'. Da halte ich den Ansatz von Sirius3, über die Seitenvorschubzeichen die Seitenzahl zu ermitteln, für weniger fehleranfällig.

mutetella

Re: evince GNOME viwer

Verfasst: Dienstag 1. Juli 2014, 14:49
von TryToLearn
@mutetella: Da hast du natürlich völlig recht
Hmm ich hoffe nicht dass es fehleranfällig ist :D , aber die Lösung mit dem Seitenvorschubzeichen ist für mich in diesem Fall leider ungeigent, da ich häufige Änderungen hab und das Modul das Sirius3 vorgeschlagen hat nicht auf allen Systemen, wo mein Tool laufen soll, so funktioniert wie benötigt.

hier das Modul für die keyboardsimulation und auch mousesimulation:
https://github.com/SavinaRoja/PyUserInput

Re: evince GNOME viwer

Verfasst: Dienstag 1. Juli 2014, 18:11
von mutetella
@TryToLearn
Was ich nicht verstehe: Wie landen die keystrokes bei `evince`? Ich meine, bevor der Tastendruck simuliert wird, muss `evince` ja die aktive Anwendung sein. Konnte dazu in der Beschreibung nichts finden.

mutetella

Re: evince GNOME viwer

Verfasst: Mittwoch 2. Juli 2014, 06:43
von TryToLearn
@mutetella: Ja das ist momentan auch mein Problem...
Unter Windows lese ich einfach den Titel des Programms im Fokus aus und warte solange bis der Titel meinem Pdf-viewer entspricht.
Unter Linux suche ich gerade eine ähnliche Lösung ohne weitere Packete installieren zu müssen, ich kann leider nur Module importieren aber nicht installieren.

Re: evince GNOME viwer

Verfasst: Mittwoch 2. Juli 2014, 11:09
von mutetella
@TryToLearn
Um keystrokes an ein bestimmtes Fenster zu senden, musst Du ein wenig tiefer in die Toolkiste greifen. Zuerst einmal benötigst Du die ID des `evince` Fensters. Nehmen wir an, ich habe `evince` so geöffnet:

Code: Alles auswählen

$ evince Biohöfe_Bioverkauf.pdf
Ich suche also nach einem Fenster, das "Biohöfe_Bioverkauf.pdf" im Titel trägt:

Code: Alles auswählen

$ xdotool search --name Biohöfe
33554435
Somit habe ich die ID, an die ich nun eine Tastenfolge schicken kann:

Code: Alles auswählen

$ xvkbd -window $(xdotool search --name Biohöfe) -text "\CfDinkel"
Wie unter anderem Ctrl, Alt etc. Tastenkombinationen definiert sind, kann Du in der man page zu `xvkbd` nachschlagen. `xdotool` lässt sich auch für Tastendruck Simulationen nutzen, läuft aber leider bei `evince` ins Leere, keine Ahnung weshalb.

mutetella

Re: evince GNOME viwer

Verfasst: Mittwoch 2. Juli 2014, 12:25
von TryToLearn
@mutetella: 'xdotool' müsste ich auch installieren, was ich leider nicht kann.
Ich hab das jetzt so gelöst, dass ich sobald meine Gui den Fokus verliert (ab da hat evince den Fokus) meine Tastatureingabe stattfindet.