vielen Dank erstmal für Deine zuvorkommende Hilfe, dass habe ich so noch nicht erlebt - ich bin begeistert. Es folgen die zwei Fragen in neutraler Form (für die die den anderen Thread nicht kennen).
Mein Ziel ist es in drei Stufen (3 Skripte die letztendlich zu einem vereinigt werden) ein Indesign-Dokument so zu verändern, dass vorliegende Rahmen und Objekte webbrowser-tauglich sind (1). Dazu nutze ich das Skript "prepare.jsx" - es entfernt Spalten aus Textrahmen, Rahmenüberfließenden Text und legt Absatz- und Zeichenstilvorlagen (für CSS) an. Dann exportiere ich in (2) "export.jsx" alle Koordinaten, Größen und sonstigen Parameter in einen JSON-String, außerdem exportiere ich alle Stories in INDD-tagged-text XML-Dokumente. Der letzte Teil des JSON-Strings ist eine Sammlung der Absatz- und Zeichenstilvorgaben, die ich mit prepare fixiert habe. In Teil (3) sammele ich eigentlich nur noch die Fonts (TTF, OTF) und Bilder. Alle Exporte werden zusammen auf einen Webserver geladen und durch PHP geparst, was letztendlich zur Darstellung des Druckbogens/der Seiten im Web führt.
1. Frage) Zuvor habe ich dieses Thema über IDML und XSLT gelöst, wobei die Reihenfolge der Tags (Rectangle, TextFrame, etc.) unabhängig von der Ebene gleichzeitig die vertikale Reihenfolge der Objekte beginnend mit dem untersten wiedergab. In meinem Skript "export.jsx" werden die Objekte, jedoch nach Typ im JSON-String aufgeführt, womit ich die Reihenfolge zerstöre. Es wäre notwendig eine entweder eine Reihenfolge per Nummer gesondert zu speichern oder die Objekte nicht sortiert auszugeben.
2. Frage) Die folgende Funktion aus "export.jsx" sammelt Namen und Parameter von Absatzstilvorlagen, sobald ich mehr als einen Parameter einkommentiere, läuft das Skript in einen Stapelüberlauf. Warum, es sind schon einige Daten, aber das sollte so nicht vorkommen?
Code: Alles auswählen
function doStylesProperty( /*document*/ document) {
try {
var paragraphStyles = document.paragraphStyles;
var numberOfParagraphs = paragraphStyles.length;
var obj_paragraphs = new Array(numberOfParagraphs);
for (var i = 0; i < numberOfParagraphs; i++) {
obj_paragraphs[i] = {
paragraphStyleName : paragraphStyles[i].name,
/*appliedFont : paragraphStyles[i].appliedFont,
appliedLanguage : paragraphStyles[i].appliedLanguage,
fillColor : paragraphStyles[i].fillColor,
fontStyle : paragraphStyles[i].fontStyle,
horizontalScale : paragraphStyles[i].horizontalScale,
hyphenWeight : paragraphStyles[i].hyphenWeight,
hyphenateAcrossColumns : paragraphStyles[i].hyphenateAcrossColumns,
hyphenateAfterFirst : paragraphStyles[i].hyphenateAfterFirst,
hyphenateBeforeLast : paragraphStyles[i].hyphenateBeforeLast,
hyphenateCapitalizedWords : paragraphStyles[i].hyphenateCapitalizedWords,
hyphenateLadderLimit : paragraphStyles[i].hyphenateLadderLimit,
hyphenateLastWord : paragraphStyles[i].hyphenateLastWord,
hyphenateWordsLongerThan : paragraphStyles[i].hyphenateWordsLongerThan,
hyphenation : paragraphStyles[i].hyphenation,
hyphenationZone : paragraphStyles[i].hyphenationZone,
justification : paragraphStyles[i].justification,
leftIndent : paragraphStyles[i].leftIndent,
pointSize : paragraphStyles[i].pointSize,
rightIndent : paragraphStyles[i].rightIndent,
spaceAfter : paragraphStyles[i].spaceAfter,
spaceBefore : paragraphStyles[i].spaceBefore,
strikeThru : paragraphStyles[i].strikeThru,
underline : paragraphStyles[i].underline,
verticalScale : paragraphStyles[i].verticalScale*/
}
}
} catch (error) {
alert(error);
}
return obj_paragraphs;
}
LG Dominik