[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt pageitem ist innerhalb eines scrollable frame?

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

pageitem ist innerhalb eines scrollable frame?

-hans-
Beiträge gesamt: 748

16. Sep 2014, 11:39
Beitrag # 1 von 7
Bewertung:
(1994 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

wie kann ich prüfen ob ein pageitem zum Inhalt eines scrollable Frame gehört? Find's nicht ... :(

ID CS6

(Dieser Beitrag wurde von -hans- am 16. Sep 2014, 11:40 geändert)
X

pageitem ist innerhalb eines scrollable frame?

Uwe Laubender
Beiträge gesamt: 5318

16. Sep 2014, 12:01
Beitrag # 2 von 7
Beitrag ID: #532071
Bewertung:
(1977 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Hans!
Hm. Nicht ganz so einfach. Du müsstest mit extractLabel() und den korrekten KeyStrings die Werte für "Scrollable Frames" auslesen.

Zudem müsstest Du wirklich alle infrage kommenden Container (splineItems) im Dokument untersuchen. Auch diejenigen in nicht-aktiven Stati von MSOs. Die Verschachtelungstiefe kann ja beliebig komplex sein.

Wie gehst Du die Sache am besten an?
Erzeuge mal ein "Scrollable Frame", exportiere das nach IDMS und untersuche den Code nach entsprechenden Key- und ValueStrings.

Bist Du fündig geworden, kannst Du mit extractLabel() alle infrage kommenden Objekte abgrasen und reagieren. Hast Du ein "Scrollable Frame" gefunden, brauchst Du "nur" noch über allPageItems zu loopen, und die IDs aller pageItems, die dort enhalten sind speichern (Array). Das dürfte die geschickteste Methode sein, da Du über itemByID() am direktesten Zugriff auf die Objekte bekommst.

Eine direktere Methode kenne ich nicht. Die Eigenschaft "Scrollable frame" ist keine Eigenschaft (property) des DOMs.

Mit welcher DPS-Version bist Du unterwegs?
Bei den KeyStrings kann es nämlich von DPS-Version zu DPS-Version Unterschiede geben…


als Antwort auf: [#532065]

pageitem ist innerhalb eines scrollable frame?

-hans-
Beiträge gesamt: 748

16. Sep 2014, 12:24
Beitrag # 3 von 7
Beitrag ID: #532075
Bewertung:
(1960 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe :),

hab's so kommen sehen ;-)

Momentan noch Version 31, aber aufgrund stetiger Aktualisierungen durch Adobe möchte ich auf die Methode mit extractLabel() verzichten. Ich muss mal sehen ob ich es anders denken kann ... ;-) es gibt immer einen Weg.

Es geht um ein eigenes 'liquid layout'.

Danke dir


als Antwort auf: [#532071]

pageitem ist innerhalb eines scrollable frame?

Uwe Laubender
Beiträge gesamt: 5318

16. Sep 2014, 17:19
Beitrag # 4 von 7
Beitrag ID: #532088
Bewertung:
(1908 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Hans-Gerd!

Sooo schlimm ist das ja auch nicht…
Die KeyString/ValueString-Werte sind seit einigen Versionen "stabil".

Die Methode alle DPS-Eigenschaften über insertLabel()/extractLabel() zu regeln ist wohl der Geschwindigkeit geschuldet mit der die DPS ursprünglich mal entwickelt wurde. Und jetzt kann Adobe da nicht mehr zurück… (meine persönliche Vermutung).

Wobei: Wirklich neue Features für die Erstellung von Folios (im Rahmen von InDesign) sind ja schon länger nicht mehr dazugekommen. Zeit wäre die letzten Jahre schon gewesen das InDesign-DOM für alle DPS-Funktionalitäten zu öffnen…

Außen rumprogrammieren?
Wie möchtest Du das denn anstellen? (Rhetorische Frage)
C++ ???

Kannst mir gerne mal eine PM zukommen lassen, wenn Du das nicht öffentlich kommunizieren möchtest. Ich bin jedenfalls gespannt!


als Antwort auf: [#532075]

pageitem ist innerhalb eines scrollable frame?

-hans-
Beiträge gesamt: 748

17. Sep 2014, 08:12
Beitrag # 5 von 7
Beitrag ID: #532099
Bewertung:
(1834 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

ich habe gestern damit begonnen einen gescripteten Weg auszuarbeiten um aus einem 1024x768_folio 1280x800- und 1600x900-Varianten zu erstellen. Ist ein Versuch und noch nicht weit gediehen :) Ziel ist es halt möglichst ohne Nacharbeit in Layouts hinzukommen ...

Das Problem mit dem Srollable Frame ist hier nicht wirklich von Relevanz, wäre nur praktisch gewesen ... :)

Danke für deinen Tatendurst! :)

Lieben Gruß


als Antwort auf: [#532088]

pageitem ist innerhalb eines scrollable frame?

Uwe Laubender
Beiträge gesamt: 5318

17. Sep 2014, 10:50
Beitrag # 6 von 7
Beitrag ID: #532106
Bewertung:
(1804 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Hans-Gerd!

Aha…

Noch etwas zur extractLabel()-Methode:
Mit InDesign CS5 und CS5.5 konnte man noch alle vorhandenen KeyStrings/ValueStrings auslesen!

Seit CS6 geht das nicht mehr. Das hat Adobe dann unmöglich gemacht. Mit Absicht, vermute ich mal.

Mal zum Testen für InDesign CS5 oder CS5.5 (ist aber leider Schnee von gestern):

Code
//InsertLabel_ExtractLabel_ALL-LABELS-OF-OBJECT_CS5_CS5.5_ONLY.jsx 
//Uwe Laubender

//ONLY POSSIBLE WITH InDesign CS5 and CS5.5 !!
/**
* @@@BUILDINFO@@@ InsertLabel_ExtractLabel_ALL-LABELS-OF-OBJECT_CS5_CS5.5_ONLY.jsx !Version! Tue May 20 2014 10:24:42 GMT+0200
*/

var d=app.documents[0];
var myRectangle = d.rectangles.add();

myRectangle.insertLabel("_1","Some Text A");
myRectangle.insertLabel("_2","Some Text B");
myRectangle.insertLabel("_3","Some Text C");

var myReturn = myRectangle.extractLabel(); //Array of Arrays
$.writeln(myReturn);
myReturn[0][0]; //Ergebnis: _1


//myReturn:
//Ergebnis: _1,Some Text A,_2,Some Text B,_3,Some Text C



Hab' mal spaßeshalber ein scrollable frame in InDesign CS5.5 erstellt und ausgelesen (ältere DPS-Version!). Hier das Ergebnis:

Code
/*Type,WebView,SS_WebViewOverlayContainer=,true,ScrollableFrameScrollDirection,2*/ 


Nur so als Beispiel. In einer neueren DPS-Version sieht das dann vermutlich anders aus.


als Antwort auf: [#532099]

pageitem ist innerhalb eines scrollable frame?

Uwe Laubender
Beiträge gesamt: 5318

17. Sep 2014, 10:52
Beitrag # 7 von 7
Beitrag ID: #532107
Bewertung:
(1801 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mit auslesen meinte ich natürlich eine Methode ohne die Keystrings zu kennen! Das ist ab CS6 nicht mehr möglich…


als Antwort auf: [#532106]
X