[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt <![CDATA[-Bug in ESTK CS5 und CS5.5

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

Uwe Laubender
Beiträge gesamt: 5000

9. Aug 2011, 12:25
Beitrag # 1 von 5
Bewertung:
(2437 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, zusammen!

Neulich stieß ich auf ein Problem bei Benutzung des ESTKs CS5 und CS5.5 in Verbindung mit InDesign. Andere Scripter sind auch schon darauf aufmerksam geworden:

http://forums.adobe.com/message/3147388#3147388
Bug or change in CS5 Extendscript Toolkit debugger or parser
(Beitrag vom 20.09.2010)

Der Bug ist auch in CS5.5 noch nicht behoben.

Bug-Beschreibung (soweit ich das verstanden habe und durch eigene Tests untermauern konnte):
Der "contents" eines Objekts (bei mir Tabellenzellen) wird falsch ausgelesen. Es entsteht ein Konstrukt, das aus "<![CDATA[" (o.ä.) plus dem eigentlichen Zelleninhalt besteht! (Siehe auch angehängten Screenshot.)

Anbei nun eine kleine Testdatei und ein Script, das diesen Bug provoziert.
Dazu noch diverse Versuche diesen Fehler zu beheben, indem ich dem ausgelesenen Contents einen weiteren String voranstelle.

Dies klappt nur unter bestimmten Voraussetzungen. Um mit den Ergebnissen weiterzuarbeiten (z.B. in einem Array) sollte der Hilfsstring wieder entfernt werden…

Im Anhang also eine IDML-Datei mit einem einfachen Textrahmen, der eine einfache Tabelle, deren Zelleninhalte ausgelesen werden sollen und per $.writeln() in die Konsole des ESTK geschrieben werden.

Ein Wort der Warnung: Wird der Bug ausgelöst, nützt es auch nichts das Script in InDesign CS5 oder CS5.5 zu starten, der Bug bleibt bestehen; hat sich also in der Scripting-Engine festgesetzt. Um "reinen Tisch" zu machen, sollte das ESTK und auch InDesign neu gestartet werden.

Der Fehler tritt nicht in ESTK/InDesign CS3 oder CS4 auf!

Code
//_Provoke_C-DATA_Error_110809-1.jsx 
//Uwe Laubender
//DESCRIPTION:Provokes C-DATA-Error when executed in ESTK of InDesign CS5 or CS5.5
//Voraussetzung: Textrahmen mit Tabelle ist angewählt:

_Provoke_C_DATA_Error()
function _Provoke_C_DATA_Error(){

var _d = app.activeDocument;
var _table = app.selection[0].parentStory.tables[0];
var _columns = _table.columns.everyItem().getElements();

for(var c = 0;c<1;c++){
var _cells = _columns[0].cells.everyItem().getElements();
for(var n=_cells.length-1;n>0;n--){

//Versuch 1:
//Provoziert den C-DATA-Error in InDesign CS5 ESTK und InDesign CS5.5 ESTK:
$.writeln(_cells[n].contents);

//Versuch 2:
//IMMER NOCH C-DATA-Error (leerer String, der dem Inhalt hinzugefügt wird):
//~ $.writeln(""+_cells[n].contents);

//Versuch 3:
//IMMER NOCH C-DATA-Error (Tabulator im String, der dem Inhalt hinzugefügt wird):
//~ $.writeln("\t"+_cells[n].contents);

//Versuch 4:
//KEIN C-DATA-Error mehr (Zeichen "Raute" im String, der dem Inhalt hinzugefügt wird):
//~ $.writeln("#"+_cells[n].contents);

//Versuch 5:
//KEIN C-DATA-Error mehr (EIN beliebiges Zeichen im String, der dem Inhalt hinzugefügt wird):
//~ $.writeln("a"+_cells[n].contents);

//In Komination Versuch 1 und Versuch 4 oder 5 wird der Fehler AUCH provoziert!!
//Der Fehler wird NICHT erzeugt, wenn das Script in InDesign ausgeführt wird. ES SEI DENN: es ist vorher im ESTK ausgeführt worden.
//Dies triggert offenbar die Scriping-Engine!

};
};

}; //Function _Provoke_C_DATA_Error ENDE


Gibt es noch andere Workarounds als
1. das ESTK nicht zu benutzen?
2. mit einem Hilfsstring zu arbeiten?

MacBook Pro 2.4GHz | OS X 10.5.8 | Adobe CS3/CS4/CS5/CS5.5 Design Premium
*****
Mit herzlichem Gruß,
Uwe Laubender

Anhang:
TEST_Inhalt_Spalte1_auslesen_C-DATA-FEHLER.idml (34.7 KB)   C-DATA-Bug_ESTK_Konsole.png (36.6 KB)
X

WernerPerplies
Beiträge gesamt: 2660

9. Aug 2011, 13:20
Beitrag # 2 von 5
Beitrag ID: #477765
Bewertung:
(2419 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

Du machst mir Angst! ;-)

Jetzt habe ich für meine Kalenderanwendung jede Menge Tabellenzellen ausgelesen und kein Problem gehabt.

Und Dein Code provoziert bei direkt den beschriebenen Effekt.

Ich werde mir jetzt mal die Unterschiede ansehen.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign Alle neuen Skripte mit
neu: WpsProjectHandler 31.05.2020, Version 3.XX, neue Funktionen.
MultiSave ist Bestandteil meines WpsProjecthandlers
Kundenstimmen


als Antwort auf: [#477756]

WernerPerplies
Beiträge gesamt: 2660

9. Aug 2011, 13:42
Beitrag # 3 von 5
Beitrag ID: #477770
Bewertung:
(2409 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

wäre das eine Lösung?
Code
_Provoke_C_DATA_Error()  
function _Provoke_C_DATA_Error(){

var _d = app.activeDocument;
var _table = app.selection[0].parentStory.tables[0];
var _columns = _table.columns.everyItem().getElements();

for(var c = 0;c<1;c++){
var _cells = _columns[0].cells.everyItem().getElements();
for(var n=_cells.length-1;n>0;n--)
{
if (_cells[n].contents.length>0) $.writeln(_cells[n].contents);
};
};

}; //Function _Provoke_C_DATA_Error ENDE


Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign Alle neuen Skripte mit
neu: WpsProjectHandler 31.05.2020, Version 3.XX, neue Funktionen.
MultiSave ist Bestandteil meines WpsProjecthandlers
Kundenstimmen


als Antwort auf: [#477756]

Uwe Laubender
Beiträge gesamt: 5000

9. Aug 2011, 14:15
Beitrag # 4 von 5
Beitrag ID: #477773
Bewertung:
(2396 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Werner!

Ja, das wäre eine Lösung. Danke.
Man muß schon höllisch aufpassen…

MacBook Pro 2.4GHz | OS X 10.5.8 | Adobe CS3/CS4/CS5/CS5.5 Design Premium
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#477770]

Uwe Laubender
Beiträge gesamt: 5000

19. Jun 2012, 10:59
Beitrag # 5 von 5
Beitrag ID: #496683
Bewertung:
(2047 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, zusammen!
Es scheint als sei dieser Bug mit dem neuen ESTK für die CS6 behoben.
Ich bitte diejenigen unter euch, die das CS6 ESTK installiert haben, das mal auszuprobieren.

Als Kombination: CS6 ESTK zusammen mit InDesign CS5, CS5.5 und CS6.
Der Fehler dürfte nicht mehr auftreten.

Mit dem ESTK (3.5.1.59) für die CS5.5 in Kombination mit InDesign CS5, CS5.5 und CS6 tritt der Fehler in Erscheinung. Jedenfalls bei mir.
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#477756]
X

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
05.02.2021 - 05.11.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 05. Feb. 2021, 13.00 Uhr - Freitag, 05. Nov. 2021, 17.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

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

digicomp.ch/d/9PM

Veranstaltungen
09.09.2021 - 17.12.2021

Digicomp Academy, Zürich
Donnerstag, 09. Sept. 2021, 13.00 Uhr - Freitag, 17. Dez. 2021, 19.00 Uhr

Lehrgang

Steigen Sie in die Welt des Publishings ein und erlangen Sie die Zertifizierung von Publishing NETWORK. Lernen Sie in diesem Lehrgang Druckmedien professionell zu erarbeiten, druckfertige PDFs zu erstellen und CI/CD-Vorgaben umzusetzen.

Preis: 6'300.– zzgl. 7.7% MWST
Dauer: 18 Tage(ca. 126 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt.

Ja

Organisator: Digicomp Academy AG

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