[GastForen Programme Print/Bildbearbeitung Adobe InDesign

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

Marginalien via Tags automatisch in Textrahmen verschieben

Imion
Beiträge gesamt: 141

12. Feb 2008, 14:23
Bewertung:

gelesen: 5040

Beitrag als Lesezeichen
Hallo zusammen,

ich hoffe es ist in Ordnung, dass ich mich hier anschließe. Solch ein Sktipt habe ich nun auf der Basis des hier vorgestellten aufgebaut und für unsere Zwecke angepasst. Es funktioniert wunderbar und ich möchte mich bei allen Beteiligten bedanken, ich habe viel dadurch gelernt.

Nun erstelle ich gerade ein zweites Skript, welches global alle XML Tags durchläuft und die größen der Rahmen, egal ob Bilder oder Texte. Diesen Wert wende ich dann beim nächsten Objekt an, eshandelt sich um viele Rahmen die als verankerte Objekte in einem Fließtext eingebunden sind und über Objektstile ausgerichtet wurden, um dessen "y Versatz" Wert um die Höhe des vorhergehenden Rahmens zu verändern.

Das Funktioniert auch, solange der Rahmen, dessen Wert ich abgreifen möchte nicht einer von denen ist, die mit dem MarginalienScript erzeugt wurden. Ich bekomme zwar einen Wert, dieser ist aber die Höhe des Rahmens, in dem sich alle verankerten Objekte befinden und nicht der des neu erzeugten Rahmens.

Kann mir jemand sagen wo bei mir der Fehler liegt? Das wäre super.

Code
var objectHeight; 

traversexmlelements(app.activeDocument);
function traversexmlelements(elm){
var i;
for (i = 0; i < elm.xmlElements.length; i++){
if (elm.xmlElements[i].markupTag.name == "Artikelgruppe")
{
$.writeln("Artikelgruppe");
}
if (elm.xmlElements[i].markupTag.name == "Fotografie-Produktbild")
{
dothething(elm.xmlElements[i]);
}
if(elm.xmlElements[i].markupTag.name == "Fotografie-Schmuckbild")
{
dothething(elm.xmlElements[i]);
}
if(elm.xmlElements[i].markupTag.name == "Artikelgruppenname")
{
dothething(elm.texts[i].parentTextFrames[i]);
}
if(elm.xmlElements[i].markupTag.name == "Artikelgruppentext")
{
dothething(elm.xmlElements[i]);
}
if(elm.xmlElements[i].markupTag.name == "Guetesiegel")
{
dothething(elm.xmlElements[i]);
}
if(elm.xmlElements[i].markupTag.name == "Logo")
{
dothething(elm.xmlElements[i]);
}
traversexmlelements(elm.xmlElements[i]);
}
}

function dothething(elm){
var obj = null;
if (elm.pageItems.length != 0){
obj = elm;
} else if (elm.images.length !=0 ){
obj = elm.xmlContent.parent;
} else if (elm.epss.length != 0){
obj = elm.xmlContent.parent;
} else if (elm.pdfs.length !=0){
obj = elm.xmlContent.parent;
} else if (elm.texts.length !=0){
obj = elm.xmlContent.parent;
}
if (obj != null){
if(objectHeight)
{
obj.anchoredObjectSettings.anchorYoffset = objectHeight;
}
objectHeight = obj.geometricBounds[2] - obj.geometricBounds[0];
//alert(objectHeight);
}
}


(Dieser Beitrag wurde von Martin Fischer am 12. Feb 2008, 14:29 geändert)
Änderungsverlauf:
Beitrag geändert von Martin Fischer (Moderator) am 12. Feb 2008, 14:29: Variable [i] korrigiert