[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:
(2574 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: 12783

9. Jan 2015, 07:35
Beitrag # 2 von 4
Beitrag ID: #535728
Bewertung:
(2525 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.


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:
(2451 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:
(2343 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

PDF / Print
enfocus_300

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
17.04.2024

Online
Mittwoch, 17. Apr. 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!