Forenindex » Programmierung/Entwicklung » AppleScript » Phs-Pfad als Textverdränger

Phs-Pfad als Textverdränger

Anonym
Beiträge gesamt: 22827

31. Jul 2008, 20:58
Bewertung:

gelesen: 1446

Beitrag als Lesezeichen
Hallo Hans,

Freistell-Bilder, die einen modifizierten Phs-Pfad als Textverdränger enthalten, lassen sich nicht problemlos auf 100% skalieren (Verdränger ändert sich)
Deshalb möchte ich einen unabhängigen Textverdränger erstellen.

Händisch gehe ich so vor:
1. Das aktive Bild Duplizieren (gleiche Position)
2. Das Dupli auf eine Ebene "VerdrängerEbene" moven
3. Dem Dupli den Photoshop Pfad "Textverdränger" als Beschneidungspfad zuweisen
  (Pfad existiert immer)
4. Den Beschneidungspfad in einen Rahmen umwandeln und den Inhalt (Bild) löschen
5. Den Rahmen auf Umfließen 1mm stellen

Als Script komme ich bis auf das Dupli und moven auf die "Ebene "Verdränger"
nicht weiter.

--
tell document 1 of application "Adobe InDesign CS2"
    activate
      try
        set myLayer to layer "Verdränger-Ebene"
    on error
        set myLayer to make layer with properties {name:"Verdränger-Ebene"}
    end try
    set curSel1 to selection
            set linkPicID to id of graphic 1 of item i of curSel1
            make (duplicate) of curSel1
        move selection to layer "Verdränger-Ebene"
end tell
--
Gruss willem

Phs-Pfad als Textverdränger

Hans Haesler
  
Beiträge gesamt: 5826

1. Aug 2008, 08:28
Bewertung:

gelesen: 1445

Beitrag als Lesezeichen
Hallo Willem,

so sollte es funktionieren ...
---
tell document 1 of application "Adobe InDesign CS2"
   activate
   try
      set newLayer to layer "Verdränger-Ebene"
   on error
      set newLayer to make layer with properties ¬
         {name:"Verdränger-Ebene"}
   end try
   set curSel to duplicate selection
   set selection to {}
   move curSel to layer "Verdränger-Ebene"
   tell clipping path of graphic 1 of curSel
      set newFrame to convert to frame
   end tell
   tell newFrame
      delete graphic 1
      set content type to unassigned
      tell text wrap preferences
         set properties to {text wrap type:contour, text wrap offset:"1 mm"}
      end tell
   end tell
end tell
---
... aber nur, wenn der Photoshop-Pfad "Textverdränger" als Maske definiert ist. Eine Umstellung, welche Du eventuell von Hand machst, ist per Script nicht möglich.

Der Befehl set content type to unassigned wandelt den Bildrahmen in einen Rahmen ohne Inhalt (= ohne störendes Kreuz).

Gruss, Hans

Phs-Pfad als Textverdränger

Anonym
Beiträge gesamt: 22827

1. Aug 2008, 19:58
Bewertung:

gelesen: 1445

Beitrag als Lesezeichen
Hallo Hans,
habe den Textverdränger als Beschneidungspfad zugewiesen...
... das Script gestartet - es funktioniert!

Nur falls möglich:
kann man am Schluß den Beschneidungspfad am Original per Script deaktivieren?
da Freisteller mit Ebenenmasken freigestellt sind (weiche Kante)

herzlichen Dank
willem

Phs-Pfad als Textverdränger

Hans Haesler
  
Beiträge gesamt: 5826

1. Aug 2008, 21:51
Bewertung:

gelesen: 1445

Beitrag als Lesezeichen
Hallo Willem,

mit dem an das Originalbild gerichteten Befehl set clipping type of clipping path to none sollte es klappen.
---
tell document 1 of application "Adobe InDesign CS2"
   activate
   try
      set newLayer to layer "Verdränger-Ebene"
   on error
      set newLayer to make layer with properties ¬
         {name:"Verdränger-Ebene"}
   end try
   set origSel to graphic 1 of selection
   set curSel to duplicate selection
   set selection to {}
   move curSel to layer "Verdränger-Ebene"
   tell clipping path of graphic 1 of curSel
      set newFrame to convert to frame
   end tell
   tell newFrame
      delete graphic 1
      set content type to unassigned
      tell text wrap preferences
         set properties to {text wrap type:contour, text wrap offset:"1 mm"}
      end tell
   end tell
   tell origSel
      set clipping type of clipping path to none
   end tell
end tell
---
Gruss, Hans

Phs-Pfad als Textverdränger

Anonym
Beiträge gesamt: 22827

2. Aug 2008, 09:56
Bewertung:

gelesen: 1445

Beitrag als Lesezeichen
Hallo Hans,

Danke !!! - Es funktioniert.

herzlichen Gruss
willem