Öppna många flikar med olika URL i Safari

Tråden skapades och har fått 2 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Stockholm
  • 2004-10-30 12:41

Nu sitter jag och river skallen här.
Jag har ca hundra olika URLer som jag vill printa som pdf:er.

Skulle man med t ex AppleScript kunna få Safari att öppna URL:erna i flikar och sedan printa som pdf? Det borde väl gå att automatisera på något fiffigt vis?

Det måste inte vara snabbt, bara det funkar.

Jag känner mig inte så hemma på AppleScript. Någon som kan ge mig en liten hjälp på vägen?

  • Medlem
  • Stockholm
  • 2004-11-06 17:03

Okej, nu har suttit i flera dagar och grottat med Applescript.
Jag hittade ett program som lockar fram "Spara som PDF"-menyn i Safari.

Genom att låna kod från den applikationen och snickra ihop lite eget har jag fått Safari att:
1. Öppna nytt Safari-fönster med en angiven URL
2. Printa den som PDF
3. Stänga Safari-fönstret

Problemet som kvarstår är:
Hur läser jag in en URL i taget från en lista med hundratals URL:er? (Den som kan gammal basic känner nog igen sig om jag säger att jag vill göra en READ och DATA lösning i AppleScript)

Så här ser koden ut hittills (kräver dock Sfri Tools från http://homepage.mac.com/julifos/soft)

Citat:

tell application "Safari"
activate
make new document at the beginning of documents
set the URL of the front document to "http://www.99mac.se"
delay 3
tell application "Safari" to do JavaScript "window.print()" in front document
tell application "System Events"
tell process "Safari"
set frontmost to true
click menu button 1 of UI element 3 of sheet 1 of window 1
click menu item "Spara som PDF" of menu of menu button 1 of UI element 3 of sheet 1 of window 1
set frontmost to true
keystroke return
end tell
end tell
delay 5
tell application "System Events"
tell process "Safari"
tell menu bar 1
tell menu bar item "Arkiv"
tell menu "Arkiv"
click menu item "Stäng fönster"
end tell
end tell
end tell
end tell
end tell
end tell

  • Medlem
  • Stockholm
  • 2004-11-06 19:18

Okej, nu har jag fixat det.
Med lite klurande så går det. Det är inte snyggt gjort eller särskilt effektivt. Men, det är mitt första AppleScript. Det går definitivt att snygga till koden.

Innan man kör skriptet måste det ligga en fil som heter urls.txt på skrivbordet. I den filen ligger varje url på en egen rad. Sist på raden är ett ; (semikolon) som avslutar raden. Man måste veta hur många rader som finns i urls.txt och fylla i värdet vid repeat-kommandot så skriptet vet hur många ggr det ska upprepas.

Sedan krävs som tidigare sagt Sfri Tools från http://homepage.mac.com/julifos/soft

Sökvägen till urls.txt måste anpassas för den aktuelle användaren också.

Varje URL sparas som en PDF på skrivbordet. Eftersom det är risk för dubbla filnamn så läggs en siffra till i slutet av filnamnet innan det sparas så alla filer får unika namn. Flytta till en vettig katalog får man fixa själv.

Nu har jag ett ful-skript som funkar med mina hundratals URLer. Nu kör jag igång tröskverket och går och äter lite lördags-fläskfilé. Adjöken!

Citat:

set nr to 0
set theText to (read file "Macintosh HD:Users:Kimpa:Desktop:urls.txt")
set text item delimiters to ";"
set theList to every text item in theText
set text item delimiters to ""

repeat 2 times
set nr to nr + 1
set varjerad to item nr of theList
tell application "Safari"
activate
make new document at the beginning of documents
set the URL of the front document to varjerad
delay 3
tell application "Safari" to do JavaScript "window.print()" in front document
tell application "System Events"
tell process "Safari"
set frontmost to true
click menu button 1 of UI element 3 of sheet 1 of window 1
click menu item "Spara som PDF" of menu of menu button 1 of UI element 3 of sheet 1 of window 1
set frontmost to true
keystroke (ASCII character 29)
keystroke (nr as text)
keystroke return
end tell
end tell
delay 8
tell application "System Events"
tell process "Safari"
tell menu bar 1
tell menu bar item "Arkiv"
tell menu "Arkiv"
click menu item "Stäng fönster"
end tell
end tell
end tell
end tell
end tell
end tell
end repeat

1
Bevaka tråden