Skocz do zawartości

Witaj!

Zaloguj lub Zarejestruj się aby uzyskać pełny dostęp do forum.

Zdjęcie
- - - - -

Pomoc w modyfikacji skryptu dla Pages.


  • Zaloguj się, aby dodać odpowiedź
Brak odpowiedzi do tego tematu

#1 pyrzu

pyrzu
  • 45 postów
  • SkądZABRZE

Napisano 09 stycznia 2018 - 12:29

Witam.

 

Potrzebny mi jest prosty skrypt do programu Pages…

 

Zasada działania: mając otwarty plik, na którym pracuję, uruchamiam skrypt, który wyszukuje wszystkie teksty zastępcze (tekst sformatowany w Pages jako „tekst zastępczy”) i pozwala wpisać w ich miejsce własny tekst, a następnie formatuje nowo wpisany tekst jako zastępczy. W moim przypadku – w sumie dość typowym – pozwoli to przy działaniu na gotowym szablonie za jednym zamachem zmienić np. dane adresowe w całym pliku, z możliwością ich zmiany ponownie w trakcie pracy.

 

Znalazłem skrypt, który pozwala wprowadzić dane w miejscu tekstu zamiennego w momencie otwarcia szablonu (nowy plik z wzorca),

co jednak wymusza za każdym razem otwarcie nowego szablonu i pozwala wprowadzić zmiany tylko raz – nie można się pomylić…

 

Delikatnie zmodyfikowałem skrypt, który działa na otwartym pliku (niekoniecznie szablonie), nie jestem w stanie jednak sprawić, aby podmienione

teksty zastępcze ponownie były formatowane po zamianie na teksty zastępcze… – tym samym, pracując z plikiem, mam tylko jedną szansę na wpisanie

nowych treści – jeśli się pomylę, nie zmienię już tego z automatu…

 

Poniżej roboczy skrypt, wzorowany na rozwiązaniach ze strony: https://iworkautomat...older-text.html

Będę wdzięczny za pomoc.

 

tell application "Pages"

activate

 

if not (exists document 1) then error number -128
tell document 1

 

-- GET ALL TAGS
set theseTags to the tag of every placeholder text

 

-- FILTER FOR UNIQUE TAGS
set uniqueTags to {}
repeat with i from 1 to the count of theseTags
set thisTag to item i of theseTags
if thisTag is not in uniqueTags then
set the end of uniqueTags to thisTag
end if
end repeat

 

-- PROMPT USER FOR REPLACEMENT TEXT
repeat with i from 1 to the count of uniqueTags
set thisTag to item i of uniqueTags
display dialog "Enter the replacement text for this tag:" & ¬
return & return & thisTag default answer "" buttons ¬
{"Cancel", "Skip", "OK"} default button 3
copy the result to {button returned:buttonPressedtext returned:replacementString}
if buttonPressed is "OK" then
set (every placeholder text whose tag is thisTagto replacementString
end if
end repeat
end tell
end tell





Użytkownicy przeglądający ten temat: 1

0 użytkowników, 1 gości, 0 anonimowych