[GastForen Programme Print/Bildbearbeitung Adobe InDesign Seite per Script auswählen (select)

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

Seite per Script auswählen (select)

flingeflung
Beiträge gesamt: 40

15. Mär 2007, 15:53
Beitrag # 1 von 6
Bewertung:
(2217 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,

ich möchte per Script innerhalb einer Story über eine Schleife Absatz für Absatz anspringen und darin bestimmte Dinge ändern können. Per Dialogfenster möchte ich dem Benutzer die Möglichkeit geben, das Gefundene zu ändern oder auch nicht. Dazu muss aber InDesign zu der Seite springen, wo sich das Objekt der Begierde befindet.

Mit ...
Code
Set thispara = mystory.Paragraphs.Item(i) 
thispara.Select

wird zwar der entsprechende Absatz markiert, aber nicht zugleich die Seite. Wie kann ich die übergeordnete Seite ansprechen, auf der sich z. B. ein bestimmter Absatz befindet?
VB wäre nett, JS ist aber auch ok.

Thanx
Ralf
X

Seite per Script auswählen (select)

Martin Fischer
  
Beiträge gesamt: 12783

15. Mär 2007, 16:30
Beitrag # 2 von 6
Beitrag ID: #281935
Bewertung:
(2202 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Befindet sich Dein Absatz in einem Textrahmen auf einer Seite (unverschachtelt) mußt Du vom gefundenen Absatz aus zwei Eltern hochklettern.

In JavaScript sieht das etwa so aus.
Code
var myPage = myPara.parentTextFrames[0].parent; 


Kommen Verschachtelungen (Textrahmen in Textrahmen) ins Spiel, hilft Dir eine rekursive Funktion wie folgende JS-Funktion (wobei hier Tabellen noch vernachlässigt sind):

Code
function getPage(myObject)    
{
if (!myObject) {
alert("Overflow!")
exit();
}
if ((myObject.constructor.name == "Page") || (myObject.constructor.name == "Spread"))
return myObject
if ((myObject.constructor.name == "Character")
|| (myObject.constructor.name == "InsertionPoint")
|| (myObject.constructor.name == "Word")
|| (myObject.constructor.name == "Line")
|| (myObject.constructor.name == "TextRange"))
{
if ((app.version +"").substr(0,1) == "4") return getPage(myObject.parentTextFrames[0])
else if ((app.version +"").substr(0,1) == "3") return getPage(myObject.parentTextFrame)
}
return getPage(myObject.parent)
}



als Antwort auf: [#281918]
(Dieser Beitrag wurde von Martin Fischer am 1. Jul 2007, 21:41 geändert)

Seite per Script auswählen (select)

flingeflung
Beiträge gesamt: 40

15. Mär 2007, 16:41
Beitrag # 3 von 6
Beitrag ID: #281940
Bewertung:
(2199 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke schonmal,

das mit den Markieren (per select) klappt schon ganz gut, aber die betreffende Seite wird dabei trotzdem nicht angesprungen *snirg*.

Hast du dafür noch einen Tipp?

Gruß
Ralf


als Antwort auf: [#281935]

Seite per Script auswählen (select)

Martin Fischer
  
Beiträge gesamt: 12783

15. Mär 2007, 16:48
Beitrag # 4 von 6
Beitrag ID: #281944
Bewertung:
(2195 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Versuche mal die Auswahl heranzuzoomen.

Dave Saunders hat diese Methode in seiner Funktion selectIt() verwendet.
Code
function selectIt(theObj)  
{
// Selects object, turns to page and zooms in on it
app.select(theObj,SelectionOptions.replaceWith);
app.activeWindow.zoomPercentage = 200;
app.activeWindow.zoom(ZoomOptions.fitPage);
}


Alternativ kannst Du z.B. Seite 6 über folgenden JS-Code anspringen:
Code
app.activeWindow.activePage = app.activeDocument.pages[5] 



als Antwort auf: [#281940]
(Dieser Beitrag wurde von Martin Fischer am 15. Mär 2007, 16:51 geändert)

Seite per Script auswählen (select)

flingeflung
Beiträge gesamt: 40

15. Mär 2007, 17:52
Beitrag # 5 von 6
Beitrag ID: #281980
Bewertung:
(2176 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

es ist nicht so einfach, die entsprechenden VB-Befehle zu adaptieren *seufz*

so gehts in VB:
Code
thepara=mystory.Paragraphs.Item(i) 
myInDesign.ActiveWindow.Select thepara
myInDesign.ActiveWindow.ZoomPercentage = 200
myInDesign.ActiveWindow.Zoom idZoomOptions.idFitPage


Vielen Dank, dein Beispiel hat mich auf die Spur gebracht!

Gruß
Ralf


als Antwort auf: [#281944]

Seite per Script auswählen (select)

flingeflung
Beiträge gesamt: 40

19. Mär 2007, 15:54
Beitrag # 6 von 6
Beitrag ID: #282594
Bewertung:
(2135 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallöle,

nachdem mir schließlich doch noch mit der Markierung (http://www.hilfdirselbst.ch/...;;page=unread#unread)
geholfen werden konnte und ich die Seite bzw. sogar den Text mit dem betreffenden Text heranzoomen kann (siehe oben), taucht ein neues, zwar kleines, aber nichtsdestotrotz lästiges Problem auf:

Der Text wird also markiert und herangezoomt (auf 200%), und dabei gleich zentriert. Leider legt sich nun aber meine kleine Dialogbox ("Benutzer, willst du hier wirklich blablabla"), ebenfalls zentriert, genau über den markierten Textabschnitt. So muss man die Dialogbox jedes Mal ein Stück verschieben, um den markierten Text sehen zu können. Bei je nach Dokument 50-100 Vorkommen kann das schon ziemlich nerven.

Gibt es die Möglichkeit, das Dokument ein klein wenig nach unten zu scrollen? Oder sonst eine Lösung, um das Problem zu umgehen?

Mit
Code
myInDesign.ActiveWindow.Zoom idZoomOptions.idFitPage 

verschiebt sich das Ganze zwar, ist mir dann aber insgesamt zu klein.

Grüße
Ralf


als Antwort auf: [#281980]
X