[GastForen Programmierung/Entwicklung AppleScript Acrobat PDF Funktion "zum Kommentieren in Adobe Reader aktivieren" automatisieren

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Acrobat PDF Funktion "zum Kommentieren in Adobe Reader aktivieren" automatisieren

Anonym
Beiträge gesamt: 22827

21. Nov 2006, 15:03
Beitrag # 1 von 25
Bewertung:
(7346 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

es wurde mal Zeit für meinen ersten Beitrag hier im Forum, nachdem ich schon lange interessiert hier rumstöbere.
Ich bin ein relativer "AppleScript-Neuling", jedoch konnte ich bisher vorhandene Scripts wenigstens für mich anpassen und modifizieren, damit sie für mich funktionieren.

Nun suche ich nach einem Script, dass meine vorhandenen PDFs öffnet, und die Kommentar-Funktion "zum Kommentieren und für Analyse in Adobe Reader aktivieren" ausführt und die vorhandene PDF überschreibt oder auch an einen anderen definierten Ort sichert.

Ich arbeite unter Mac OSX 10.4.7 an einem Intel-Mac mit Acrobat 7.0.8
X

Acrobat PDF Funktion "zum Kommentieren in Adobe Reader aktivieren" automatisieren

Hans Haesler
  
Beiträge gesamt: 5826

21. Nov 2006, 22:02
Beitrag # 2 von 25
Beitrag ID: #421328
Bewertung:
(7345 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Thomas,

herzlich willkommen im PAGE-Forum! :-)

nun ... meine AppleScript-Kenntnisse betreffend Acrobat sind sehr bescheiden.
Aber nach einem kurzen Studium des Problems befürchte ich, dass diese Aufgabe
nicht lösbar ist.

Dennoch werde ich morgen bei Tageslicht einen ersten Versuch unternehmen.

Gruss, Hans


als Antwort auf: [#421327]

Acrobat PDF Funktion "zum Kommentieren in Adobe Reader aktivieren" automatisieren

Anonym
Beiträge gesamt: 22827

22. Nov 2006, 08:13
Beitrag # 3 von 25
Beitrag ID: #421329
Bewertung:
(7345 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten morgen Herr Haesler,

vielen Dank schonmal für Ihre Mühe, die Sie täglich hier im Forum aufwenden!

Ich habe selbst schon kurz in das Funktionsverzeichnis von Acrobat geschaut (wie man das mit allen Programmen machen kann), allerdings komme ich - wie bisher so oft - auf keinen grünen Zweig, der mich wenigstens in die Nähe der Problemlösung lenkt...

Ich freue mich darauf, von Ihnen zu hören!


als Antwort auf: [#421327]

Acrobat PDF Funktion "zum Kommentieren in Adobe Reader aktivieren" automatisieren

TMA
Beiträge gesamt: 399

22. Nov 2006, 08:22
Beitrag # 4 von 25
Beitrag ID: #421330
Bewertung:
(7345 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo thomas,
leider tut sich seit acrobat 3 (laut stephan jaeggi) im bereich applesrcipt nichts mehr. javascript hingegen schon.
per applescript kommt man da nur per GUI-scripting weiter was ja nicht so toll ist. zumal sich die UI-elemente in den verschiedenen versionen von acrobat unterscheiden. wars in acrobat 7.04 noch element 3 ist das gleiche element in der version 7.08 die 6... usw...
sehr unschön das ganze...

gruß
TMA


als Antwort auf: [#421327]

Acrobat PDF Funktion "zum Kommentieren in Adobe Reader aktivieren" automatisieren

Anonym
Beiträge gesamt: 22827

22. Nov 2006, 09:31
Beitrag # 5 von 25
Beitrag ID: #421331
Bewertung:
(7345 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo TMA,

das hört sich nicht wirklich optimistisch an.
Falls man das aber per GUI-Scripting lösen wollte, wäre das machbar oder zu aufwändig?
Lassen sich die Elemente denn nach der Anordnung im GUI - also in der Menüdarstellung Acrobats - sortieren, oder verstecken sich hier und da noch Menüpunkte? Falls das so ist, wäre es schließlich nicht sehr aufwändig, das Script an die aktuelle Version anzupassen.
Schließlich soll das Script ja "quasi nur einen" Menüpunkt aufrufen und das Dokument absichern...

Allerdings ist das GUI-Scripting für mich völliges Neuland.
Aber falls jemand damit Erfahrungen hat - nur her damit! ;o)


als Antwort auf: [#421327]

Acrobat PDF Funktion "zum Kommentieren in Adobe Reader aktivieren" automatisieren

TMA
Beiträge gesamt: 399

22. Nov 2006, 09:57
Beitrag # 6 von 25
Beitrag ID: #421332
Bewertung:
(7345 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi thomas,
bitte hier mal den beitrag durchlesen, da sind auch links. GUI-scripting und den element-inspector. am besten alles mal durchlesen:

http://www.page-online.de/page/forum/viewthread/2969/

und hier noch ein beispiel von mir wie man in acrobat seiten mit kommentare druckt:

Code
tell application "System Events" 
tell application "Adobe Acrobat 7.0 Professional" to activate
tell application process "Acrobat"
exists
try
-- mit Kommentarzusammenfassung drucken
keystroke "t" using command down

delay 1
tell front window
-- Layout: Dokument und Kommentare mit Sequenznummern auf separaten Seiten
click radio button 1 of group 1 of group 1 of group 1

delay 1

-- Papierformat: A4
click pop up button 2 of group 1
click menu item "A4" of menu 1 of pop up button 2 of group 1

delay 1

--Kommentare sortieren nach: Seite
click pop up button 1 of group 1
click menu item 2 of menu 1 of pop up button 1 of group 1

delay 1

-- Einschließen: Alle Kommentare
click radio button 5 of group 1

delay 1

-- Schriftgröße: mittel
click radio button 2 of group 1

delay 1
-- OK button drücken
click button 1 of group 1
end tell

-- Druckfenster
delay 10
tell front window
-- Drucker auswählen
click pop up button 3
click menu item "Epson" of menu 1 of pop up button 3

delay 2
-- seitenanpassung: an druckränder anpassen
click pop up button 2 of UI element 1 of UI element 6
click menu item 2 of menu 1 of pop up button 2 of UI element 1 of UI element 6

delay 2
-- seiten automatisch drehen und zentrieren an/aus
if value of checkbox "automatisch drehen und zentrieren" of UI element 3 of UI element 1 of UI element 6 = 0 then
click checkbox "automatisch drehen und zentrieren" of UI element 3 of UI element 1 of UI element 6
end if

delay 2

-- Drucken button drücken
keystroke return
end tell
end try
end tell
delay 10
tell application "Adobe Acrobat 7.0 Professional" to close every document saving no
end tell


gruß
TMA


als Antwort auf: [#421327]

Acrobat PDF Funktion "zum Kommentieren in Adobe Reader aktivieren" automatisieren

Hans Haesler
  
Beiträge gesamt: 5826

22. Nov 2006, 10:06
Beitrag # 7 von 25
Beitrag ID: #421333
Bewertung:
(7346 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Thomas, hallo TMA,

ja, per UI-Scripting habe ich es geschafft, den Menüartikel "Zum Kommentieren in
Adobe Reader aktivieren..." auszuwählen. Dann aber kommt der Sichern-unter-Dialog.
Man kann also nicht per Script einen neuen Pfad vorgeben.

Deshalb: Augen zu und durch! Weiter mit UI-Scripting den Button "Sichern" bestätigt.
Aber weil die Datei schon vorhanden ist, muss auch auf den Button "Ersetzen"
geklickt werden. Das Fenster dieses Dialoges ist aber unbenannt und deshalb muss
ein Klick mit den Koordinaten erfolgen.

Das wirklich Unschöne daran ist, dass die Position des Klicks nicht nach den lokalen
Koordinaten des Buttons im kleinen Dialog erfolgt, sondern von der linken oberen
Ecke des Bildschirms.

Deshalb, Thomas, solltest Du vorgängig den UI-Element-Inspector starten (findet man
hier: http://www.apple.com/applescript/uiscripting/index.html ), manuell die Aktion
durchführen (PDF öffnen, ein Sichern-unter verlangen) und im Inspector-Fenster die
Werte für die Position des kleinen Ersetzen-Dialoges und für den Button "Ersetzen"
notieren. Und dann die Posiiton für den Klick ausrechnen.

Bei mir zeigt der UI-Inspector die Werte x = 757, y = 695 für den Dialog und
W = 96, H = 20 für den Button. Die beiden letzteren Werte muss man halbieren und
zu jenen des Dialoges addieren: 757 + (96/2) = 805 und 695 + (20/2) = 705.
Das Ergebnis in der Liste nach click at  einsetzen.

Hier schon mal ein erstes Script, welches aber nur eine Datei behandelt. Acrobat
starten, dann das Script. Ein Dialog lädt ein, eine PDF-Datei auszuwählen. Nach
dem Klick auf "Öffnen" sollte der Rest automatisch geschehen.
---
set curFile to (choose file) as Unicode text

tell application "Adobe Acrobat 7.0 Professional"
   activate
   open curFile
   my selectMenuItem()
   delay 10
   close document 1 saving no
end tell

on selectMenuItem()
   tell application "System Events" to tell process "Acrobat"
      click menu item 14 of menu 7 of menu bar 1
      delay 1
      click button "Sichern" of window "Speichern unter"
      delay 1
      click at {805, 705}
   end tell
end selectMenuItem
---
Falls es damit klappt, werde ich den Code in ein Droplet umwandeln, damit mehrere
Dateien behandelt werden können. Und später wage ich mich vielleicht an eine Lösung
mit JavaScript ...

Gruss, Hans


als Antwort auf: [#421327]

Acrobat PDF Funktion "zum Kommentieren in Adobe Reader aktivieren" automatisieren

Anonym
Beiträge gesamt: 22827

22. Nov 2006, 10:23
Beitrag # 8 von 25
Beitrag ID: #421334
Bewertung:
(7345 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen!

Vielen Dank für deine Beiträge TMA! Nach kurzem Einlesen hab ich mit Hilfe dieses Scripts wenigstens schonmal den Menüpunkt "anklicken" lassen:

tell application "Adobe Acrobat 7.0 Professional"
activate
end tell

tell application "System Events"
tell process "Acrobat"
tell menu bar 1
tell menu bar item "Kommentare"
tell menu "Kommentare"
click menu item "Zum Kommentieren und für Analyse in Adobe Reader aktivieren..."
end tell
end tell
end tell
end tell
end tell

Nun muss nur noch im "aufpoppenden" Dialogfenster der Default-Button gedrückt werden und danach "Ersetzen" gedrückt werden...
Wie man das allerdings hinbekommt, ist mir momentan noch ein kleines Rätsel...
Außerdem wäre natürlich wünschenswert, wenn dieses Script "invisible" ablaufen würde. Ist das auch machbar?

Vielen Dank schonmal für die Hilfe!


als Antwort auf: [#421327]

Acrobat PDF Funktion "zum Kommentieren in Adobe Reader aktivieren" automatisieren

TMA
Beiträge gesamt: 399

22. Nov 2006, 10:24
Beitrag # 9 von 25
Beitrag ID: #421335
Bewertung:
(7345 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo hans, hallo thomas,

Zitat Aber weil die Datei schon vorhanden ist, muss auch auf den Button "Ersetzen"
geklickt werden. Das Fenster dieses Dialoges ist aber unbenannt und deshalb muss
ein Klick mit den Koordinaten erfolgen.


koordinaten muss nicht sein, man kann es auch so ähnlich machen (nur so als beispiel, vielleicht nochn try oder ein get title vom window, muss man probieren):

Code
tell front window 
click button "Speichern"
end tell
delay 1
tell front window
click button "Ersetzen"
end tell


gruß
TMA


als Antwort auf: [#421327]

Acrobat PDF Funktion "zum Kommentieren in Adobe Reader aktivieren" automatisieren

Anonym
Beiträge gesamt: 22827

22. Nov 2006, 10:35
Beitrag # 10 von 25
Beitrag ID: #421336
Bewertung:
(7345 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans, hallo TMA!

Deinen Beitrag zuvor hatte ich noch gar nicht mitbekommen, Hans. Daher der etwas umständlichere Versuch von mir....

Die beiden Scripts kombiniert funktionieren einwandfrei.
Wie bereits erwähnt, wäre letztendlich die perfekte Lösung, wenn der Prozess im Hintergrund ablaufen könnte.
Falls das allerdings zu aufwändig ist, werde ich den Prozess vielleicht unter einem anderen Benutzer an meinem Mac laufen lassen...


als Antwort auf: [#421327]

Acrobat PDF Funktion "zum Kommentieren in Adobe Reader aktivieren" automatisieren

TMA
Beiträge gesamt: 399

22. Nov 2006, 10:37
Beitrag # 11 von 25
Beitrag ID: #421337
Bewertung:
(7345 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi thomas,
kannste auch so mal probieren:

tell application "Adobe Acrobat 7.0 Professional"
   activate
end tell

tell application "System Events"
   tell process "Acrobat"
      click menu item "Zum Kommentieren und für Analyse in Adobe Reader aktivieren..." of menu 1 of menu bar item "Kommentare" of menu bar 1
      delay 1
      click button "Sichern" of front window
      delay 1
      click button "Ersetzen" of front window
   end tell
end tell


und im hintergrund laufen lassen geht nicht...

gruß
TMA


als Antwort auf: [#421327]

Acrobat PDF Funktion "zum Kommentieren in Adobe Reader aktivieren" automatisieren

Hans Haesler
  
Beiträge gesamt: 5826

22. Nov 2006, 10:38
Beitrag # 12 von 25
Beitrag ID: #421338
Bewertung:
(7345 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo TMA,

stimmt. Die Koordinaten braucht es nicht. Ich hatte es mit 'window 1'
versucht, aber da musste etwas anderes nicht gestimmt haben.

So klappt es bei mir:
---
set curFile to (choose file) as Unicode text

tell application "Adobe Acrobat 7.0 Professional"
   activate
   open curFile
   my selectMenuItem()
   delay 10
   close document 1 saving no
end tell

on selectMenuItem()
   tell application "System Events" to tell process "Acrobat"
      click menu item 14 of menu 7 of menu bar 1
      delay 1
      click button "Sichern" of window "Speichern unter"
      delay 1
      click button "Ersetzen" of window 1
   end tell
end selectMenuItem
---

Hallo Thomas,

ja, ich nehme an, dass es auch unsichtbar durchgeführt werden kann.
Das werde ich bei der nächsten Fassung des Scripts einbauen.

Gruss, Hans


als Antwort auf: [#421327]

Acrobat PDF Funktion "zum Kommentieren in Adobe Reader aktivieren" automatisieren

Anonym
Beiträge gesamt: 22827

22. Nov 2006, 11:17
Beitrag # 13 von 25
Beitrag ID: #421339
Bewertung:
(7345 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Jau super.
Habe mir gerade auch schon ein Droplet daraus gebastelt:
Zitat
Code
on open DroppedDocuments 

repeat with i from 1 to count of DroppedDocuments
set oneDoc to item i of DroppedDocuments as string

tell application "Adobe Acrobat 7.0 Professional"
activate
open oneDoc
my selectMenuItem()
delay 1
close document 1 saving no
end tell
end repeat

end open

on selectMenuItem()
tell application "System Events" to tell process "Acrobat"
click menu item 14 of menu 7 of menu bar 1
delay 1
click button "Sichern" of window "Speichern unter"
delay 1
click button "Ersetzen" of window 1
end tell
end selectMenuItem



Das funktioniert dann soweit ganz gut. Manchmal "verhaspelt" sich Acrobat anscheinend allerdings und schließt das Dokument bevor es überhaupt den "Ersetzen" Button betätigt hat. Dann hängt sich der Akrobat mit seiner Zirkusnummer auf...
Vorerst kann ich damit aber unter einem zweiten Benutzer das Droplet ausprobieren....
Falls man das noch irgendwie "invisible" bekommt wär ich natürlich aber doppelt froh!


als Antwort auf: [#421327]

Acrobat PDF Funktion "zum Kommentieren in Adobe Reader aktivieren" automatisieren

Hans Haesler
  
Beiträge gesamt: 5826

22. Nov 2006, 11:37
Beitrag # 14 von 25
Beitrag ID: #421340
Bewertung:
(7345 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Thomas,

in meinem Script habe ich die Pause vor dem Schliessen des Dokuments
mit 'delay 10' definiert. Sehr wahrscheinlich ist 'delay 1' (= nur eine Sekunde)
viel zu knapp bemessen. Je nach Dokument können aber auch die 10 Sekunden
nicht ausreichen.

Wegen der unsichtbaren Ausführung befürchte ich, dass TMA recht hat.
Solange man auf UI-Scripting angewiesen sind, müssen die Buttons usw.
sichtbar bleiben.

Und ob man mit JavaScript die Unsichtbarkeit zustande bringt, bezweifle ich.
Denn das Problem wird dasselbe sein: Der Menüartikel-Aufruf löst das Anzeigen
des Sichern-Dialoges aus. Deshalb kann man nur noch hoffen, dass mit
JavaScript die Option direkt zugänglich ist.

Kann ich aber nicht vor heute Abend untersuchen.

Gruss, Hans


als Antwort auf: [#421327]

Acrobat PDF Funktion "zum Kommentieren in Adobe Reader aktivieren" automatisieren

TMA
Beiträge gesamt: 399

22. Nov 2006, 17:13
Beitrag # 15 von 25
Beitrag ID: #421341
Bewertung:
(7345 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ach thomas,
hab ich ganz vergessen:

willkommen im forum.
und grüße aus der nachbarschaft (ca. 300m luftlinie bis zu dir bei der arbeit, was für ein zufall)

TMA


als Antwort auf: [#421327]
X