[GastForen Programmierung/Entwicklung JavaScript Namen aller Elemente eines InDesign Dokumentes in Array schreiben

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Namen aller Elemente eines InDesign Dokumentes in Array schreiben

Udo Göpfert
Beiträge gesamt: 15

8. Jan 2015, 18:38
Beitrag # 1 von 4
Bewertung:
(2053 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo

Ich arbeite an einem Skript das ein Indesign-Dokument nach mehrfach verwendeten Namen von platzierten Elemente sucht.

Das Skript arbeitet soweit ganz gut.
Ich habe jedoch ein Performance Problem.
Die zu bearbeitenden Dokumente haben mehrere hundert Elemete.

Das nachstehende Skript benötigt für das Einlesen von 850 Elementen auf 250 Ebenen ca. 30 Sekunden.
Die große Anzahl der Ebenen für Templating benötigt.

ich arbeite InDesign CS6. (Win + MAC)

Gibt es eine schnellere bzw. effektivere Möglichkeit?

LG Udo

Code
// Objekte einlesen 
var objekte = new Array();
for (var i = 0; i < doc.pageItems.length; i++)
{
objekte.push(doc.pageItems.item(i).name);
}


(Dieser Beitrag wurde von Udo Göpfert am 8. Jan 2015, 18:41 geändert)
X

Namen aller Elemente eines InDesign Dokumentes in Array schreiben

Martin Fischer
Beiträge gesamt: 12398

9. Jan 2015, 07:35
Beitrag # 2 von 4
Beitrag ID: #535728
Bewertung:
(2004 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Udo,

eine Alternative zum push()-Befehl wäre die zählerbasierte Zuweisung der Array-Elemente:

Code
var objekte = new Array();  
for (var i = 0; i < doc.pageItems.length; i++)
{
objekte[i] = doc.pageItems.item(i).name;
}


Da es sich bei den pageItems (anders als bei allPageItems) um eine Kollektion handelt, ginge alternativ auch

Code
var pi_names = doc.pageItems.everyItem().name; 


Dies dürfte die schnellste Methode sein.

Viele Grüße
Martin




als Antwort auf: [#535727]

Namen aller Elemente eines InDesign Dokumentes in Array schreiben

Udo Göpfert
Beiträge gesamt: 15

10. Jan 2015, 19:09
Beitrag # 3 von 4
Beitrag ID: #535776
Bewertung:
(1930 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin

Danke für den Programmschnipsel.
Die Zeit zum Einlesen aller 850 Objekte aus dem Beispiel ist jetzt vernachlässigbar.
Es ist also die schnellste Methode.

LG Udo


als Antwort auf: [#535728]

Namen aller Elemente eines InDesign Dokumentes in Array schreiben

kzfi
Beiträge gesamt:

17. Jan 2015, 12:40
Beitrag # 4 von 4
Beitrag ID: #536054
Bewertung:
(1822 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Udo,

Caching die length des Arrays ist schneller als kalkurieren bei jeder iteration

Code
for (var i = 0; c = doc.pageItems.length; i < c; i++) 


kzfi


als Antwort auf: [#535727]
X

Aktuell

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
26.01.2021 - 27.01.2021

Digicomp Academy AG, Zürich oder virtuell
Dienstag, 26. Jan. 2021, 08.30 Uhr - Mittwoch, 27. Jan. 2021, 17.00 Uhr

Kurs

In diesem Advanced-Kurs erlernen Sie weitergehende Methoden im Dokumentenaufbau, der Typografie und im Bereich Layouttechniken. Nach diesem Kurs können Sie strukturierte Dokumente erstellen oder bestehende effizienter anpassen.

Dauer: 2 Tage
Preis: CHF 1'400.–

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/INDEM2

Veranstaltungen
27.01.2021 - 28.01.2021

Digicomp Academy AG, Bern oder Basel
Mittwoch, 27. Jan. 2021, 08.30 Uhr - Donnerstag, 28. Jan. 2021, 17.00 Uhr

Kurs

Mit After Effects können Sie visuelle Effekte und Animationen für Video, Web, DVD und Blu-Ray erzeugen. In diesem Kurs lernen Sie die Grundlagen kennen und sehen inspirierende Anwendungsbeispiele, die Ihnen helfen, Ihre eigenen Ideen umzusetzen.

Preis: CHF 1'700.-
Dauer: 2 Tage

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/AFT

Neuste Foreneinträge


Text- oder Grafikrahmen nach Position und Größe suchen und ändern

Absätze vor/nach AF suchen

Laser Drucker druckt schwarze Flecken Links und Rechts von Blatt

Gleich Große Icons erstellen

PSD CS6 (!) Mac: Dialog "Dateiinformationen" Fenster leer und Sackgasse

Langsamer MacMini

Illustrator Skript Übersatztext - Hilfe benötigt

ID CC 2019 und 2020: Crash beim Startvorgang - 2021

Inhalt Textrahmen verbinden

iPhone Farbprofil
medienjobs