[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:
(2120 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: 12668

15. Mär 2007, 16:30
Beitrag # 2 von 6
Beitrag ID: #281935
Bewertung:
(2105 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:
(2102 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: 12668

15. Mär 2007, 16:48
Beitrag # 4 von 6
Beitrag ID: #281944
Bewertung:
(2098 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:
(2079 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:
(2038 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

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/

Veranstaltungen
01.03.2023 - 09.03.2023

Online
Mittwoch, 01. März 2023, 00.00 Uhr - Donnerstag, 09. März 2023, 00.00 Uhr

Online Webinar

Wie gehen wir mit diesen Veränderungen um? Was ist notwendig, damit wir die Digitalisierung im Unternehmen klappt? Veränderungsprozesse verstehen und entsprechend handeln Mitarbeiter als Botschafter Webseite mit WordPress erstellen SEA /SEO (Ads aufschalten)

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: B. Isik, E-Mailinfo AT snfa DOT ch

https://www.fernstudiumfitness.ch/digitalisierung-schweiz/