[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Seitenzahl für Tabellenzelleninhalt ermitteln

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

Seitenzahl für Tabellenzelleninhalt ermitteln

Dude
Beiträge gesamt: 63

28. Jul 2010, 11:45
Beitrag # 1 von 3
Bewertung:
(3498 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich suche ein Möglichkeit mittels JS-Skript die aktuelle Seitenzahl für spezifische Tabellenzelleninhalte zu ermitteln.

Um die aktuelle Seite zu ermitteln verwende ich folgenden code, der ursprünglich, soweit mir noch bekannt, von Teus de Jong stammt
Code
Object.prototype.getTextFrame = function(){ 
try{
if (APP_VERSION > 3){
return(this.parentTextFrames[0]);
}else{
return(this.parentTextFrame);
}
}catch(exeption){
alert(exeption);
}
return(null);
}


Object.prototype.getPage = function(){
try{
switch(this.parent.constructor.name){
case "Page" :
return(this.parent);
break;
case "Spread" :
return(null);
break;
case "Story" :
return(this.getTextFrame().getPage());
break;
case "Character" :
return(this.parent.getTextFrame().getPage());
break;
default:
return(this.parent.getPage());
break;
}
}catch(exeption){
alert(exeption);
}
return(null);
}


Für Tabellenzellen trifft der default Fall zu, und gibt mir letztendlich immer den Anfangspunkt der Tabelle zurück. Wenn die Tabelle aber umbricht auf eine oder mehrere Seiten, ist der Tabellenanfang nicht immer richtig.

Hat jemand eine Idee wie ich diesen Fall abdecken kann. InDesign müsste dies grundsätzlich ja können, da dynamische Querverweise die richtige Seitenzahl anzeigen.
X

Seitenzahl für Tabellenzelleninhalt ermitteln

Martin Fischer
  
Beiträge gesamt: 12783

28. Jul 2010, 12:29
Beitrag # 2 von 3
Beitrag ID: #447665
Bewertung:
(3470 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Daniel,

Zitat Hat jemand eine Idee wie ich diesen Fall abdecken kann. InDesign müsste dies grundsätzlich ja können, da dynamische Querverweise die richtige Seitenzahl anzeigen.


Wie die Querverweise die Seitenzahl aus einer Tabellenzelle ermitteln entzieht sich meiner Kenntnis.

Ein Workaround für's Skripten: Laß einen 'Luftballon' steigen. ;-)

Im Ernst: füge an der entsprechenden Stelle temporär einen verankerten Rahmen ein, löse diesen und ermittle die Seite des gelösten Rahmens. Den Rahmen kannst Du anschließend wieder löschen.

Eine andere Methode ist mir nicht bekannt.


als Antwort auf: [#447659]

Seitenzahl für Tabellenzelleninhalt ermitteln

Dude
Beiträge gesamt: 63

28. Jul 2010, 15:15
Beitrag # 3 von 3
Beitrag ID: #447684
Bewertung:
(3441 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

danke für die Anregung, ist zwar ein ziemlich kruder Workaround, aber wenigstens funktioniert er ;-)

Für alle die es interessiert hier die erweiterte, funktionierende Fassung:
Code
var APP_VERSION = parseInt(app.version); 

Object.prototype.getTextFrame = function(){
try{
if (APP_VERSION > 3){
return(this.parentTextFrames[0]);
}else{
return(this.parentTextFrame);
}
}catch(exeption){
alert(exeption);
}
return(null);
}


Object.prototype.getPage = function(){
try{
switch(this.parent.constructor.name){
case "Page" :
return(this.parent);
break;
case "Spread" :
return(null);
break;
case "Story" :
return(this.getTextFrame().getPage());
break;
case "Character" :
return(this.parent.getTextFrame().getPage());
break;
case "Cell" :
return(this.parent.getPageOfAnchoredFrame());
break;
default:
return(this.parent.getPage());
break;
}
}catch(exeption){
alert(exeption);
}
return(null);
}

Cell.prototype.getPageOfAnchoredFrame = function(){
var frame = this.insertionPoints.lastItem().textFrames.add();
frame.anchoredObjectSettings.releaseAnchoredObject();
var page = frame.getPage();
frame.remove();
return(page);
}



als Antwort auf: [#447665]
(Dieser Beitrag wurde von Dude am 28. Jul 2010, 15:21 geändert)