Version Kurzbeschreibung Beschreibung Datum
5300

28.04.2014

Bug 3523 - Absturz bei table::colorize

Die Anweisung funktioniert eigentlich - außer wenn der angegebene Zellbereich innerhalb eines Zellverbundes anfängt und/oder endet. Dann beendet sich InDesign® mit der Meldung "Ein schwerwiegender Fehler".

Ist gefixt.

25.04.2014
Bug 3522 - Rahmen werden in normalen Dokumenten als Seitenelemente angezeigt

In Dokumenten werden manchmal Rahmen auch dann als Seitenelemente dargestellt, wenn das Dokument gar kein Seitentemplate ist.

Es handelt sich hierbei um Dokumente, die OHNE Comet-Plugins erstellt wurden (Das soll ja immer mal wieder vorkommen). Öffnet man diese Dokumente später mit Comet-Plugins, sind natürlich alle Rahmeneigenschaften, die durch Comet-Plugins gesetzt werden können, undefiniert. Genauer : Undefiniert sind sie nicht, sie bekommen DEFAULT-Werte. Im Fall der Seitenelemente war ein Wert falsch und konnte dann von den Plugins mißverständlich interpretiert werden.

Das ist gefixt.

Workaround

Fly-Out-Menü "Dokument (nicht) als Seitentemplate verwenden" der Palette "Seitentemplates" ZWEIMAL ausführen. (Nicht erschrecken : Beim ersten Mal werden ALLE Rahmen zu Seitenelementen. Beim zweiten Mal ist dann alles richtig.)

25.04.2014
Bug 3521 - Absturz InDesign® beim "Druckbogen Duplizieren"

Beim Duplizieren von Druckbogen stürzt InDesign® ab. (auch mit CS 6 getestet, ebenfalls Absturz der Anwendung.) Wenn die comet Plugins rausgenommen werden, dann geht es.

Nach Neustart von InDesign® kommt eine Fehlermeldung, das ein Text entfernt wird. (Es kommen noch weitere Meldungen, aber alle haben den gleichen Sachverhalt.) Wenn man nach dem Text sucht, dann wird er auch angezeigt, als leerer Platzhalter Aber er kann nicht sichtbar gemacht werden oder verlässlich gelöscht werden.

Die Fehlermeldung hat definitiv nichts mit dem Bug zu tun. An der gemeldeten Stelle ist alles in Ordnung. Der Absturz passiert höchstwahrscheinlich dadurch, dass InDesign® den Dialog, der auch noch vollkommen falsch ist, mehrfach öffnen will - das führt ja immer zum Absturz.

Verursacht wird das Verhalten durch einen anderen Fehler von InDesign®, der dazu führt, dass freigestellte Musterseiten-Einträge nicht richtig ersetzt werden, wenn Musterseiten neu zugewiesen werden (siehe hierzu Bug 3255). Der Workaround um diesen Bug führt jetzt zu dem merkwürdigen Verhalten von InDesign® beim Duplizieren von Spreads. (Wahscheinlich kommt hier durch das explizite Löschen freigestellter Musterseiten-Einträge irgendeine interne Rahmenliste durcheinander.)

Der Fehler ist gefixt.

Workaround:

     Seiten
         Rahmen fr
            frame::set_script_tag (fr, "", "Comet_Masteritem");

Achtung : Damit ist dann aber die Wirkung des Fixes von Bug 3255 ausgehebelt!

22.04.2014
5234

05.03.2014

Bug 3485 - Abbruch der Aufgaben-Palette-Suche zerstört Platzhalter des Dokumentes

Wenn man in der Aufgaben-Palette die Lupe drückt, erscheint möglicherweise ein Progress-Balken. Der Balken hat ein Abbrechen-Button. Wenn man das drückt, gehen Platzhalter im Dokument verloren.

Man kann das sehr einfach reproduzieren. Man muß tatsächlich nur mal die Suche abbrechen. Dann klickt man irgendwo ins Dokument - dort fehlen jetzt nicht überall, aber doch über weite Strecken alle Textplatzhalter. Und diese Aktion ist auch nicht rückgängig zu machen!

Dieser Fehler tritt nur im Umgang mit der Aufgabenliste auf. Grund des Fehlers ist, dass wir den von Adobe präferierten Vorschlag für das Abbrechen von Aktionen verwendet haben. Dies hat sich im Kontext der Aufgabenliste als fatal herausgestellt.

Der Fehler ist gefixt.

14.02.2014
5115

03.12.2013

Keine änderungen in dieser Version 01.12.2013
5050

26.11.2013

Bug 3431 - Absturz beim ändern der Meta-Daten von Templates Befindet sich in der Auswahl der Templates ein Ordner-Eintrag (Domain oder Domain:Typ) stürzt InDesign® ab, wenn man die Meta-Daten (Button Blauer Kreis) dieser Einträge ändern will.

    

Das passiert jetzt nicht mehr.

22.11.2013
5011

15.11.2013

Bug 3392 - Absturz bei mehrfachem Einsetzen eines Preview-Snippets

Ich ersetze eine Rahmenauswahl eines Dokuments durch Snippet der Preview-Palette. Das funktioniert ordentlich. Verwende ich das gleiche Snippet noch einmal, um eine andere Rahmenauswahl zu ersetzen, stürzt InDesign® ab.

Der Absturz passiert nur dann, wenn ich das Snippet-Button verwende.

Der Fehler ist gefixt.

26.10.2013
Bug 3385 - Absturz beim Sichern von Templates mit Textketten

Wenn ein Template eine Textverkettung enthält, stürzt InDesign® beim Sichern des Templates ab.

In älteren CS-Versionen wurden Textverkettungen nicht automatisch mit ins Template übernommen. Wir haben die Textketten deshalb beim Sichern des Templates selbst übertragen. Inziwschen werden die Textketten automatisch von InDesign® übernommen und der Versuch, eine bestehende Verkettung zu verketten hat zum Absturz geführt.

Das ist gefixt.

15.10.2013
4616

10.10.2013

10.10.2013
4600

03.10.2013

Bug 3366 - Fehler "SQLPrepareW [1]" bei ODBC-Verbindungen

Seit R4444 produziert die Datenbank hin und wieder den Fehler 22025:

SQLPrepareW [1] # [OpenLink][ODBC][Express Edition]Invalid SQL statement or JDBC escape, terminating '"' not found., SQLSTATE=22025

Merkwürdigerweise steht aber vor dieser Logmeldung gar keine Anweisung, die diesen Fehler produziert haben könnte.

Das ist gefixt.

Workaround

Die Datenbank der Verbindung (also etwa comet_config) nicht im Login-Dialog setzen sondern in der odbc.ini.

12.09.2013
4444

05.09.2013

svn 4454

Bug 3358 - items.xml enthält keine Gestaltungsebenen

In der items.xml der Produkte des Dokumentes fehlt leider die Angabe der Gestaltungsebenen für die Seitentemplates.

Der Wert wird jetzt übergeben und auch wieder übernommen. Das entsprechende Attribut heißt :

<layout_layers>

Das Attribut ist leer für alle Produkte. In Seitentemplates enthält es die Ebenen. Die Angaben müssen in Anführingszeichen gesetzt und mit Blanks getrennt werden.

Folgende Schlüsselworte sind möglich:

ab++#--except EBENEN_NAME
ab++#--behind EBENEN_NAME
ab++#--background

Ein gültiger Inhalt wäre das Folgende. Als Gestaltungsebenen werden dann aaa, bbb und alle Ebenen hinter Mein letzter Inhalt angesehen.

"aaa" "bbb" "ab++#--behind Mein letzter Inhalt"

05.09.2013
Bug 3357 - items.xml ohne pageType

Leider gibt es im Items-XML kein pageType-Attribute:

<item>
	<ID>7</ID>
	<ID2>0</ID2>
	<ID3>0</ID3>
	<stringID/>
	<pageitemID>0</pageitemID>
	<document-position>-1</document-position>
	<classID>0</classID>
	<groupID>0</groupID>
	<type>pagetemplate</type>
	<status>normal</status>
</item>

Der Fehler ist gefixt. Zusätzlich sind weitere Felder hinzugekommen:

elementid
pre_ruleid
pre_ruleparams
post_ruleid
post_ruleparams

Die Werte können nicht über Palette gesetzt werden, müssen aber durchgereicht werden.

04.09.2013
Bug 3347 - Seitenwechsel per eingefügten Pagetemplates funktionieren nicht richtig, wenn das Pageitem eine InDesign®-Gruppe enthält

Hi Paul,

  • er nehme zwei Rahmen und mache eine InDesign®-Gruppe daraus. Daraus mache er ein Template.
  • Er möge X Produkte damit aufbauen und in der "Produkte des Dokumentes - Palette" jeweils ein Pagetemplate dazwischen einfügen, was eine linke Seite erzwingt.
  • Er möge reorganisieren.

Wie erwartet verteilen sich jetzt die X Produkte auf jeweils einer linken Seite. Aber die "Produkte des Dokumentes - Palette" sieht jetzt die eingef. Pagetemplates nicht mehr! o_O

Nach erneutem Reorganisieren liegen dann wieder alle Produkte auf einer Seite. Die Pagetemplates sind also wirklich weg. Das ist mal richtig sch...e! :(

Wenn Du dieses kleine Experiment wiederholst und im Template keine InDesign®-Gruppe verwendest, verhält es sich wieder reorganisationssicher.

Er möge schauen, warum es keine InDesign®-Gruppen mag. :)

Wobei man hier dann schon auch sagen muß : X > 1

Workaround

Bißchen kraß ausgedrückt, oder? Dabei gibt es doch einen denkbar einfachen Workaround:

Mach einfach einen kleinen transparenten Rahmen und leg ihn hinter die (InDesign®-)gruppierten Rahmen. Schon geht alles :-)

Lösung

Ist gefixt

29.08.2013
Bug 3352 - Nach reconnect wird die bisherige Datenbank nicht mehr eingestellt

Wenn die Datenbank-Verbindung verloren geht und automatisch wiederhergestellt wird, stimmt zwar die Verbindung, aber die neue Verbindung hat keine Datenbank mehr (oder besser : Natürlich hat sie eine Datenbank, aber nicht die aus dem Login, sondern die aus dem odbc.ini bzw. die Default-Datenbank des Servers.).

Das ist gefixt. Ab jetzt wird auch die verwendete Datenbank wieder richtig eingestellt.

29.08.2013
Bug 3351 - Absturz durch neuen ODBC-Treiber für SQLServer

Bei unserem neuen Partner XXX hatten wir das Problem, dass InDesign® (CS 5.5 und CS 6) beim Login abstürzen. Auf meiner Maschine passierte das nicht. Nach langem Hin und Her stellte sich heraus, dass das Problem im neuen OpenLink-Treiber (Express Edition 06.02.121205 vom 21. Dezember 2012) liegt. Ich habe die Bundles in /Library/ODBC gegen welche von meinem Rechner (06.02.0328 vom 11. September 2009) ausgetauscht, mit denen besteht das Problem nicht.

Der Absturz passiert jedesmal nach der Anweisung

select key, translation from messages where language = 'enEN';

Danach wird ein reconnect gemacht - und dabei stürzt es ab.

Die o.g. Anweisung ist für SQLServer falsch ist. (key ist dort nämlich ein Schlüsselwort).

Workaround 1

Wie von Thorsten vorgeschlagen, die älteren Treiber verwenden.

Workaround 2

In der Tabelle keywords einen Eintrag "KEY" anlegen mit dem value "keyword" (oder irgend etwas anderes Erlaubtes) definieren.

Lösung

Eigentlich muß ja gar kein reconnect gemacht werden. Die Verbindung ist ja nicht das Problem. Ich habe deshalb die Fehler-Diagnose erweitert und starte ein Reconnect nur noch dann, wenn es auch wirklich nötig ist.

Damit wird der Absturz bei Login vermieden.

Bei mutwilligem Trennen der Verbindung (z.B. VPN-Verbindung und Rechner zuklappen), kam es trotzdem noch zu Abstürzen mit dem neuen Treiber. Auch dieser Fehler konnte behoben werden.

Achtung

Das Reconnect kann natürlich erst gemacht werden, wenn die entsprechende Fehlermeldung kommt. Durch große Time-Outs kann das recht lange dauern.

29.08.2013
Bug 3348 - Cometgruppen-ID kann sich bei Ebenenwechsel ändern

Wenn im Indesign der Rahmen, an dem die Cometgruppen-ID ausgewiesen wird, gelöscht wird, bekommt die komplette Cometgruppe eine neue ID sobald sie auf eine andere Ebene im Indesign-Dokument verschoben wird.

Der Fehler ist gefixt.

28.08.2013
4255

15.08.2013

Bug 3346 - Namen von Smart-Templates können nicht mehr geändert werden

Wenn ich auf die kleine blaue Zielscheibe der Palette "Templates" klicke, geht ja der Dialog mit den Meta-Daten für das ausgewählte Template auf. Das Namensfeld (und so ziemlich alle anderen Felder) sind aber ausgegraut - ich kann sie alos nicht ändern.

Bei normalen Templates klappt es.

Das ist gefixt.

14.08.2013
Bug 3344 - Mit place_items eingefügte gruppierte Rahmen erhalten falsche BuiltByID

Fügt ein Platzhalter mit document::place_items weitere Rahmen ins Dokument ein, bekommen diese Rahmen als BuiltByID die ID. mit der der Rahmen des Platzhalters verknüpft ist (und als ID natürlich die ID, die in place_items steht).

Bei Rahmen von Untergruppen ist das aber leider nicht so. Bei diesen Rahmen ist die BuiltByID gleich der ID.

Einen Test hat man schnell:

  1. Erzeuge einen neuen leeren Rahmen mit einem Platzhalter, der place_items mit dem Produkt B ausführt. das platzierte Template sollte "normale" und InDesign®-gruppierte Rahmen enthalten.
  2. Verlinke diesen Rahmen mit dem Produkt A
  3. Selektiert man InDesign®-gruppierten Rahmen des platzierten Templates, wird in der Produktrecherche das Produkt B ausgewählt (falsch - weil dort die BUILTBY-ID verwendet wird). Wählt man nicht gruppierte Rahmen, wird Produkt A ausgewählt (richtig).

Der Fehler ist gefixt. In den Unterrahmen wird jetzt die richtige BuiltByID eingetragen.

14.08.2013
Bug 3334 - Darstellung der Platzhalter bei Inlinerahmen verschoben

Hi Zusammen, ich hab hier eine Ticket eines Kunden rein bekommen, diese bemängeln, dass die Darstellung bei Platzhaltern, welche sich in der gleichen Zeile wie ein Inline-Rahmen befinden, verschoben ist. Dies ist soweit nochvollziehbar, durch verkleinern des Inlinerahmen fällt die Darstellung des Platzhalters wieder auf die ursprünglich Position zurück.

Die Platzhalter werden jetzt bündig an der unteren Linie der Zeile dargestellt. Zusätzlich werden die Platzhalter nach oben von der oberen Rahmenkante beschränkt. (Im TestDokument waren Textplatzhalter in einem Text mit einem Zeilenabstand von 38 Punkten in 17 Punkt hohen Rahmen. Diese irgendwie selbst verschuldeten Darstellungsfehler haben den Kunden im Gegensatz zu unserem Fehler offenbar nicht gestört.)

13.08.2013
Bug 3335 - Folgebugs durch Bibliothekselemente

Es wird im Whiteboard eine InDesign®-Bibliothek verwendet. Sobald ein Element der Bibliothek ins Dokument eingefügt wurde (per Drag and Drop auf ein Artikeltemplate) und anschließend das Bibliothekselement und das Artikeltemplate zu einer Cometgruppe zusammengefasst wurde (beides markieren, Rechtsklick und Auswahl von "join groups"), erhält die Cometgruppe die groupID 0. Das äußert sich z.b. dadurch, dass in der Produktliste keine Seitennummer für dieses Element mehr angezeigt wird und als Name "0,0,0" gelistet wird. Ab diesem Zeitpunkt kann das gesamte Dokument nicht mehr sauber reorganisiert werden, da z.B. der ursprüngliche Artikel dabei dupliziert wird.

Das Problem tritt nur bei InDesign® Server auf.

Gefixt.

13.08.2013
Bug 3338 - textmodel::excel_import importiert unformatierte Tabellen

Wenn ich mit textmodel::excel_import (oder frame::excel_import) Tabellen aus Excel-Dateien in mein Dokument importiere, werden zwar die Tabellen richtig importiert - aber leider gehen dabei alle Text- und Tabellenformatierungen verloren. Bis CS4 wurden die Formatierungen noch übernommen.

Das ist gefixt.

13.08.2013
Bug 3337 - Template-Editor für große Templates oft zu klein

Hat man etwa ein Template für A3 gebaut und gesichtert, werden beim öffnen des Templates (Doppleklick aus der Palette Templates) zwar alle Rahmen gezeigt, aber da als Seitengröße A4 verwendet wird, hängen die unteren/rechten Rahmen meist gerade noch an der (vergrößerten) Arbeitsfläche.

Das Problem ist gefixt. Bei Templates, die größer als A4 sind, wird die Seitengröße automatisch so angepasst, dass in jeder Richtung noch mind. 20% Platz ist.

12.08.2013
Bug 3336 - Findstatements werden nicht immer geladen

Es kann vorkommen, dass nach dem Login die Findstatements der Produktrecherche nicht geladen werden (Findstatements werden in dem Popup oben links in der Palette gezeigt.)

Im aktuellen Fall wird die Datenverbindung automatisch mit dem After-Loginscript eines XML-Offline-Ordners nach dem Programmstart hergestellt.

Der Fehler ist gefixt. Die Popup mit den Suchanweisungen wird jetzt wieder richtig geladen.

Der Fehler trat als Nebeneffekt des Fixes von Bug 2852 (25. Mai 2012) auf.

12.08.2013
4200

01.08.2013

Bug 3333 - itemlist-Funkionen führen zum Absturz von InDesign®, wenn dadurch Rahmen von der Arbeitsflächen fallen

Die folgenden Funktionen können Rahmen von der Arbeitsfläche verdrängen :

Dadurch stürzt InDesign® ab.

Diese Fehler werden jetzt dadurch vermieden, dass die Größe der Arbeitsfläche automatisch angepasst wird.

ACHTUNG: Der Fehler ist in InDesign®-Versionen ab CS5 behoben. CS3 und CS4 als "Auslaufmodelle" wurden nicht gefixt.

01.08.2013
Bug 3332 - frame-Funkionen, die Grösse und/oder Position von Rahmen verändern, können zum Absturz von InDesign® führen

Die folgenden Funktionen können mit (un)geeigneten Werten zum Absturz von InDesign® führen:

In allen Fällen bedeutet die Geometrieänderung, dass der Rahmen von der Arbeitsfläche fallen würde. InDesign® stürzt in diesem Fall ab.

Diese Fehler werden jetzt dadurch vermieden, dass die Größe der Arbeitsfläche automatisch angepasst wird.

ACHTUNG: Der Fehler ist in InDesign®-Versionen ab CS5 behoben. CS3 und CS4 als "Auslaufmodelle" wurden nicht gefixt.

01.08.2013
Bug 3331 - Einfügen von Templates und Produkten mit Drag and Drop führt zum Absturz von InDesign®

Beim Einfügen von Templates oder Produkten kann InDesign® abstürzen. Das passiert immer dann, wenn man ein genügend hohes Template verwendet und dieses nur genügend weit unten auf der Seiten platziert.

In diesen Fällen können Rahmen des Templates von der Arbeitsfläche fallen. InDesign® mag das gar nicht und stürzt ab.

Dieser Fehler wird jetzt dadurch vermieden, dass die Größe der Arbeitsfläche automatisch angepasst wird.

ACHTUNG: Der Fehler ist in InDesign®-Versionen ab CS5 behoben. CS3 und CS4 als "Auslaufmodelle" wurden nicht gefixt.

01.08.2013
Bug 3330 - Absturz bei fitframe

fitframe führt zum Absturz in folgender Situation: Ich habe einen recht hohen Rahmen um unteren Seitenrand platziert. Dieser Rahmen soll mit fitframe angepasst werden. Funktioniert auch. Gebe ich als Referenzpunbkt aber rechts unten an, stürzt InDesign® ab.

Ja klar, der Rahmen fällt in diesem Fall von der Arbeitsfläche. Dieser Fehler wird jetzt dadurch vermieden, dass die Größe der Arbeitsfläche automatisch angepasst wird.

ACHTUNG: Der Fehler ist in InDesign®-Versionen ab CS5 behoben. CS3 und CS4 als "Auslaufmodelle" wurden nicht gefixt.

01.08.2013
Bug 3329 - Rahmenverschiebungen in Gestaltungsregeln können zum Absturz des Produktaufbaus führen

Ich muss in Produkten möglicherweise Rahmen nach unten verschieben. Das wird einer Gestaltungsregel "Nach Aufbau" (Bausteine )gemacht. Seitdem stürzt der Aufbau hin und wieder ab.

Die Regeln "Nach Aufbau" (Bausteine) werden erst ganz am Ende gerufen, wenn das Produkt bereits eingefügt, geladen, aufgebaut und platziert ist. änderungen an der Produktgröße können dazu führen, dass das Produkt über den Stellplatz oder gar die Seite hinausragt.

Die Situation "Nach Aufbau" ist also für diese Aktionen ungeeignet. Leider kann sie dann, wenn das Produkt am unteren Seitenrand platziert wurde, auch zum Absturz führen. Der Absturz passiert nämlich immer genau dann, wenn ein Produktrahmen über die Arbeitsfläche hinaus verschoben wird.

Die Arbeitsfläche wird jetzt automatisch so vergrößert, dass Rahmen bei Verschiebungen nicht mehr von der Arbeitsfläche fallen. Der Absturz ist damit behoben.

Damit auch die falschen Platzierungen vermieden werden können, hat das BuildSupportScript jetzt die weitere Aufruf-Situation kProductPlaced. Mehr dazu siehe hier.

01.08.2013
Bug 3328 - frame::apply_magnets missing

Mir war so, als gäbe es diese Funktion. Ich kann sie aber in der Doku nicht finden.

Ja, die Funktion gibt es - Doku jetzt auch.

01.08.2013
Bug 3327 - Sortierungsproblem bei XMLQueries

Ich hab ein problem beim Sortieren von XML-Ergebnissen.Wenn Zahlen in exponential geliefert werden

    <OBJECT_GROESSE>8.500000000000000e+001</OBJECT_GROESSE>
    <OBJECT_GROESSE>1.000000000000000e+002</OBJECT_GROESSE>
    <OBJECT_GROESSE>8.000000000000000e+001</OBJECT_GROESSE>

dann funktioniert das orderby OBJECT_GROESSE nicht.

Das sollte jetzt gehen. Hübsche Anforderung :-)

30.07.2013
Bug 3326 - xml::is_textlink liefert immer 0

das ist doch nicht richtig, oder?

Nein, ist es nicht. Jetzt wird für reine Texte wieder eine 1 geliefert.

Achtung: Die Stories selbst liefern aber weiterhin eine 0!

30.07.2013
Bug 3325 - "Bestehende Seitentemplates verwenden" führt zu Fehlern beim Einfügen von Produkten

Ich habe ein Dokument mit zwei Seiten voller Produkte. Ich wähle ein Produkt der ersten Seite aus. Dann wähle ich einige Produkte aus und füge diese mit den Bausteinen der Produktrecherche ins Dokument ein. Im Import-Dialog wähle ich die Option "Bestehende Seitentemplates und -seiten bevorzugen".

Jetzt wird das Einfügen gestartet. An der Stelle, an der eigentlich auf eine neue Seite gesprungen werden soll, bleibt der Aufbau mit Meldung stehen, dass kein passendes Seitenelement mehr gefunden werden kann.

Ja. Das Problem war, das der Aufbau zwar derkannt hat, dass die bestehende Seite verwendet werden kann, diese aber nicht leer war. Dieser Fehler ist jetzt gefixt.

ACHTUNG: Wird keine weitere Dokumentseite mehr gefunden, wird für neue Seiten jeweils das Folge-Seitentemplate der letzten eingefügten Seiten verwendet. Das Seitentemplate aus der Dialogeinstellung wird nur dann verwendet, wenn an der Einfügestelle noch kein Seitentemplate gesetzt war.

29.07.2013
Bug 3322 - Absturz beim Sichtbarmachen von Notizen wenn aktuelle Ebene gesperrt ist.

Ich habe unsichtbare Notizen, die sichtbar gemacht werden sollen. Dabei stürzt InDesign® ab - aber nur, wenn die aktuelle Ebene (nicht die Zielebene der Notiz) gesperrt ist.

Ist gefixt.

24.07.2013
Bug 3321 - Comet Gruppe Verschwinden wenn Rahmen auf andere Ebene verschoben wird.

Wenn ich einen Rahmen der zu einer Cometgruppe gehört auf einer andere Ebene über die Ebenen Palette verschiebe, dann verschwindet die Comet Gruppe an diesem Rahmen. Dabei ist es egal ob es mehrere Rahmen in der Comet Gruppe gibt oder ob es der einzige Rahmen ist der zu dieser Gruppe gehört.

Das geht wieder.

Workaround

In der Palette "Produkte des Dokumentes" können Rahmen ebenfalls auf andere Ebenen verschoben werden. Die Rahmen müssen dabei nicht mal (wie bei den Bordmitteln) auf der gleichen Ebene liegen.

FYI

Beim Ebenenwechsel werden von InDesign® folg. Events gefeuert:

  • Löschen von (alter) Hierarchy
  • Hinzufügen zu (neuer) Hierarchy
  • Ebenenwechsel

Nicht ganz unerwartet wird das erste Event auch beim Löschen eines Rahmen gefeuert. Und das erste und zweite Event werden gefeuert, wenn Rahmen den Spread wechseln.

Leider ergeben sich aus allen drei Fällen unterschiedliche Cometgruppen. Im ersten Schritt (Löschen) müssen also zuerst alle aktuellen Cometgruppen gesichert werden. In den folgenden Schritte müssen dann diese Einstellungen zuerst wieder hergestellt werden - bevor die spezifischen Anpassungen gemacht werden können.

Nicht ganz unaufwendig.

24.07.2013
4080

19.07.2013

Bug 1801 - Absturz von Indesign beim Aufruf der Hilfe

Indesign sehr oft ab wenn den Menüpunkt "Hilfe" im Indesgin auswählt!

Wir haben inzwischen ein reproduzierbares Test-Szenario, das zum Absturz von InDesign® führt, wenn das Hilfemenü geöffnet wird. Es ist ganz einfach:

Es reicht, ein einziges Mal einen Platzhalter mit TaggedText zu laden. Danach wird dieses Dokument InDesign® IMMER zum Absturz bringen, wenn das Hilfemenü geöffnet wird.

Merkwürdig an der ganzen Sache ist, dass der Absturz auch dann passiert, wenn InDesign® neu gestartet wurde. Einzige Bedingung ist, das irgendwann in der Dokument-Hostorie ein TaggedText-Platzhalter geladen wurde.

Wir haben jetzt Dokumente verglichen, die mit dem Platzhalter geladen wurden und die manuell (mit dem gleichen Text) erstellt wurden. Das Problem besteht offenbar darin, dass es mit InDesign®-Bordmitteln (oder auch der Javascript-API) nicht möglich ist, TaggedText irgendwo in einen Text einzufügen. Es wird immer ein Rahmen erstellt oder dessen Inhalt ersetzt. Um die Funktionalität der Textplatzhalter zu erhalten, ist deshalb einiger Aufwand erforderlich. Jedenfalls hinterlässt der Import Daten, die in "normaler" Anwendung gebraucht werden, bei unseren Textplatzhaltern aber nicht.

Es ist uns gelungen, diese Daten zu identifizieren. Und vor allem ist es uns gelungen, den Typ dieser Daten zu bestimmen. Mit diesen Informationen können wir Daten aus dem Dokument löschen.

Das öffnen des Hilfe-Menüs führt dadurch nicht mehr zum Absturz.

Achtung:

Bei bereits bestehenden Dokumenten kann der Bugfix natürlich keine Verbesserung bringen.

18.07.2013
Bug 3320 - Endlosschleife bei fitframe

Ein Rahmen mit einem einzeiligen Text führt bei fitframe zu einerEndlosschleife.

fitframe 9-3    : frame 141014    >>> 0.518326 x 22.500000, 191.388351 x 13.934748
fitframe 9-5    : frame 141014    >>> 0.518326 x 22.500000, 191.388351 x 13.934688
fitframe 9-6
fitframe 9-10
fitframe 9-3    : frame 141014    >>> 0.518326 x 22.500000, 191.388351 x 13.934688
fitframe 9-5    : frame 141014    >>> 0.518326 x 22.500000, 191.388351 x 13.934628
fitframe 9-6
fitframe 9-10
fitframe 9-3    : frame 141014    >>> 0.518326 x 22.500000, 191.388351 x 13.934628
fitframe 9-5    : frame 141014    >>> 0.518326 x 22.500000, 191.388351 x 13.934568
fitframe 9-6
fitframe 9-10
fitframe 9-3    : frame 141014    >>> 0.518326 x 22.500000, 191.388351 x 13.934568

Der Fehler ist gefixt.

Workaround:

frame::fit mit einer Präzision über 0.00005 verwenden. Wird frame::fit nicht direkt aufgerufen, kann das mit prefs::set_fitframe_precision erledigt werden.

18.07.2013
Bug 3313 - app.comet.execTemplate funktioniert nicht für ID Desktop

Die Javascript-Anweisung app.comet.execTemplate soll ein Produkt in einem (neuen) Dokument platzieren und die Seitengrösse auf Produktgröße beschneiden.

Mit ID Desktop funktioniert das nur, wenn ein Dokument offen ist - und dann wird in diesem Dokument platziert, nicht in dem neuen.

Es wird jetzt im richtigen Dokument platziert.

18.07.2013
Bug 3312 - Produktaufbau klappt nicht, wenn ein Rahmenplazthalter den Rahmen löscht

Ich habe in einem Platzhalterskript eines Rahmens die Anweisung frame::remove (wenn z.B. ein Bildnicht gefunden wird). Wird der Rahmen beim Aufbau eines Produktes dann tatsächlich gelöscht, bricht der Produktaufbau mit dem folg. Fehler ab :

# ============== ERROR 1 (Interner Fehler) while building/reorganizing products ==============
#    Importing/Reorganizing frames of product.
#    Internal        : ImportFrames
#    Intention        : ...
#    MessageNr     : 51
#    Message         : Cannot insert and load template 518 completely.

Funktioniert jetzt.

17.07.2013
4044

14.07.2013

Bug 3308 - Aufgabenpalette / Spalten der Palette optimieren

Hi Paul,mir wurde gerade von Kundenseite zugetragen, dass die Spaltenbreiten der Aufgabenpalette nicht ganz optimal gewählt sind. Ja, und ich muss sagen, der Kunde hat schon irgendwie recht.

Einträge in "Seite/Position" und in "Beschreibung" sind eigentlich von der Länge her begrenzt. ("Seite 12345667443456544" wird es wahrscheinlich seltener geben. Die Beschreibungen sind definiert und die Länge damit bekannt.) Bei "Aufgabe" wird aber der Platzhalter gezeigt und der kann durchaus mal länger beschrieben sein.

Könnte man die Spalten einfach anpassen, oder hat es noch andere Abhängigkeiten, warum das genau so gewählt ist?

Danke und Gruß

    Andreas

Na gut, überredet. Jetzt ist die Spalte "Aufgabe" variabel, nicht mehr "Beschreibung".

12.07.2013
Bug 3311 - app.comet.cometGroupMoveTo verschiebt nicht richtig auf die Seite

Mit app.comet.cometGroupMoveTo können Cometgruppen auf andere Seiten verschoben werden. Haben Start- und Zielseite den gleichen Seitentyp, funktioniert das auch. Also von Seite 4 auf Seite Seite 6 oder 2 oder so. Aber nicht auf 1, 3, 5 ... . Der Spread stimmt zwar, aber nicht die Seite.

Ist gefixt.

12.07.2013
Bug 3310 - Delete Page/Spread Javascript function does not delete page notes

After delete page/spread the "page(uid)" Comments are not deleted. They are converted to "pageindex" notes.

Das Problem war das Reshuffle nach dem Löschen (oder allgemein dem ändern) von Seiten. Danach waren die parentIDs in der notes-XML nicht mehr richtig.

12.07.2013
Bug 3309 - Löschen des letzte Rahmes einer Comet Gruppe löscht keine Notizen

Ich habe Comet-Group Notiz angelegt. Ich habe einzelne Elemente gelöscht. Am Ende existiert die Cometgruppe nicht mehr. Leider aber die Notiz noch.

Api Log:

[10.07.2013 11:55:01] Element.delete
	(string) path  \\TLF\Documents\demo\278394\test4.indd
	(long) elementID  5794
	(string) options 
1373372059;-1;documentId:"278546";session:"1469304238";layer:"de";

Ganz so einfach ist es nicht. Das Problem entsteht, wenn app.comet.deleteElement den HAUPTrahmen einer Gruppe löscht, aber noch weitere Rahmen in der Gruppe sind. Diese Rahmen haben dann keine Gruppe mehr - und die Notiz verliert ihren Bezug.

Ich habe das so geändert : Wird der Hauptrahmen einer Gruppe gelöscht, wird automatisch eine neue Gruppe aus den Restrahmen gebildet. Die neue Gruppe erhält die alte Gruppen-ID.

12.07.2013
Bug 3300 - Templates können nicht mehr gesichert werden.

Der Fehler tritt nur unter Windows mit Unicode-Datenbankverbindungen auf.

Das funktioniert jetzt wieder. Der Fehler war in den Releases ab R3800 enthalten.

05.07.2013
3955

26.06.2013

Bug 3289 - textmodel::get_anchor - out_pos gibt nicht -1 zurück, wenn kein Anker gefunden wurde

wenn ich mit textmode::get_anchor einen Anker für ein "veankertes Objekt" suche und er dort keinen findet, gibt mit die out_pos anstatt -1 den Wert 4294967295 zurück. Mal ins Blaue geraten: Sideeffect von der Integer-Anpassung neulich?

Ja freilich. Ist gefixt.

25.06.2013
Bug 3292 - Absturz bei frame::fit von Rahmen mit Umrahmung

Ich habe einen Rahmen mit einem 10 Punkte starken Rand. Der Rahmen hat eine Gestaltungsregel "fitframe". Wird die ausgeführt, stürzt InDesign® reproduzierbar ab.

Der Fehler ist gefixt.

25.06.2013
3919

19.07.2013

Bug 3286 - Globale Variable <layer> liefert nichts in einem Panel Statement

Zur Zeit verwende ich die Comet Desktop Plug-ins 3.3 R3800 auf einem Mac (10.8) und habe das Problem dass die Umgebungsvariable <layer> in den Panel Statements der Produktrecherche immer einen Leerstring liefert. In der Ebenen Palette ist zu dem Zeitpunkt des Aufrufs stets eine Ebene ausgewählt. Zudem funktionieren andere Variablen wie <document> usw. ohne Probleme.

So steht es ja auch in der Doku. Der Bezeichner <layer> ist nur im Platzhalter- und Tabellenaufbau-Kontext verfügbar. Sonst wird er mit dem Default ("") gefüllt.

Ich habe das trotzdem angepasst. Das Tag <layer> wird jetzt ausserhalb von Platzhalter- und Tabellenaktionen mit dem Namen des aktuellen Front-Layers gefüllt.

Achtung : Das geht natürlich nicht unter InDesign®-Server. Dort gibt es keinen Frontlayer.

18.06.2013
3876

11.06.2013

Bug 3280 - frame::fit-Precision bei Fortsetzungstemplates steuern

Hi zusammen,

ihr habt ja dem frame::fit ein Parameter zur Genauigkeit spendiert. Das ist richtig cool. Allerdings brauche ich bei den Fortsetzungstemplates teilweise eine höhere Genauigkeit, als sie standardmäßig gesetzt ist.

Es ist ja leider so, dass ich bei Fortsetzungen keinen Einfluss mehr auf das abschließende fit_frame habe. Alle Anpassungen, die ich per Script mache, werden ja gnadenlos rückgängig gemacht. (Brutal, aber wahr.)

Als pragmatische Lösung für dieses Problem würde ich einen Befehl / oder eine glob. Variable vorschlagen, der/die in einem Aufbauscript die Genauigkeit des fit_frame vorgeben kann. Dann wäre alles schön abwärtkompatibel und man hätte Einfluss auf genau das frame::fit, wo man sonst nicht ran kommt.

Idealerweise würde dann dieser Standardwert nur dann herangezogen, wenn frame::fit sonst nix übergeben wurde.

Ich habe zwei neue Funktionen gemacht :

    prefs::get_fitframe_precision
    prefs::set_fitframe_precision

mit denen die verwendete Präzision global gesetzt werden kann. Werte unter 0.00005 bedeuten, dass dieser Wert nicht verwendet werden soll.

Die Abfrage ist so :

Präzision in frame::fit gesetzt?
    ja -> verwende diese
    nein -> verwende die globale Präzision
          (ist die auch nicht gesetzt : Verwendet ID-Standardverfahren)

Bei Logout wird die globale Präzision wieder zurückgesetzt auf 0 (== ignorieren).

11.06.2013
Bug 3282 - Beeinflussung der Position wiederholender Elemente

Im Build-Befehl der Platzhalter kann ja mit offset ein Abstand zwischen den einzelnen wiederholenden Elementen angegeben werden. Kann man diesen Abstand auch konfigurierbar machen?

Das kann man jetzt im Ersatztemplate-Skript des Templates des wiederholdenden Elementes machen. Mehr dazu in der Online-Doku.

11.06.2013
Bug 3268 - Fehler bei Cometgruppen-Notizen, wenn die Gruppe geändert wird

Notizen von Cometgruppen werden nicht aktualisiert, wenn sich die Cometgruppe ändert :

  • Wird der Hauptrahmen entfernt, belibt die Notiz (ohne Cometgruppe) stehen.
  • Beim Neubilden der Cometgruppe verliert die Notiz ihren Bezug.
  • Neuverknüpfen verschiebt die Notiz nach links oben des Hauptrahmens
  • Templatetausch

Diese diversen Fehler sind alle behoben.

10.06.2013
Bug 3278 - InDesign® ServerfCS6 mit Whiteboard stürzt ständig ab

Das sieht nur so aus. Der Fehler liegt im CometServer, der Exceptions von InDesign® falsch auswertet und alles als Kommunikationsfehler interpretiert.

Behoben in:

  • CometServer 3.4 ab Build #811
  • CometServer 3.3 ab Build #710
10.06.2013
Bug 3277 - Seitenränder (Margins) sind beim Spreads XML falsch

Die Seitenränder werden beim Spreads XML falsch ausgegeben. Original-Fehlerbericht: "für alle Seiten gleich".

Das stimmt so nicht ganz: es werden schon für jede Seite die richtigen Margins ausgegeben, nur stimmt die Bezeichnung nicht.

Adobe InDesign® erlaubt Angaben für Top, Bottom, Inside und Outside. Wir geben Top, Bottom, LEFT und RIGHT aus.

Dummerweise kann man das nun gar nicht sinnvoll aufeinander abbilden: LEFT entspricht dabei immer INSIDE, RIGHT OUSIDE und ob das in der tatsächlichen Lage dann auch wirklich links oder rechts ist, muss anhand des Seitentyps ermittelt werden. Für linke Seiten ist es genau "falsch rum", für rechte stimmts.

Aber wir können das jetzt auch nicht von jetzt auf plötzlich ändern, oder?

Oder doch? Für linke Seiten werden die Angaben vertauscht, so dass margin-left der Rand ist, den man auch links sieht und margin-right der rechts sichtbare Rand. Und zusätzlich gibt es noch die beiden Attribute "inside" und "outside", die einfach das ausgeben, was uns das InDesign® API als INSIDE und OUTSIDE margin liefert. Eigentlich sollten dann nur noch diese Angaben verwendet werden und die Client-Applikation anhand der sonstigen Seiteninformationen (Anzahl Pages / Spread, Seitentyp ...) wissen, wie die Ränder zu zeichnen sind.

10.06.2013
Bug 3276 - Seiten- und Spreadindex von Gruppen oder Rahmennotizen wird bei änderung nicht aktualisiert.

Seiten- und Spreadindex von Gruppen oder Rahmennotizen wird bei änderung nicht aktualisiert.

Das stimmt, allerdings sollten die EIGENTLICH auch gar nicht verwendet werden - wenn die Notiz an einem Rahmen oder einer CometGruppe hängt, ist das die Referenz und kann von einer Client-Anwendung ohne weiteres die korrekte Seite anhand der Gruppen- oder Rahmeninformationen berechnet werden.

Trotzdem behoben. Seiten und Spread UID waren übrigens bereits richtig.

10.06.2013
Bug 3275 - Datum von Kommentaren ist falsch

Wird im Whiteboard ein Kommentar zu einer Notiz hinzugefügt, ändert sich das Erstellungsdatum aller Kommentare.

Intern haben wir mit verschiedenen Datumsformaten gearbeitet, jetzt sollte das funktionieren.

10.06.2013
Bug 3273 - änderungsdatum der Notiz wird beim ändern oder Hinzufügen von Kommentaren nicht aktualisiert Das änderungsdatum einer Notiz wird beim ändern oder Hinzufügen von Kommentaren nicht aktualisiert.

Ja.

  • änderung von Kommentaren können wir nicht verfolgen (es sei denn, wir verfolgen jede Tastatureingabe in InDeisgn)
  • einen NEUEN Kommentar erkennen wir in dem Augenblick, zu dem die Notiz als XML exportiert wird

Beim Export wird dann auch das änderungsdatum / benutzer der Notiz als Ganzes aktualisiert.

Achtung: Im Panel von InDesign®-Desktop ist das nur sichtbar, wenn die Notiz einmal exportiert und wieder importiert wird, nach den o.g. Einschränkungen ist das auch logisch.

10.06.2013
Bug 3273 - Bei neuen Notizen / Kommentaren wird der Systembenutzer als Benutzer eingesetzt

Bei neuen Notizen / Kommentaren wird der Systembenutzer als Benutzer eingesetzt.

Kein Bug im eigentlichen Sinne, dahinter steckt die Überlegung, dass in "traditionellen" Comet Projekten häufig ein Datenbank-Account für mehrere Mitarbeiter genutzt wird und der Systembenutzer das beste Unterscheidungsmerkmal ist.

Trotzdem: bei Publikations-Dokumenten, die vom CometServer ausgebucht wurden, wäre es schön, wenn der "Whiteboard" Account (der ja im Hintergrund verfügbar ist) verwendet wird.

Und genau nach dieser Rangfolge wird jetzt der Benutzer ermittelt:

  • ist es ein Publikationsdokument? Dann der Benutzer, der (auf diesem Arbeitsplatz) dieses Dokument ausgebucht hat, egal, ob die Verbindung gerade offen ist oder nicht
  • sonst: Systembenutzer wie gehabt
10.06.2013
Bug 3272 - Mit InDesign® Serverfund XML Offline Datenverbindung werden Templates nach Verwendung gelöscht

Mit InDesign® Serverfund XML Offline Datenverbindung werden Templates nach Verwendung gelöscht.

Dieser Fehler tritt ab R3530 auf, R3530 - R3800 dürfen daher für diese Kombination keinesfalls verwendet werden.

Behoben.

10.06.2013
Bug 3264 - document::hide_notes() funktioniert nur bei geöffneter Kommentare-Palette

Wenn die Kommentare-Palette minimiert oder geschlossen ist, liefert die Funktion 1 (interner Fehler) zurück und die Kommentare bleiben sichtbar. document::show_notes() meldet keinen Fehler, funktioniert aber auch nur sporadisch. Ob ich als Parameter gDocument oder nix (also 0) mitgebe, scheint egal zu sein.

Testscript:

int main()
{
	int res;

	res = document::hide_notes();
	showmessage("return %d (%s)", res, serror(res));

	return 0;
}

Der Fehler mit hide_notes ist behoben.

Achtung : Die Dokument-Funtionen, die Notizen bearbeiten, heissen jetzt alle document::notes::.... Die alten Bezeichner sind weiterhin gültig:

document::show_notes --> document::notes::show
document::hode_notes --> document::notes::hide
...

10.06.2013
Bug 3269 - document::show_notes selektiert auch alle Dokument-Notizen

... ein kleiner, aber störender Nebeneffekt der Funktion document::show_notes : Alle Notizenrahmen im Dokument sind danach ausgewählt. Könnte man das nicht verhindern?

Klar kann man. Die Notizen werden jetzt von show_notes nicht mehr ausgewählt.

05.06.2013
Bug 3268 - 05.06.2013
Bug 3267 - Notizen können zu Cometgruppen hinzugefügt werden

Das sollten sie aber eigentlich nicht, oder?

Das Problem ist gelöst. Notizen können nicht mehr Mitglieder von Cometgruppen werden.

05.06.2013
Bug 3266 - In spreads.xml fehlen Spread- und PageUIDs

Ist gefixt.

05.06.2013
Bug 3265 - Kontextmenü Comet-Gruppen -> Hinzufügen fehlt manchmal

Ich will einen Rahmen zu einer bestehenden Cometgruppe hizufügen. Leider ist das entsprechende Menü nicht sichtbar :

    Comet-Gruppen -> Hinzufügen

Das passiert immer dann, wenn die Gruppe aus genau einem Rahmen besteht und genau ein weiterer Rahmen hinzugefügt werden soll.

Der Fehler ist gefixt.

05.06.2013
Bug 3263 - 05.06.2013
Bug 3263 - Lizenz-Dateien mit CS-Version funktionieren nicht

Die neuen Lizenzfiles (w2.lic), die statt der bisher verwendeten InDesign®-ID nur die CS-Version enthalten, funktionieren nicht. Die Lizenz wird nicht erkannt. Im Logfile steht, dass die InDesign®-ID falsch sei.

Der Fehler tritt bei allen CS-Versionen ausser bei CS5.5 auf.

Ist gefixt. Die CS-Lizenzen funktionieren jetzt in allen CS-Versionen.

04.06.2013
Bug 3262 - hyperlink::create_urldest macht immer Umweg über ein "freigegebenes Hyperlinkziel"

Ich erstelle bei einem Projekt automatisch Deeplinks in eine Webanwendung mit hyperlink::create_urldest bzw. mit hyperlink::frame_create_urldest. Standardmäßig wird durch den Aufruf ein Link vom Typ "freigegebenes Hyperlinkziel" erstellt, dessen Ziel dann eine URL ist.

Das hat den Nachteil, dass der Link immer auf ein Ziel des Dokuments referenziert. Macht man Dokument Finishingarbeiten und kopiert einen solchen Link dann in ein anderes Dokument, referenziert der Link noch immer auf ein Hyperlinkziel des Ursprungsdokumentes.

Problem dabei ist, dass der Link dann im PDF nicht mehr anklickbar/zerstört ist.

Man kann aber in InDesign® auch direkt auf eine URL referenzieren, auch ohne ein Hyperlinkziel im Dokument anzulegen, was dann ganz unproblematisch zu kopieren ist.

Beide Funktionen haben jetzt den zusätzlichen Parameter shared, mit dem das gesteuert werden kann.

04.06.2013
Bug 3261 - Kein Undo der Menübefehle Kontextmenü -> Comet-Gruppen

Die Aktionen von Kontextmenü -> Comet-Gruppen können nicht oder nur unvollständig rückgängig gemacht werden.

Undo dieser Aktionen funktioniert jetzt.

29.05.2013
Bug 3260 - Kontextmenü "Comet-Gruppen -> Erzeugen" auch wenn Cometgruppen ausgewählt sind

Das Kontextmenü "Comet-Gruppen -> Erzeugen" ist nur verfügbar, wenn keiner der ausgewählten Rahmen zu einer Cometgruppe gehört. Schön wäre es, wenn man aus der aktuellen Rahmenauswahl unabhängig von den aktuellen Cometgruppe eine neue Gruppe bilden könnte.

Das geht jetzt.

Hier ein Beispiel:

Vorher : Seite mit drei Cometgruppen

Nachher : Neue Cometgruppe aus den grünen Rahmen erzeugt

Auswahl der grünen Rahmen und Kontetxmenü -> Comet-Gruppen -> Erzeugen erzeugt aus den grünen Rahmen eine neue Cometgruppe. Die Rahmen werden vorher automatisch aus ihren alten Gruppen entfernt.

29.05.2013
Bug 3259 - Hauptrahmen einer Cometgruppe von der Gruppe lösen löst die ganze Gruppe auf

Wenn ich den Hauptrahmen einer Cometgruppe von der Cometgruppe löse (Kontextmenü Comet-Gruppen -> Rahmen von Gruppe lösen, aber auch der cScript-Befehl frame::remove_from_cometgroup), dann wird das zwar richtig gemacht. Aber dabei wird auch die gesamte Gruppe aufgelöst. Lässt man einen der übriggebliebenen Rahmen der Gruppe aber alle Gruppenmitglieder auswählen, dann wird der ALTE Hauptrahmen (und nur dieser) ausgewählt.

Dieser Fehler ist jetzt gefixt. Die übriggebliebenen Rahmen werden zu einer NEUEN Gruppe zusammengefasst.

ACHTUNG: Die Gruppe hat nach dieser Aktion eine andere ID! Der alte Hauptrahmen, dessen UID als Cometgruppen-ID verwendet wurde, existiert ja noch. Würde nämlich dieser Rahmen selbst wieder zu einer Cometgruppe gemacht werden, enthielte das Dokument zwei Cometgruppen mit gleicher ID.

29.05.2013
Bug 3258 - Kontextmenü für Comet-Gruppen nicht immer verfügbar

Die Einträge im Kontextmenü "Cometgruppen" sind nicht immer alle verfügbar. Ich habe z.B. einige Rahmen ausgewählt. Keiner der Rahmen gehört zu einer Cometgruppe. Trotzdem fehlt der Eintrag Comet-Gruppen -> Erzeugen.

Zum Reproduzieren:

  1. Lege drei neue Rahmen an
  2. Cometgruppe für diese drei Rahmen erzeugen
  3. Den Hauptrahmen der Gruppe von der Gruppe lösen.

Was auch immer man jetzt macht (Gruppen auflösen, Hauptgruppen auflösen, ...), es ist nicht mehr möglich, aus den drei Rahmen eine Gruppe zu bilden. Das entsprechende Menü fehlt einfach.

Der Fehler ist gefixt. Das Menü ist jetzt sichtbar.

29.05.2013
Bug 3252 - Produktrecherche / Templateauswahl zeigt zwei mal "Standard", wenn man nach Domain einschränkt.

Gefixt.

28.05.2013
Bug 3255 - Bug bei der Lokalisierung von Musterseitenelementen

ein Bug, der sich auf jedem beliebigen System, allen CS-Versionen mit jeder beliebigen Datenbank reproduzieren lässt:

  1. Auf den Musterseiten links und rechts je einen Rahmen anlegen und jedem als Platzhalter "Leerer Platzhalter" zuweisen.
  2. Nur eine rechte Seite genügt.
  3. Mit dem beigefügten Standardskript (als Palettenskript) die Musterseitenelemente lokalisieren.
  4. Soweit, so gut.
  5. Jetzt über Seiten-Palette > Nummerierungs- und Abschnittsoptionen die Seitenzahl auf "2" stellen, damit die Seite zur linken Seite wird.
  6. Das lokalisierte Element bleibt an der alten Position am rechten Rand stehen. Bitte löschen.
  7. Skript zum Lokalisieren erneut aufrufen. Wunder über Wunder: das Element rechts taucht wieder auf.

Irgendwie scheint sich die Funktion zu merken, dass die Seite mal eine rechte Seite war...

#include "internal/types.h"
#include "internal/text.h"

int main()
{
	if(gRun > 1)	return 0;
   
	page::masteritems_load(-1, 0);
	return 0;
}

Der Fehler trat immer nur auf der ersten Dokumentseite auf. Er ist gefixt.

28.05.2013
3800

16.05.2013

Bug 3251 - Menü "Einfügen ohne Formatierung" nicht verfügbar

Auf dem Mac gibt es das Menü "Einfügen ohne Formatierung". Unter Windows leider nicht.

Das Menü wurde ersetzt durch das Menü "Einfügen ohne Platzhalter". Dieses Menü ist auch unter Windows verfügbar.

Die Menüs "Bild kopieren/ausschneiden/einsetzen" wurden entfernt. Das kann man auch mit Bordmitteln machen "In Auswahl einsetzen".

16.05.2013
Bug 3250 - Funktion zum Umrechnen eines UFT-Indexes in Bytes

Gibt es eine Funktion, mit der ich den UTF-8-Index eines Zeichens innerhalb eines Strings umrechnen kann in den tatsächlichen Byte-Index?

Die Funktion gibt es schon seit langem. Nur die Doku hat bisher gefehlt :

byteIndex = get_realindex (str, utf8_index);

15.05.2013
Bug 3249 - Platzhalterattribut PageitemID wird nicht immer richtig gesetzt.

Ich habe ein Templatekonstrukt aus einem "Haupt/Master-Template" mit ID 6 und einem Template, was ich von dort via documents::place_items nachlade (Variante ID 5).

(Das Nachladen geschieht via Gestaltungsregel, damit ich es an beliebige Rahmen klemmen kann.)

Im Produktaufbau via Mauer zeigen die nachgeladenen Rahmen die Originalvorlage als "6 | 5" an. Das ist so korrekt. Template 6 hat Template 5 nachgeladen. Alles OK.

Mache ich das via Drag&Drop, so ist der Wert in der ersten Variante noch ganz korrekt "6 | 5", bei der zweiten Variante steht dort aber nur noch "5". Die Rahmen haben hier jetzt keine Ahnung mehr, von welchem urspr. Template sie aufgebaut wurden.

Das ganze führt dann auch zu einer falschen Anzeige in "Produkte des Dokumentes".

Ich hab' das jetzt noch weiter eingrenzen können.

Das hängt irgendwie mit dem autoload von place_items zusammen. Denn ohne autoload funktioniert's genauso, wie bei Dir. (Du hast ja in Deinem Beispiel place_items nicht so weit durchparametrisiert und hast so per Default autoload = 0 drin)

Interessant dabei ist, dass wenn die nachzuladende Vorlage nur aus einem Rahmen mit "leerem Platzhalter" besteht, geht es tatsächlich auch mit aktivem autoload. Mache ich nen eigenen Platzhalter dran, geht's wieder nicht. (Der "eigene Rahmen-Platzhalter" ist in meinem Testfall auch nur ne Main-Funktion mit return 0. Macht also auch gar nix.)

Wenn das bei Dir auch funktioniert, ist der einzige Unterschied, dass ich das place_items in einer Schleife aufrufe, aber das sollte ja funktionieren.

Das ist gefixt.

15.05.2013
Bug 3248 - Platzhalterpalette kann man nicht weit genug aufziehen

Die Platzhalterpalette, kann man nicht, wie z.B. die Produktrecherche, beliebig weit nach unten aufziehen.

Beliebig geht sowieso nicht. Ich habe aber die maximale Grösse der Paletten jetzt auf 1240 erhöht.

15.05.2013
3765

08.05.2013

Bug 3246 - Comet-Lizenzen und Creative Cloud

Wenn InDesign® über die CreativeCloud abonniert wird, hat man ja keine feste InDesign®-ID mehr. Die Comet-Lizenzen funktionieren also nicht mehr.

Ja, das ist mißlich. Aber kein Grund zur Verzweiflung. Wir haben unsere Lizenzen geändert : In der Lizenz muss jetzt nicht mehr die InDesign®-ID angegeben sein, es kann auch die verwendete CS-Version angegeben werden.

Alte Lizenzen sind unbeschränkt weiterhin gültig. Neue Lizenzen können dann jeweils für die freigegebene CS-Version (und die angegebene Mac-ID) verwendet werden.

Im Bestelldialog wird ab jetzt die CS-Version eingetragen.

07.05.2013
Bug 3245 - Gibt es zeitlich begrenzte Lizenzen?

Die Desktop-Plugins haben eine 30-Tage Testphase. Die Server-Plugins benötigen immer Lizenzen.

Gibt es auch zeitlich begrenzte Lizenzen?

Die gibt es jetzt. Lizenzen können bis zu einem festgelegten Datum gültig sein. Ein erweitertes Lizenznummern-Programm steht ebenfalls zur Verfügung.

Vergebene Lizenzen sind natürlich weiterhin gültig.

07.05.2013
Bug 3244 - Sync -1 macht Unterschiede zwischen den verschiedenen Leerzeichen

Das ist zwar richtig, aber schöner wäre es, wenn da keine Unterschiede gemacht würden. Z.B. setzen Layouter manchmal statt der normalen Leerzeichen nicht trennbare Leerzeichen ein. Das soll dann aber nicht zum Out-Of-Sync des Platzhalters führen.

Alle Arten Leerzeichen (Unicode 0x2000 - 0x200F) werden jetzt durch Blanks ersetzt.

Alle Arten Trennzeichen (Unicode 0x2010 - 0x2016) werden jetzt durch Minus ersetzt.

Erst danach werden Strings bei Sync-1 verglichen.

06.05.2013
Bug 3181 - Mehrfaches Drag&Drop aus der Previewpalette

Analog zur Produktrecherche sollte auch aus der Previewpalette ein mehrfaches Drag&Drop möglich sein.

Das geht jetzt. Wie bei den Produkten kann auch hier die CMD-Taste gehalten werden. Dann wird nach dem Platzieren sofort reorganisiert.

Achtung : Drag-Drop geht nur dann, wenn ausschließlich Einträge ausgewählt sind, mit denen das auch geht.

06.05.2013
Bug 3243 - Einfügen in 1:N erzeugt mitunter sehr viel Weißraum

Ich habe ein 1:N-Element mit zwei Produkten. In diesem Element wird jetzt mit gehaltener Cmd-Taste ein weiteres Produkt platziert (Drag-Drop). Nach dem dadurch ausgelösten Aufräumen steht im ursprünglichen Element nur noch ein Produkt. Das zweite und das neue Produkt werden in einem neuen Seitenelement platziert.

Das war ein Fehler im Sortier-Algorithmus der Produkte und ist gefixt.

06.05.2013
Bug 3242 - Reorganisation des ersten 1:N-Elementes falsch

Beginnt die Reorganisation in einem 1:N-Element, wird in diesem Element unter den folg. Umständen falsch platziert :

  1. Die Reorganisation beginnt nicht beim ersten Produkt (Cometgruppe) des Elementes
  2. Das Element enthält mehrere "Spalten".

Nach der Reorganisation dieses Elementes stehen die Produkte alle untereinander.

Der Fehler ist gefixt.

06.05.2013
Bug 3241 - Reorganisieren mit mehreren Ebene zerstört Ebenen-Zuordnung (aber nicht immer)

Ich habe ein Template mit mehreren Rahmen, die per Gestaltungsregeln auf verschiedene Ebenen verteilt werden. Als Ausführungszeitpunkt der Gestaltungsregel habe ich "Beim Laden von Platzhaltern" und "Bei Seitenreorganisation" gewählt.

öffne ich nun das Dokument, was ich reorganisieren will und beginne direkt mit der Arbeit in der "Produkte des Dokumentes-Palette", so zerschießt der Prozess die Ebenen-Zuordnung. Mache ich das Debakel mit Cmd-Z wieder rückgängig und führe es erneut aus, funktioniert das.

Es findet kein Templatewechsel statt und so sollte der Reorg.-Prozess die Cometgruppen doch nur verschieben, oder?

Das Problem ist gelöst. Zusätzlich werden auch bei Template-Wechseln während der Reorganisation die Ebenen-Zuordnungen jetzt wieder hergestellt (vorausgesetzt, die Kennungen stimmen.)

Der Fehler trat immer dann auf, wenn in einem 1:N-Element Rahmen NICHT bearbeitet wurden. Du hast in einem 1:N beispielsweise 10 Produkte und erst ab dem sechsten wird reorganisiert. Bei den 4 Produkten, die nicht reorganisiert wurden (die aber natürlich trotzdem neu platziert werden müssen), waren die Ebenen falsch.

03..5.2013
R3733

01.05.2013

Bug 3237 - Nails&Magnets / Unterschiedliche Darstellung beim öffnen von Templates

macht es einen Unterschied bei Nägel und Magneten, ob ich das Template per Doppelklick öffne, oder per Drag&Drop? Ich bekomme bei Doppelklick nämlich Magnetverbindungen angezeigt, die ich nie angelegt habe. Und zu allem Übel scheinen diese auch wirklich da zu sein.

Der Fehler ist gefixt.

01.05.2013
Bug 3234 - Aktionen und Palettenscripte zurücksetzen ignoriert FrontRow

wenn ich ein Script in FrontRow definiert habe, änderungen mache und dann "Aktionen und Palettenscripte zurücksetzen" durchführe, ignoriert FrontRow das und führt noch den alten Code aus.

Gefixt.

30.04.2013
Bug 3236 - fit_col mit tabellen im Übersatz funktioniert nicht immer Ja, da hilft leider alles nichts. InDesign® versagt unter Umständen beim Anpassen des Rahmens an seine Grösse. Ich hab mir deshalb einen Workaround ausgedacht - table::fit_col funktioniert jetzt auch für Tabellen im Übersatz richtig. 30.04.2013
Bug 3235 - Optimierung von frame::fit und Gestaltungsregel "Rahmen anpassen"

Es gibt immer wieder Fälle, in denen frame::fit nicht funktioniert. Wir haben deshalb eine alternative Lösung für das Anpassen des Rahmens an seinen (Text)inhalt implementiert. Um es zu aktivieren, hat frame::fit den weiteren Parameter precision bekommen. Ist der >= 0.0001, werden Textrahmen nach dem neuen Verfahren udn mind. in der angegebenen Präzision angepasst.

Beachten Sie bitte : Die untere Grenze von 0.0001 bedeutet eine Genauigkeit von ungefähr drei Hunderttausendstel. Das dauert dann aber auch etwas.. Gute Werte erreichen Sie auch schon mit der Präzision 0.1 (immerhin eine Genauigkeit von mind. 3/100 mm).

30.04.2013
Bug 3232 - OCI liefert über cScript keine int-Werte

Das Ergebnis aus den selects ist immer 0. Hier ein Testscript:

#include "internal/types.h"

int main ()
{
	int  		id;
	char 		sid [4000]; 
	float		right;
	Query  		qu 		= sql::query(sql::dbconnection());
	
	query::send(qu, "select id, name, RightPos from pageitems where id > 0");
	query::output(qu, kInt, 	&id);
	query::output(qu, kString,	sid,1000);
	query::output(qu, kFloat,	&right);
	query::exec(qu);
	
	while (query::fetch(qu))
	{
		wlog ("", "	[%d, %f, '%s']\n", id, right, sid);
	}

	query::close (qu); 

	return 0;
}

Der Fehler ist gefixt.

30.04.2013
Bug 3231 - Reader-Plugins fordern Lizenz / Platzhalter nicht immer sichtbar

mein Kunde nutzt doch tatsächlich die Reader-Plugins :)

Ich habe mich an Deine Aufstellung aus Bug #3120 gehalten und bei R3700 motzt dann (wahrscheinlich) PageTemplates[Model] rum, dass es eine Lizenz braucht. Interessanterweise ist das nicht immer so. Beim ersten Starten ging es, dann später beim öffnen eines Dokuments, kam dann die Meldung. Ohne PageTemplates[Model] geht es anscheinend.

Mit R3600 hatte mein Kunde das Problem, dass nicht immer das Kontextmenü "Platzhalter" zum Einblenden der Platzhalter zur Verfügung stand. Er hat dann einfach einmal ohne Plugins gestartet und danach wieder mit. Dann waren die Platzhalter auch sichtbar.

Das muss man wohl immer wieder machen. Bei einem weiteren InDesign®-Neustart sind dann die Platzhalter wieder nicht sichtbar.

Kannst Du Dir darauf einen Reim machen? Ich kann den Fehler leider nicht festnageln.

1/ Pagetemplates

Das ist gefixt. Die Warnung erscheint jetzt nicht mehr.

ACHTUNG: Das Menü "Seitenelemente zeigen" ist im Reader nicht verfügbar. Seitenelemente werden nur in Seitentemplates gezeigt.

2/ Menü Platzhalter zeigen

Das war ein bisschen schwieriger. Für den Fix waren über 50 änderungen, schön verteilt auf alle Plugins, nötig. Das Menü wird jetzt nicht mehr entfernt.

29.04.2013
Bug 3230 - Gestaltungsregel "Rahmen anpassen" kann zu InDesign®-Abstürzen führen

ich mache hier gerade im Projekt mit geschützten Leerzeichen und "Zero Width Non Breaking Space" rum, um in einem Textrahmen bestimmte Werte nicht umbrechen zu lassen. Damit habe ich es geschaft das "fit frame" ins Nirvana zu schicken, was aber eigentlich nicht passieren dürfte.

Ja. Ich habe bei Einzeilern eine Notbremse. Bei mehrzeiligen Texten nicht. Im Logfile sieht man, dass der Rahmen irgendwann ziemlich groß geworden ist. Oder genauer :

182152953770401445900179888555996217344,0 points
= 1,821529537704e+38 points
= 6,425951428726e+34 m
= 6,425951428726e+31 km
= 6,792236019565e+18 Lichtjahre

4,312719079682e+23 mal die Entfernung zur Sonne

oder auch 500 Millionen mal die Entfernung zum weitesten bekannten Stern im Universum (was auch schon 13 Mio Lichtjahre sind).

warum also in die Ferne schweifen - sie liegt so nahe... Ich verstehe nicht, dass InDesign® damit nicht umgehen kann. Das könnte man eigentlich erwarten. Nun gut, dann halt eine Bremse nach 5.000 Seiten.

Damit geht das dann. Bzw., es geht natürlich nicht. Der Rahmen kann nicht angepasst werden. Aber es kommt kein Absturz mehr.

29.04.2013
R3700

24.04.2013

Bug 3229 - Sichtbarkeit von Templates nur einstellbar, wenn genau ein Template ausgewählt ist

Im Meta-Daten-Dialog der Template ist das Popup zur Sichtbarkeit immer deaktiviert, wenn mehr als Eintrag in der Template-Palette ausgewählt ist. Da könnt ich mir vorstellen, wäre es doch schön, wenn mal auch mal mehr als einem Template sagen könnte, das es nur in der Produktrecherche sichtbar ist.

Das geht jetzt.

23.04.2013
Bug 3219 - Preview-Panel sieht auch immer Templates für die Produktrecherche

Du hast ja in den Template-Metadaten die Möglichkeit eingebaut die Sichtbarkeit der Templates zu definieren.

Wenn ich einem Template mitgebe, dass es nur in der "Preview-Palette" sichtbar sein soll, finde ich es folgerichtig nur noch dort und nicht mehr in der Auswahl der Produktrecherche.

Mir fehlt jetzt aber der umgekehrte Fall. Ich hab nämlich lauter Templates in der Auswahl der Preview-Palette, die ich da gar nicht haben will und die mit dessen IDs auch nicht umgehen können. Die Einschränkung auf "nur Desktop" ist der Preview egal, weil sie ja sachlich auch zum Desktop gehört.

Da fehlt mir quasi sowas wie: Nur in Produktrecherche anzeigen.Ideal wäre wohl ne Mehrfachzuordnung via Textfeld, anstatt per DropDown. Würde die Sache jetzt auch nicht wirklich verkomplizieren.

emptystring = überall sichtbar
W = im Whiteboard sichtbar
D = im Desktop sichtbar (schließt P und PV ein)
S = im Server sichtbar
P = in Produktrecherche sichtbar
PV = in Preview sichtbar

Dann könnte man kommagetrennt (o.ä.) konfigurieren:
"W,D"
"W,P" usw.

..und erweiterbar für kommende Paletten wäre es auch :-)

Ob das jetzt nen Bug oder nen Feature ist... da kann man würfeln. Defakto ist die Einschränkung auf "nur Preview-Panel" kaum sinnvoll, wenn die Gegenbeziehung nicht funktioniert, oder?

Ich muss ja immer bis Pharao Ramses zurück kompatibel bleiben. Die Sichtbarkeit war leider irgendwann nur ein Bitfeld. Die o.g. Vorschläge sind zwar schön, bekomm ich aber leider in den Datenstrukturen nicht unter. Es gibt daher ganz simpel noch eine weitere Einstellung "nur Produktrecherche" - das hilft auch schon mal weiter.

23.04.2013
Bug 3227 - table::fit_col ist sehr langsam

Die Funktion table::fit_col ist jetzt etwa 75% schneller.

Sie hat ausserdem einige Parameter mehr, mit denen mit günstigen Eingaben weitere Optimierungen vorgenommen werden können.

Die Funktionen table::compress_colwise und table::woodoo verwenden ebenfalls fit_col und sind entsprechend ebenfalls etwa 75% schneller.

22.04.2013
Bug 3223 - Server-Aufbau verdoppelt Musterseitenrahmen

Nach zweimaligen Aufbau im Whiteboard in das selbe InDesign®-Dokument sind die von der Musterseite losgelösten Rahmen verdoppelt. Baut man im Desktop auf, werden die Rahmen NICHT verdoppelt.

Also, ganz nüchtern betrachtet ist das ein InDesign®-Bug. Man ganz es ganz einfach und ohne Comet-Plugins nachstellen :

  1. Neues Dokument mit einer Seite erzeugen
  2. Auf der rechten Musterseite einen Rahmen anlegen
  3. Auf die "normale" Seite gehen und dort den Musterrahmen freistellen (Cmd-Shift-Click auf den Rahmen)
  4. Den Rahmen ein wenig verschieben
  5. In der Seiten-Palette die Musterseite noch mal auf die Seite ziehen (also die Seite noch einmal mit der aktuellen Musterseite verbinden)

Und jetzt sieht man es schon : Der Rahmen ist ZWEIMAL da. Glasklare Sache.

In CS6 funktioniert es teilweise: Nur der Fall, dass die GLEICHE Musterseite erneut gesetzt wird, ist jetzt okay. ändert sich die Musterseite, bleiben auch hier freigestellte Musterelemente auf der Seite stehen.

Das Problem ist gefixt sowohl für alle Comet-Funktionen, die Musterseiten setzen können als auch für Javasscript und alle Bordmittel, in denen Musterseiten gesetzt werden. (Freigestellte Musterseiten-Rahmen werden also z.B. auch dann richtig von den Seiten entfernt, wenn die Musterseite manuell über die Palette 'Seiten' verändert wird.)

Achtung I: Das klappt nur bei Rahmen, die mit installierten Comet-Plugins mind. ab v3.3 R3637 freigestellt wurden! Musterseiten-Rahmen, die vorher oder ohne Comet-Plugins freigestellt wurden, bleiben auf den Seiten stehen.

Achtung II: Wird ein freigestellter Rahmen dupliziert (aber warum sollte man das tun?), werden auch die Duplikate gelöscht!

16.04.2013
Bug 3218 - Preview-Details-Panel / Fehler beim Lesen des Bildes

Wenn ich die Preview-Details aufmache, schlägt mir folgender Fehler entgegen:

"Fehler beim Lesen des TIFF-Bilds. Das Bild ist u.U. beschädigt oder inkompatibel. Speichern Sie das Bild mit anderen Einstellungen, und versuchen Sie es erneut."

Eigentlich ja eine klare Anweisung. Er kann das Bild nicht lesen.

Aber, das Preview-Panel meckert nicht und auch in den Preview-Details zeigt er eine Vorschau. Nur die Fehlermeldung ist komisch.

Gefixt.

Adobe kann solche TIFFs zwar als Bilder in Dokumenten platzieren. Aber die API-Aufrufe zum Ermitteln der Bilddaten zeigen den o.g. Fehler. Der Dialog ist leider auch nicht unterdrückbar.

15.04.2013
Bug 3224 - Unicode-Zeichen in Parametern von Layoutrules werden in der Liste der Regeln codiert (0x2009) angezeigt)

Das ist gefixt.

15.04.2013
R3636

14.04.2013

Bug 3222 - document::export_ exportiert keine Bildrahmen

Im XML von documen::export_ sollten eigentlich auch die Informationen von Bildrahmen enthalten sein :

<PictureBox>
...
</PictureBox>

Bildrahmen werden aber leider nur als reguläre Rahmen ohne Bildinfos exportiert.

Ab CS5 hat Adobe das Verfahren geändert, wie die Informationen von Bildrahmen ermittelt werden. Seither fehlen die Bilddaten in der Ausgabe von document::export_.

Ist gefixt.

14.0.4.2013
Bug 3221 - document::export_ schreibt falsches xml

Die mit document::export_ geschriebenen XML-Dateien sind fehlerhaft. Die Dateien sollen Kommentare der Form

<!-- Page 1  ************************ -->

enhalten. Leider werden aber die spitzen Klammern als &lt; und &gt; dargestellt.

Das ist gefixt.

14.0.4.2013
Bug 3217 - Umgebungsvariablen beim Laden der Preview-Palette per cScript

In der Doku steht: Ab Version 3.1 R 1730, 5. Feb. 2010] Listeneinträge können auch mit Hilfe eines Skriptes geladen werden. Sehr cool. Das Beispiel funktioniert auch.

Aber... wie komme ich denn jetzt an die ID des Platzhalters, bzw. des Produktes.

n reinem SQL wäre das mit dem Tag "<selected.stringID>" möglich... und in C-Script?

Die Platzhalter-relevanten Infos kannst Du so bekommen:

ItemRef	frame    = item::alloc ();
int		s, e;
int		ID		= 0;
char	sid	[5000];

textmodel::selection (&s, &e, frame);
if (s >= 0)
{
	plid = placeholder::get_value (frame, "ID", s);
	strcpy (sid, placeholder::sget_value (frame, "StringID", s));
}

Die Produkt-relevanten Infos bekommst Du so:

StringList	sl		= stringlist::alloc (3, kSelected);
char		row1[5000];
int			tid		= 0;

if (stringlist::length (sl) > 0)
{
	tid	= stringlist::getint (sl, 0, "PageitemID");
	stringlist::gettext (sl, 0, "Num", row1);
}
10.04.2013
Bug 3200 - Aufgabenmanagement listet Übersatz auf

... obwohl optisch keiner zuerkennen ist.

Das Problem trat immer dann auf, wenn ein Platzhalter bis in den internen Zellentrenner lief.

Das Problem ist gefixt.

09.04.2013
Bug 3214 - Fehler bei int-Konstanten in cScript
int main ()
{
	int i = 4294967290;
	
	wlog ("", "%d\n", i);
	
	i = 4294967296;
	wlog ("", "%d\n", i);
	
	return 0;
}

Mit diesem Skript erhält man - leider - die Ausgabe

-6
0


Was ein bisschen, nun ja, verwirrend ist.

Im Normalfall werden so große Zahlen nicht benötigt. Intern werden aber z.B. gFrame, gDocument, gNewValue, ... als ADRESSE auf eine im Plugin definierte Variable an die Skripte übergeben. Und diese Adressen können durchaus so große Werte annehmen.

Das ist gefixt.

ACHTUNG

Der Fehler ist ein schwerer. Er betrifft alle Releases ab R3398.

DIE RELEASES R3398 - R3605 SOLLTEN DAHER NICHT VERWENDET WERDEN!

09.04.2013
Bug 3213 - Notizen folgen zwar Rahmen, aber nicht InDesign®-Gruppen

Wird ein Rahmen verschoben, folgen alle Notizen, die auf den Rahmen zeigen, diesem Rahmen nach. Das ist schön. Sind die Rahmen aber InDesign®-gruppiert, funktioniert das nicht.

Gefixt.

08.04.2013
Bug 3212 - Verbindung von Notizen zu InDesign®-gruppierten Rahmen werden nicht richtig gezeichnet

Bei Notizen, die auf InDesign®-Gruppe verweisen, werden mitunter die Pfeile von den Notizen zur jeweiligen Gruppe nicht richtig gezeichnet : Verschiebt man die Gruppe auf eine andere Seite des Spreads, zeigt der Pfeil plätzlich ins Leere. Wird die Gruppe wieder auf die Seite der Notiz zurückgeschoben, wird der Pfeil wieder richtig gezeichnet.

Gefixt.

08.04.2013
Bug 3210 - Nur Gestaltungsmethoden einer Tabelle ausführen

Gibt es irgendeine Möglichkeit, die Gestaltungsmethoden einer Tabelle aufzurufen, ohne die Tabelle dafür neu aufzubauen?

table::build hat jetzt einen zusätzlichen Parameter, der die Werte -1, kPreAction, kPostAction, kPreActionTable, kPostActionTable haben darf. Die Werte ungleich -1 unterdrücken den Aufbau der Tabelle/Zelle und führen nur die angegebenen Tabellen-Gestaltungsregeln aus.

05.04.2013
Bug 3209 - Abfrage ob Option "Platzhalter laden" in der Produktrecherche eingeschaltet ist (Grüner Pfeil)

Habe ich die Möglichkeit die Option, den grünen Hacken rechts unten in der Produktrecherche in CScript abzufragen? So könnte ich diese Einstellung in diversen Skripten berücksichtigen.

Mit den Funktionen

list::get_autoload
list::set_autoload

geht das jetzt.

05.04.2013
Bug 2323 - image::snapshot_frames ignoriert den Parameter *quality*

In CS 6 R3355 the quality of the preview is too low even if requesting the highest possible quality.

Die Einstellungen ..., kJPEGGreatQuality haben lediglich Einfluß darauf wie das erzeugte Bild gesichert wird. Sie haben KEINEN Einfluss auf die Qualität des Previews selbst.

Die kann man eigentlich nur über zwei Eistellungen ändern : Die Grösse des Previews in Pixel oder die Auflösung. Das Erste wird zur Zweit leider falsch ausgewertet (ist jetzt gefixt). Und die Auflösung war fix auf 72 dpi gesetzt. Dafür haben die folg. Funktionen jetzt einen zusätzlichen (optionalen) Parameter :

image::snapshot_page
image::snapshot_frame
image::snapshot_frames

02.04.2013
R3600

24.03.2013

Bug 3205 - Absturz bei linklist::collect_any()

In bestimmten Konstellationen stürzt InDesign® bei linklist::collect_any() ab. Leider nicht immer, und ich kann auch nicht herausfinden, wo das Problem liegt.

Das ist gefixt, war eine Folge des Fixes von Bug 3188.

28.03.2013
Bug 3204 - Nails&Magnets / Alternativ-Verbindungen zu BottomCenter funktionieren nicht

wenn ich eine Alternativ-Verbindung von Rahmen zu TopCenter mache, funktioniert alles, wie gewünscht. Ist das Ziel aber BottomCenter, funktioniert das nicht.

Ja, hatte ich nicht bedacht. Wir waren immer davon ausgegangen, dass die Rahmen untereinander liegen - und plötzlich gibt es negative Abstände. Und - ja klar - wenn die alternative Rahmen UNTER dem Ziel-Rahmen liegen, geht es auch nicht.

Das ist jetzt alles gefixt. Einzige Bedingung ist : Die Kanten, von denen die alternativen Magneten ausgehen, müssen alle auf der gleichen Seite der Zielkante liegen.

Die beiden Abbildungen zeigen die verschieden Möglichkeiten, alternative Magnenten für vertikale Anpassungen zu setzen.

    

    

28.03.2013
Bug 3207 - Absturz beim Beenden von InDesignServer

Unter nicht sicher reproduzierbaren Bedingungen stürzt InDesign® Serverfbeim Beenden ab.

Der Fehler hängt mit jüngsten änderungen (R3530) zusammen, da wurde das Verhalten beim Beenden generell erstmal verbessert: es wird aufgeräumt, noch offene Templates etc. geschlossen und Zwischendateien gelöscht. Allerdings ist die Anwendung zu diesem Zeitpunkt nicht immer noch (aber manchmal schon) in einem Zustand, der Schließen von Dokumenten erlaubt, das wird jetzt geprüft und damit ist der Fehler behoben.

Gefixt

28.03.2013
Bug 3206 - Absturz bei table::... Funktionen mit InDesign® Serverfx64

In bestimmten Konstellationen und insbesondere beim Verarbeiten größerer Dokumente bzw. Aufbau-Jobs stürzt InDesign® Serverfbei einigen cscript-Funktionen zur Tabellengestaltung (z.B. table::broaden_to_frame) ab.

Gefixt.

28.03.2013
R3579

24.03.2013

Bug 3188 - Duplikate in linklist::collect()

Wenn Textrahmen, die Platzhalter enthalten, verkettet sind, erscheinen die Platzhalter mehrfach im Ergebnis von linklist::collect - und zwar einmal für jeden Rahmen in der Kette. Das passiert nur, wenn Rahmen der Kette (müssen nicht alle sein) gruppiert sind.

linklist::collect_any() scheint das gleiche zu tun.

Ist gefixt.

18.03.2013
Bug 3197 - textmodel::get_parastyle() abhängig von Dokumentauswahl

Die Werte, die textmodel::get_parastyle() für start und length zurückgibt, sind irgendwie abhängig davon, ob im Dokument ein Rahmen ausgewählt ist, obwohl gFrame gar nicht verwendet wird.

Im vorliegenden Fall wird das genutzt, um sprachabhängig Stile im Dokument zu tauschen. Sobald ein Rahmen ausgewählt ist, läuft das Script in eine Endlosschleife, sonst funktioniert's.

Irrtümlicherweise wurden die Textpositionen der Eingabe gegen das Textmodel des Skriptes geprüft und nicht, wie es richtig gewesen wäre, gegen das Textmodel des SkriptAUFRUFES. Der Fehler ist gefixt.

Der gleiche Fehler betraf auch die folg. Funktionen:

18.03.2013
Bug 3185 - Scripte mit SyncID -1 finden nichtexistente Fehler

Wenn der zu prüfende Text ein einfaches Hochkomma ' enthält, wird der Platzhalter in der Aufgabenpalette angezeigt. Im Infobereich unten steht dann "Beide Inhalte sind gleich". Ein typografisches Hochkomma ’ oder ‘ macht keine Probleme.

Ist gefixt.

18.03.2013
Bug 3198 - Textgestaltungsregel bzw. -Bedingungen / Fehler in der Doku?

In der Doku heißt es:

ClassID 51 // Bedingungen für Gestaltungsregeln von Textplatzhaltern
ClassID 52 // Gestaltungsregeln von Textplatzhaltern

Das ist aber genau umgekehrt implementiert.

Doku ist korrigiert.

18.03.2013
Bug 3199 - Darstellung der Tool-Menüs 'Nägel' und 'Magneten' fehlerhaft

Wenn man auf das Magnet-Tool in der Werkzeugleiste klickt, klappt das Untermenu nach links aus. Wenn man nur einen Bildschirm hat, ist das ziemlich blöd.

Und es ist auch ziemlich unpraktisch, dass der Text in einer Zeile steht, er nimmt bei mir die gesamte Breite des 1920 px breiten Bildschirms ein.

Beim Mac werden die Titel der Tools für die Menü-Namen nach dem ersten Return abgeschnitten, für die gelben Hilfetexte werden sie vollständig angezeigt. Offenbar ist das unter Windows anders. Aber das kommt von Adobe - wir können da nichts machen.

Ich habe deshalb die Tooltexte für Windows generell gekürzt. Die Menüs sehen jetzt aus wie im Screenshot. Die Hilfetexte sind dafür wesentlich kürzer. Anders gehts offenbar nicht. Alle Versuche mit anderen Zeilentrennern haben leider keine Veränderung gebracht.

Damit die Hilfe für die Werkzeuge nicht ganz verloren geht, befindet sie sich jetzt in dem gelben Zettel des ersten Buttons der Palette ().

18.03.2013
Bug 3196 - Cometgruppen (nicht) persistent

Wir haben heute einen Fehler in den Comet-Plugins entdeckt, der unser aller Aufmerksamkeit seit Einführung der persistenten Cometgruppen in v3.2.1 R2356 (17. März 2011!) entgangen ist. Er bewirkt folgendes :

Ein Dokument enthalte 3 Produkte:

Seite 1 : Cometgruppe 100
          Cometgruppe 200
Seite 2 : Cometgruppe 300

Zwischen 100 und 200 wird jetzt das 400 Produkt eingefügt. Nach Reorganisation landet 200 mit neuem Template auf Seite 2 :

Seite 1 : Cometgruppe 100
          Cometgruppe 400
Seite 2 : Cometgruppe 200
          Cometgruppe 300

Soweit, so gut. Das Dokument wird gesichert und geschlossen. Nach Neuöffnen sehen die Cometgruppen aber so aus :

Seite 1 : Cometgruppe 100
          Cometgruppe 400
Seite 2 : Cometgruppe 2345
          Cometgruppe 300

Der Inhalt der Gruppe ist vollkommen richtig. Die Gruppennummer 2345 leider nicht.

Der Fehler ist gefixt.

13.03.2013
Bug 3195 - Funktionen zum Ermitteln der UIDs von Seiten und Spreads

Für die Verwaltung von Comet-Notes werden die UIDs von Seiten und Spreads benötigt.

Mit den neuen Funktionen

    page::get_spread
    document::get_pageref
    document::get_spreadref

geht das jetzt. Mehr dazu in der Doku. Hier ein Beispiel:

int main ()
{
	int		pg			= page::get (gFrame);
	int		indexInSpread;
	int		spread		= page::get_spread (0, pg, &indexInSpread);	
	ItemRef	pageRef		= item::alloc ();
	ItemRef	spreadRef	= item::alloc ();

	document::get_pageref (pageRef, 0, pg);
	document::get_spreadref (spreadRef, 0, spread);

	wlog ("", "Spread %d (%d), Seite %d (%d), %d. Seite im Spread\n",
			spread, item::getint (spreadRef),
			pg, item::getint (pageRef), indexInSpread);
	return 0;
}
08.03.2013
Bug 3194 - frame::image setzt keinen Alphakanal

In der Funktion frame::image sind ja Angaben für einen Alphakanal möglich. Das scheint nicht zu funktionieren.

Ja, immer dann, wenn die Alpha-Kanäle keine Namen haben (auch wenn man den Index verwdendet). Dabei haben A-Kanäle meist keinen Namen.

Das Problem ist gefixt. Die Angabe des A-Kanales erfolgt jetzt immer über den Index. Der Name des Kanales wird nicht mehr ausgewertet.

08.03.2013
Bug 3193 - Funktion zum Setzen eines Alphakanales fehlt

Das geht jetzt mit image::set_alpha_channel.

08.03.2013
Bug 3192 - image::setclip wird von InDesign® Serverfnicht ausgeführt

image::setclip wird jetzt von InDesign® Serverfausgeführt.

08.03.2013
Bug 3186 - InDesign® Server wendet Freistellpfade nicht an

Die Anweisung

frame::image (frame, "bild.tiff", kPlaceCentered, kFitBigContentProp, 0);

soll eine Bild platzieren und den ersten Freistellpfad des Bildes anwenden. Macht sie auch. Aber nur in den Desktop-Plugins. Am Server nicht.

Ist gefixt. Die Anweisung wird jetzt auch bei InDesign® Server richtig ausgeführt.

08.03.2013
Bug 3187 - Freistellpfad kann nicht wieder aufgehoben werden

Ich habe mit frame::image ein Bild platziert. Dabei habe ich einen Beschneidungspfad anwenden lassen. Später will ich das Bild ersetzen und KEINEN Beschneidungspfad mehr anwenden. Wie bekomme ich den denn wieder weg? Ist einmal ein Pfad gesetzt, hilft es leider nichts, die Funktion mit kIgnoreClipping aufzurufen.

Stimmt leider. Dafür gibt es jetzt die neue Konstante kResetClipping. Dann wird der Pfad auf alle Fälle zurück gesetzt.

08.03.2013
Bug 3190 - Float vergleich liefert unerwartete Werte

z.B: bei Int kommt ja bei einem Vergleich zwischen 4<5 = 1 und 4> 5 = 0 raus jedoch bei FLOAT kommt hier 4.<5.0 = 1928658603321851904

Das ist gefixt. Der Rückgabe-Wert war 1.0. Die dabei angewendete IEEE-Norm-Darstellung sieht als INT genauso aus wie oben beschrieben :-)

07.03.2013
Bug 3180 - Int-Vergleiche schlagen fehl

Unter manchen Bedingungen schlagen int-Vergleiche fehl :

Aus den Vergleichen geht phase mit dem Wert -1 hervor. Wo man doich eigentlich 3 erwarten würde.

int		k = 26;
int		phase;

if (k == 21 || k == 34 || k == 35)		phase = 1;
else if (k == 23)						phase = 2;
else if (k == 22||k == 26||k == 36)	phase = 3;
else									phase = -1;

Mit der 3.3 Rev 3313 tritt das Problem nicht auf.

Das Problem ist gefixt. Es war eine weitere Folge von Bug 3168.

22.02.2013
Bug 3172 - list::get_pos mit Rückgabe -1 (nicht gefunden) funktioniert nicht mehr

Ich glaube, ich bin grade über einen Fehler in den neuen PlugIns gestolpert. Offenbar funktioniert eine Abfrage à la

    if (list::get_pos(placedIDs,SGID,0)==-1)

nicht korrekt.

Ist gefixt. Das war eine Folge von Bug 3168.

22.02.2013
Bug 3178 - Neue Methode fit_row analog zu fit_col

Schön wäre es eine Methode zu haben, die die Zeilenhöhe so anpasst, dass keine Zelle mehr einen Übersatz hat. Analog zur Methode fit_col, die die Spaltenbreite entsprechend anpasst.

Habe mir so eine Methode selbst programmiert und die Laufzeit ist nicht so berauschend, vielleicht gibt die interne InDesign®-API da mehr her.

Ich passe die Zeilenhöhen schrittweise so lange an, bis die Zellen keinen Übersatz haben. Da nach dem Anpassen der Zellenhöhe ein Aufruf von textmodel::force_redraw() notwendig ist (siehe Bug #2957) dauert es bei einer kleinen Tabelle (27 Zeile, 3 Spalten) schon mal so 16-20min, bis die aufgebaut und angepasst ist. Durch eine Veränderung der Schrittweite komme ich immerhin schon auf 4min, aber das ist immer noch ganz schön lange für eine eher kleine Tabelle.

Die Laufzeiten stammen von einem PC auf einem Mac sind die, warum auch immer, bei gleichem Code und comet-Projekt deutlich geringer.

Ich hab dazu mit Andreas, der sich, wie ja jeder weiß, auskennt, gemailt :

  • Er so: Sollte er nicht einfach mal ne Tabellenzeile mit einer Mindesthöhe in InDesign® definieren? Dann hat er auch keinen Übersatz mehr.
  • Ich: Ja, das war eigentlich auch, was ich mir so gedacht hab. Ich konntes nur noch nicht prüfen. Das löst das Problem, oder?
  • Er so :Also wenn wir ihn nicht komplett missverstehen, sollte das Problem damit erledigt sein. Ich nehme an, dass er eine fixe Höhe angegeben hat und so erst Übersatz entsteht. Mindesthöhe auf 1,058 mm und Attacke. Es könnte aber auch sein, dass er für die Zelle/Zeile eine zu geringe Maximalhöhe angegeben hat, die steht im Standard auf 211,irgendwas mm. Dann kann natürlich auch Übersatz in einer Zelle entstehen.
22.02.2013
Bug 3182 - Falsche Ergebnisse von XML-Queries bei mehreren InDesign® ServerfInstanzen

Laufen auf Windows mehrere InDesign® ServerfInstanzen parallel, kann es vereinzelt zu falschen Ergebnissen bei XML-Queries kommen. Der Fehler lässt sich vor allem im Autocomet / Batch Betrieb bei mehreren unterschiedlichen Konfigurationen (=config.xml's) beobachten, in anderen Szenarien ist das Auftreten extrem unwahrscheinlich und daher vermutlich kaum zu orten.

Ursache waren konfligierende (jetzt darf ich diesen Begriff endlich auch mal verwenden) temporäre Dateien des XML Parsers. Gelöst ab R3450

22.02.2013
Bug 3183 - Cometgruppen nach UNDO nicht mehr auflösbar

Nach einem Template-Tausch und anschliessendem Undo sind Cometgruppen mit itemlist::get_cometgroup_members nicht mehr auflösbar. Auch alle anderen Befehle (remove_cometgroup, resolve_cometgroup, ...) funktionieren nicht mehr.

Das Problem sind die Undos.

Hintergrund

Cometgruppen werden über die UIDs der Rahmen gebildet. (UIDs sind eindeutige Nummern der Objekte eines INDD-Dokumentes die immer weiter wachsen. Einmal verwendete Nummern werden nie wieder verwendet.) Beim Template-Tausch gehen diese UIDs verloren und die neuen Rahmen werden (mit neuen UIDs) neu gruppiert (ein scheusslich schwieriger Prozess, der noch dadurch erschwert wird, dass InDesign® nicht RahmenLISTEN kopiert, sondern immer nur einzelne Rahmen - das sieht nur nach aussen so aus, als wäre das ein Schritt). Wie auch immer, nachdem alle internen Verweise für die Cometgruppe aktualisiert wurden, hat die Cometgruppe natürlich eine neue ID.

Jetzt kommt DER KUNDE und sagt, naja, aber wir haben zu diesem Produkt eine Cometgruppen-ID irgendwo hinterlegt, die finden wir ja jetzt nicht mehr.

Und deshalb gibt es im Dokument eine Liste mit Wertepaaren "Erste ID - Aktuelle ID". Die wird nach jedem Copy/Paste, Neuanlegen, ... von Rahmen aktualisiert. Alles ist lieb und alles funktioniert.

Problem

Jetzt kommt ein Undo. Über dieses Ereignis informiert InDesign® nicht - und schon gar nicht darüber, was rückgängig gemacht. Die alten Rahmen (inkl. der alten) Cometgruppen-IDs sind wieder im Dokument. Aber leider auch noch der letzte Eintrag in der Liste mit den Wertepaaren. Wir bekommen ja gar nicht mit, dass die alten Rahmen wieder eingesetzt wurden. Sieht dann etwa so aus:

  • Gruppe mit der ID 100
  • Template-Tausch
  • Es entsteht die neue Gruppe 200
  • In die Wertepaareliste wird eingetragen : 100 - 200
  • Die getauschte Gruppe bekommt nach aussen wieder die 100
  • UNDO
  • Der Rahmen 200 geht wieder verloren, der Rahmen 100 kommt zurück
  • Der Rahmen 100 hat auch wieder die Cometgruppe 100
  • ABER : In der Liste steht weiter : 100 - 200

Und wenn man jetzt nach der Gruppe 100 sucht, dann sagt unsere Liste : Na, dann schau mal in 200 nach - und das gibt es nicht mehr. Also bleibt die Cometgruppe leer.

DAS PROBLEM GELöST

Hofix von R3133-2 für DEN KUNDEN

ftp://ftp.werk-ii.com//WERKII/Comet/Partner_Downloads/Hotfixes/2013_02_22_R3313-2

22.02.2013
R3444

11.2.2013

Bug 3172 - Merkwürdiges Verhalten bei xml::iattribute()

Wenn ich in einem Sync-Script xml::iattribute() oder xml::xattribute() verwende, setzt der Comet keinen Sync-Status mehr - zumindest bei einem Rahmenplatzhalter.

Jepp, ist gelöst.

Das Problem war der Aufruf einer InDesign®-API-Funktion mit deren Hilfe das XML-Element des aktuellen Skriptrahmens geholt wird (falls vorhanden). Die XML-Pfade in der o.g. genannten Funktion können ja auch lokal vom Rahmen ausgehen. Wie auch immer, diese Funktion hat die Rahmenreferenz als Eingabe benötigt - hat aber in diesen Parameter auch die Ergebnis-Referenz reingeschrieben. Das Skript hatte danach also eine leere Rahmenreferenz. Kein Wunder, dass dann nichts mehr geht.

11.02.2012
Bug 3177 - Vergleiche zwischen float und int/char*

Was passiert eigentlich, wenn ich einen float-Wert gegen ein int oder gar gegen einen char*-String teste? Der häufigste Fall ist sicher der :

float f = 12.3;
if (f == 0) ...

Das geht bereits seit langem. Im Beispiel würde "Falsch" herauskommen. Mit der Zuweisung f= 0.0 würde der Vergleich (f == 0) true ergeben.

Neu ist : Auch der Vergleich gegen Strings funktioniert :

if (f == "0")    // ⇒ true
if (f == "0.0")  // ⇒  true
if (f == "0.1")  // ⇒ false

Achtung: Der umgekehrte Fall des Vergleiches eines int-Wertes gegen ein float funktioniert gleich, wirkt aber anders. Auch hier wird VOR dem Vergleich der rechte Teil des Vergleiches auf den Datentyp des linken Teiles abgebildet. Das ergibt folgendes, auf den erstes Blick verwirrendes Ergebnis:

int i = 0;

if (i = 0.0)		// ⇒ true
if (i == 0.6)		// ⇒ ebenfalls true
if (i == -0.6)		// ⇒ ebenfalls true

Betrachtet man aber andere Operationn wie +, -, *, / ist das Ergebnis gar nicht mehr so verwirrend. Auch hier wird der rechte Teil der Operation zuvor auf den Datentyp der linken Seite abgebildet und dann die Operation ausgeführt und das
Ergebnis entspricht den Erwartungen:

int i = 0;
i = i + 1;		// ⇒  Neuer Wert von i ist 2
i = i + 1.6;	// ⇒  Neuer Wert von i ist 2
i = i + -1.6;	// ⇒  Neuer Wert von i ist 0
11.02.2012
Bug 3176 - Fehler bei float-Vergleichen in cScript

Seit der 64-Bit-änderung für cScript (Bug 3168) funktionieren Bedingungen mit float-Vergleichen nicht mehr zuverlässig.

Im folgenden Beispielcode kann es (muss aber nicht) passieren, dass der if-Zweig der Bedingung besucht wird:

float 	x;
...

x = 1.5
if (x <= 0.0)
{
}
else
{
}

Schrecklich, aber wahr. Der Fehler ist gefixt.

11.02.2012
Bug 3175 - Was ist denn das für ein Kritzel-Kratzel-Zeichen in der Batch-Palette vor dem aktuellen Jobnamen?

Das sollte ein • (Bullet-Point) sein. Den hat der VisualStudio-Editor beim Editieren der C++-Datei kaputt gemacht. Ist gefixt - und zwar so, dass VS ihn nicht mehr kriegt.

08.02.2013
Bug 3174 - document::path in Batch-Jobs liefert Leerstring

Ich frage in meinem Batch-Job nach dem aktuellen Dateipfad des Dokumentes. Leider ist der immer leer.

Tja, dann ist das Original-Dokument (DMN_SCHEDULEDJOBS.TemplatePath) in einer älteren CS-Version. Dann wird zwar eine Kopie der Datei gezogen. Beim öffnen wird aber eine neues, konvertiertes Dokument gerzeugt - das natürlich keinen Dateipfad hat.

Für DMN_SCHEDULEDJOBS.ObjectPath = "/dev/null" ist das mit Bug 3173 gefixt. Für alle anderen Situationen muss die unter DMN_SCHEDULEDJOBS.TemplatePath angegebene Datei der aktuellen CS-Version entsprechen.

08.02.2013
Bug 3173 - Batchjobs lassen die Festplatte "über"laufen

Wir führen Batch-Jobs mit der Ausgabe "/dev/null" aus. D.h., von der Original-Datei wird eine lokale Kopie gemacht, auf der dann der Job ausgeführt wird. Die Datei sollte danach wieder gelöscht werden. Wird sie aber nicht. Wenn man nur genügend Jobs ausführt, ist irgendwann die Festplatte voll.

Ja. Und zwar passiert das immer dann, wenn die Original-Datei aus einer älteren InDesign®-Version stammt. Dann wird die Datei in InDesign® als neues, konvertiertes Dokument geöffnet - und hat also keinen Dateiverweis mehr. Der Versuch, die Dokumentdatei am Ende zu schliessen, schlägt also fehl.

Der "Fehler" wird jetzt umgangen. Die Dateien werden gelöscht.

Workaround

Die Original-Datei in die CS-Version konvertieren, in der die Batch-Jobs ausgeführt werden.

08.02.2013
Bug 3171 - Farbe für QRCode

Mir ist gerade das Gesicht auf die Tastatur gefallen, als ich einem Kunden jüngst dynamisch generierte QR-Codes versprach und er gerade eben meinte: "Das ist alles ganz prima, aber wir wollen die QR-Codes dann auch in unserer Hausfarbe "blau" andrucken..."

Ich ähhh... jedenfalls scheint image::barcode speziell beim "qrcode" den Schlüssel "barcolor" zu ignorieren, was Du ja auch dokumentiert hast und ja somit durchaus sein kann.

Siehst Du dennoch irgend ne Chance, wie ich das Ding "blau" bekomme? Nachträglich komme ich da ja auch nicht ran, weil das ja eingebettetes Postscript ist und das ganze aus Vektoren besteht. Da geht InDesign® ja nicht ran.

QRCodes können jetzt Farben (und Hintergrundfarben) bekommen.

    

07.02.2013
Bug 3170 - Interne Repräsentation der Textplatzhalter

R3405

Untersuchen mit Hilfe der Debug-Version von InDesign® haben ergeben, dass die interne Verwendung der Textplatzhalter zwar funktioniert, aber sicherer gestaltet werden kann.

Die entsprechende Umstellung hat über 500 Source-Files mit mehr als 2.500 Stellen betroffen. Die Plugins sollten jetzt sicherer laufen. Erste Tests ergaben zudem einen deutliche Geschwindigkeits-Gewinn. Ein Aufbau von 200 Seiten (!), der zuvor etwa 20 Minunten gebraucht hat, hat mit den neuen Plugins nur noch 13,5 Min. gebraucht. Ob der Gewinn von 30% Zeitersparnis allgemein gilt, werden weitere Tests ergeben.

03.02.2013
Bug 3169 - Speicherverbrauch von InDesign®

R3405

InDesign® scheint bei der Arbeit ordentlich Speicher zu verlieren. Kann es sein, dass die Comet-Plugins das verursachen?

Wir haben das alles noch einmal sehr genau geprüft und haben einige Speicherlöcher, die durch die Plugins verursacht wurden, gefunden und geschlossen.

Der Leak-Bericht des Debug-Versuches meldet jetzt 0 (!!) Leaks, die durch die Comet-Plugins verursacht wurden.

    

Trotzdem können gepufferte Daten (wie z.B. die Platzhalteraktionen) einen Anstieg des benötigten Speicher bewirken. Auch fehlerhafte cScripte können zum Speicher-Verbrauch beitragen.

03.02.2013
Bug 3168 - Absturz von InDesign® Server unter Windows Server 2003 nach 600 MB Speicher

R3403

In einem Batch-Job werden 200-seitige Dokumente aufgebaut mit 200 Templates aufgebaut. Mit Mac und Windows XP funktioniert das. Server 2003 dagegen führt zum Absturz. In unserem Speichermess-Tool passiert das immer nach 600 MB, obwohl noch mind. 8GB frei wären.

Nach langer Suche hat Christoph herausgefunden, woran der Absturz lag : cScript verwendet zur Adressierung seiner Daten (Funktionen, Parameter, ...) Integer-Werte. Werden die Adressen zu groß, reichen die 31 Bit dieser Zahlen nicht mehr - und es kommen falsche Adressen heraus. Unglücklicherweise wird der Speicher unter Server 2003 offenbar so vergeben, dass man relativ schnell in diesen kritischen Bereich gerät.

Die gesamte Adressierung innerhalb von cScript wurde deshalb auf 64Bit umgestellt. Das Problem ist damit behoben.

02.02.2012
Bug 3167 - Platzhalter entfernen

Laut Doku kann ich Platzhalter von (und aus) einem Rahmen entfernen, indem ich placeholder::define() mit einer Placeholder-ID von -2 auf den Rahmen anwende.

Leider scheint das nicht so zu funktionieren, oder ich mache was falsch:

  • der Rahmenplatzhalter verliert zwar sein Adornment, ist aber lt. Platzhalterwerte-Palette immer noch da und kann auch ausgeführt werden
  • die Textplatzhalter im Rahmen sind auch noch alle da.

placeholder::define() gibt brav 0 zurück. Mache ich was falsch? Gibt es einen anderen Weg? Eine ID != 0 für das Produkt hilft auch nicht weiter.

Testscript:

int main()
{
	int err;

	err = placeholder::define(gFrame, -2, 0);
	wlog("", "err = %d (%s)\n", err, serror(err));

	return 0;
}

Die Textplatzhalter machst Du falsch. Du musst die Text-Indizees angeben :

placeholder::define (gFrame, -2, 0, 0, 0, "", 0, kEnd);

Die Rahmenplatzhalter mache ich falsch. Der Skriptbefehl entfernt lediglich das Adornment. Der Platzhalter bleibt. Das ist jetzt gefixt.

ACHTUNG : Ist der Rahmenplatzhalter mit einem Objekt verlinkt, bleibt dieses Objekt im Rahmen stehen. Will man das ebenfalls entfernen, muss VOR placeholder::define (gFrame, -2, 0); noch folg. Aufruf gemacht werden :

placeholder::link2 (gFrame, 0, 0 /* oder -2 */, 0, 0, "");

06.02.2013
Bug 3166 - Template-Auswahl bei Gruppen

Der Comet ist ja seit längerer Zeit so schlau, ein im Dokument ausgewähltes Template auch in der Template-Palette zu markieren. Das ist auch extrem hilfreich.

Schön wäre, wenn das auch für gruppierte Templates ginge.

Wenn Du mit "gruppierte Templates" Templates meinst, die gruppierte Rahmen enthalten, dann geht das jetzt :-)

Dito Produktrecherche.

06.02.2012
Bug 2817 - Alt-Drop von Produkten fügt das komplette Produkt ein (und nicht nur das Template)

An dem gelben Hilfezettel der Produkte steht, dass beim Drag and Drop bei gehaltener Alt-Taste nur das Template eingefügt wird (und nicht geladen wird.) Das scheint nicht so zu sein. Die Produkte werden auch jedesmal geladen.

Gefixt.

Das war der Stand v3.3 R2851 am 11. 4. 2012.

Mit diesem Verhalten ist es leider nicht mehr möglich, Produkte mit Drag and Drop über Textplatzhaltern zu platzieren : Befindet sich die Maus über einem Textplatzhalter, wird beim Loslassen der Maus der Textplatzhalter neu verlinkt und geladen. Mit ALT wird das Template (ohne Link und Laden) eingesetzt.

Das ist natürlich nicht so schön. Man hätte ja schon auch gerne die Möglichkeit, das komplette Produkt zu platzieren.

Ich habe das Ganze folgendermaßen geändert:

Drag and Drop auf :

  • Leerer Hintergrund und Bildrahmen: Platziere und lade das Produkt. Die Alt-Taste hat hier keine Bedeutung.
  • Textplatzhalter :
    • Ohne Alt-Taste : Der Textplatzhalter wird mit dem Produkt neu verlinkt und geladen.
    • Mit Alt-Taste : Platziere und lade das Produkt.

Das Platzieren des reinen ungeladenen Templates ist damit aus der Produktrecherche heraus nicht mehr möglich. Aber das kann ja mit der Palette Templates gemacht werden - und ist dort auch besser aufgehoben.

06.02.2012
Bug 3164 - table::cell::get_box liefert falsche Werte bei verketteten Rahmen und Kopfzeilen-Wiederholung

Wir haben einen Produktaufbau mit einem Fortsetzungstemplate. In dem Fortsetzungsrahmen ist eine Tabelle vorhanden, die dann bei Bedarf umbrochen wird. In der Tabelle gibt es eine variable Anzahl von Kopfzeilen (abhängig von den Daten), die dann im neuen Rahmen wiederholt werden

Nach dem Aufbau der Tabelle müssen Bilder in der Tabelle nach einem bestimmten Regelwerk skaliert werden, dazu vergleiche ich die Position der Inline-Rahmen (Bilder) mit denen der Tabellenzellen um herauszufinden, welches Bild in welcher Zelle liegt.

Wenn ich im Fortsetzungsrahmen die Zellengeometrie abfrage, dann bekomme ich falsche Werte für "top" und "bottom", die anscheinend immer um die Höhe der vorhandenen Kopfzeilen verschoben sind. Die Bounding-Box frage ich seitenrelativ ab: table::cell::get_box(table, col, row, kPageRelative, &left, &top, &right, &bottom);

Der Testfall ist recht komplex, würde aber bei Bedarf versuchen den verfügbar zu machen. Gibt es vielleicht auch einen einfacheren Weg, die Bilder in einer Tabellenzelle zu ermitteln? Eingefügt werden die Bilder über table::insertimage()

Verstehe. Stimmt, stimmt nicht.

Den Fehler hab ich gefixt. Ist eine ziemliche Rechnerei mit den Kopfzeilen. Und wird nicht erleichtert dadurch durch die verschiedenen Regeln, ob und wann Kopfzeilen sichtbar sein sollen. Naja, jetzt gehts jedenfalls.

Was ich nicht verstehe ist, wie Du damit die Inline-Bilder einer Tabellenzelle holen willst. Ich würde das so machen:

#include "internal/types.h"
#include "internal/text.h"
#include "internal/table.h"

int main ()
{    
	Table		T   		= table::alloc ();
	ItemRef		frame 		= item::alloc();
	ItemRef		iframe    	= item::alloc();
	List		cols   		= list::alloc ();
	int			start, len, cl, ct, cr, cb;
	float		l, t, r, b;
	int			firstRow;
	ItemList	inlines;
	int			ilid        = 0;

	textmodel::selection (&start, &len, 
		frame, 0, 
		T, &cl, &ct, &cr, &cb);
	if (!table::is_valid (T))    return 0;

	table::cell::get_box (T, cl, ct, 
		kFrameRelative, &l, &t, &r, &b, 
		frame,
		&firstRow);

	// Hat die Zelle ein (oder mehrere Inlines?)
	table::cell::get_textpos (T, cl, ct, &start, &len);
	inlines = itemlist::inlines (frame, start, len);
	if (itemlist::length (inlines))
	{
		// Hier würde man in einer Schleife alle Bilder bearbeiten.
		// Ich hol hier nur mal das Erste.
		itemlist::get (inlines, iframe, 0);
		ilid    = item::getint (iframe);
	}

	showmessage ("Zelle [%d,%d] : %fx%f, %fx%f (Inline : %d)",
		cl, ct, l, t, r-l, b-t, 
		ilid);

	return 0;
}
05.02.2013
Bug 3165 - Nach app.comet.transformElement werden keine Gestaltungsregeln ausgeführt

Wir haben Rahmen mit Gestaltungsregeln, die nach Geometrie-änderungen gefeuert werden sollen. Miit dem Javascriptbefehl

    app.comet.framsformElement

wird die Grösse dieser Rahmen verändert. Dann müssten doch eigentlich die Gestaltungsregeln ausgeführt werden? Werden Sie aber nicht.

Das ist richtig, die Regeln werden (bisher) nicht ausgeführt. app.comet.transformElement verwendet die cScript-Befehle frame::scale und/oder frame::resize. Beide Skriptanweisungen unterdrücken das Ausführen von Gestaltungsregeln nach Geometrie-änderungen.

Das ist bewußt so gemacht, damit diese Regeln keine Seiteneffekte erzeugen können.

Folgende cScript-Befehle haben jetzt jeweils einen zusätzlichen optionalen Parameter, mit dem gesteuert werden kann, ob die Regeln (wie bisher) unterdrückt werden sollen oder ob sie (neu) ausgeführt werden sollen :

Die Javascript-Anweisung app.comet.transformElement führt die Gestaltungsregeln "Nach Geometrie-änderung" jetzt ebenfalls aus.

05.02.2013
Bug 3163 - Im Export der Dokument-Platzhalter (placeholder XML) fehlen Rahmen

Es kommt vor, dass Platzhalter des Dokumentes zwar in der Export-XML der Platzhalter erscheinen, aber die Rahmenliste (Element <frames>) leer ist. Woran kann das liegen? Ich beobachte dieses Verhalten bei einigen (aber nicht allen) gemergten Zellen.

Es liegt auch nicht daran, ob Tabellenzellen verbunden sind oder nicht. Immer der Platzhalter der ersten Textposition der ersten Zelle der ersten Tabelle eines Textes enthält keine Rahmenliste. Komisch, dass das so spät erst auffällt.

Der Fehler ist gefixt.

Hier ein Skriptcode zum Erzeugen der Placeholder-XML

tree1 = server::get_placeholders (
	0,
	kScopeSpread,
	1,
	"xmlversion:3.1;content:plain;layers:-'script';");
if (!tree1)		return 0;

xmlquery::write (tree1, "$DESKTOP/pp.xml");
xmlquery::close (tree1);
05.02.2013
Bug 3162 - Was sind denn das für große rote Zahlen unten rechts in den Rahmen?

Die Rahmen meines Dokumentes zeigen plötzlich unten rechts große rote Zahlen. Groß heißt : Groß geschrieben und großer Wert. Wo kommen die denn her. Wenn ich die Ansicht für Nägel und Magnete abschalte, verschwinden die Zahlen.

    

Die großen roten Zahlen stellen die Lesereihehfolge der Rahmen bei Seitenrotationen dar (Palette priint.rotate). Mgwl. sind die Rahmen aus Templates entstanden, die älter als diese Erweiterung sind (v3.2 R2169, 8. Okt. 2010). In diesem Fall fehlen in den Rahmen die nötigen Angaben und InDesign® "denkt" sich was aus.

So bekommt man die Zahlen weg

  • Palette "priint.adjust Rahmenliste" öffnen.
  • Dann für jede Seite des Dokumentes
    • -Button unten in der Palette klicken
    • -Button unten in der Palette klicken
  • Die Zahlen sollten jetzt weg sein.

Zusätzlich filtern die Plugins jetzt alle Sequenznummer die nicht im Bereich 0-4000 sind aus und setzen diese Werte automatisch auf 0. Das heisst dann aber auch : Bei Seiten mit mehr als 4.000 Rahmen können die Sequenznummern nicht mehr vollständig gesetzt werden (Aber: 1. ist priint:rotate bisher sowieso experimentell und 2. sind 4.000 Rahmen eigentlich ganz schön viele, oder?)

05.02.2013
Bug 3161 - Absturz bei Löschen der aktuellen Dokumentauswahl/Schliessen von Dokumenten wenn priint:adjust geöffnet ist

Ist die Palette priint.adjust geöffnet, kommt es hin und wieder vor, dass InDesign® abstürzt, wenn die aktuelle Rahmenauswahl gelöscht wird oder ein Dokument geschlossen wird.

Im Crash-Log steht dann als letzte Funktion redraw_nails.

Dieser Fehler ist jetzt hoffentlich gefixt.

05.02.2013
Bug 3158 - InDesign® Serverfverliert Speicher

    

InDesign® Serverfkann aus verschiedenen Gründen im Batch- oder CometServer Betrieb Speicher verlieren. Bei längerer Laufzeit kann es vorkommen, dass das Programm sich irgendwann unkontrolliert beendet. Es wäre schöner, das steuern zu können.

Dafür gibt es ab R3400 das neue Kommandozeilen-Argument shutdowntrigger mit den möglichen Parametern

    memory[=low] 
    time=hh:mm:ss
    uptime=1d | 24h | 1440m | 86400s
    documents=n
    jobs=n
    headroom=1G | 1000M | 1000000k

Das Argument kann mehrfach angegeben werden, z.B.

immer um Mitternacht runterfahren oder wenn 100 Dokumente verarbeitet wurden

-shutdowntrigger time=00:00:00 -shutdowntrigger documents=100

Bedeutung der Parameter:

memory[=low]: Beenden, wenn der InDesignMemoryManager kritischen Speicherzustand meldet

time=hh:mm:ss: zu bestimmter Tageszeit beenden

uptime=1d | 24h | 1440m | 86400s: nach bestimmter Laufzeit beenden

documents=n: Beenden, wenn n Dokumente bearbeitet (=mit Whiteboard / CometServer geöffnet)

jobs=n: Beenden, wenn n Batch-Jobs verarbeitet wurden

headroom=1G | 1000M | 1000000k: Beenden, wenn es nicht möglich ist, den gewünschten Speicher zu allokieren

memory[=low] prüft den Speicherzustand zur Idle-Zeit, da wird das meiste wieder freigegeben sein, tendentiell also keine ratsame Angabe

Beenden ist nur möglich, wenn aktuell keine Dokumente vom CometServer auf dieser Instanz geöffnet sind (damit könnte der CometServer derzeit gar nicht umgehen...). Andernfalls wird IDS bei nächster Gelegenheit beendet.

29.01.2013
Bug 3159 - table::broaden_to_frame berücksichtigt keine Konturen wenn eine Zelle die Referenz ist.

Du hast ja damals in broaden_to_frame eine Funktion eingebaut, dass auch eine umliegende Zelle als Referenz funktioniert. Das funktioniert auch tadellos, berücksichtigt auch Insets, aaaaber keine Konturen.

Leg mal nen Textrahmen an, mit einer einzelnen Zelle. Dieser Zelle gibst Du eine fette Kontur. In diese Zelle setzt Du dann die Tabelle und lässt broaden_to_frame ausführen. Die Tabelle läuft jetzt über die Kontur und zwar so weit, wie die Kontur stark ist.

Workaround, der aber nicht ganz richtig ist: Ich lege rechts ein Inset in Konturstärke an. Dann funktionierts.

Nebenfund:

Deine Standard-Table-Design-Method "Tabelle auf Rahmenbreite" kennt die neue Funktion (Anpassen von Untertabellen an die Breite der unschliessenden Tabellezelle seit v3.3 R2892, 8. Mai 2012) anscheinend noch gar nicht. Die tut nämlich noch wie früher. o_O

Das ist dann aber schon die volle Komfort-Funktion. Die Zell-Umrandung wird jetzt in die Berechnung eingeschlossen.

Der Nebenfund ist ebenfalls gefixt.

29.01.2013
Bug 3157 - strtrim funktioniert nicht für Zeichen ungleich Whitespaces

Ich habe die Doku so verstanden, dass ich die strtrim()-Funktion verwenden kann, um ein beliebiges Zeichen von Anfang und
Ende eines Strings zu entfernen:

strcpy(out, ",TESTTEXT,");
strtrim(out, ",");

sollte "TESTTEXT" ergeben. Tut es aber nicht - heraus kommt ",TESTTEXT,".

Der Fehler ist gefixt.

Workakround : strtoken

Das folg. Skript testet strtrim und strtoken.

char * cut (int fn, String str, char * s, int c)
{
	int 		tst 	= strtoken; // need an int to compare!

	strcpy (s, string::get (str));

	if (fn == tst)
	{
		int  	t 		= 0;
		int  	T 		= strtokencount (s, c);

		while (t < T)
		{
			if (strlen (strtoken (s, c, t)) > 0)
			{
				strcpy (s, strtoken (s, c, t));
				break;
			}
			++t;
		}
	}
	else 
	{
		fn (s, c);
	}

	return s;
}

int main ()
{
	String 		str 	= string::alloc ();
	char 		s 		[5000];

	textmodel::gettext (str);

	showmessage ("<%s>",  cut (strtrim,  str, s, ','));
	showmessage ("<%s>",  cut (strtoken,  str, s, ','));

	return 0; 

}
21.01.2013
R3393

Hotfix

8.1.2013

Bug 3047 - Eigene Gestaltungsregel "Ereignis senden"

könnte man implementieren, dass man per c-script Ereignisse an Rahmen senden kann? Hintergrund der Idee ist, dass man die Parameter "Zusatzinfo1/2" aktuell ja nur statisch befüllen kann und von c-script aus keinen Einfluss darauf hat.

Wenn das funktionieren würde, könnte man noch ganz andere "Schweinereien" im Template anstellen. :)

frame::apply_layout_rules hat nur ein paar weitere Parameter benötigt, damit das geht.

Jetzt kann man damit noch mehr machen, als über die Gestaltungsregeln möglich ist. In der Palette sind ja nur Rahmen der gleichen Cometgruppe adressierbar. Via Skript kann jeder beliebige Rahmen (im Prinzip auch in anderen Dokumenten) als Receiver möglich.

Ich habe zum Test folg. gemacht :

Ein Rahmen hat ein Gestaltungsregel, die einfach nur ein Showmessage macht :

    

Ein zweiter Rahmen hat folg. Skript :

int main ()
{
    ItemRef receiver = item::alloc ();

    item::define (receiver, gFrame, 222); // 222 ist die UID des ersten Rahmens
    frame::apply_layout_rules (receiver, 15, gFrame, "from script");

    return 0;
}

Führt man dieses Skript aus, wird die Nachricht "Das ist Rahmen 222!" gezeigt. Viel Spass damit :-)

07.01.2012
Bug 3152 - Fehlender Seitentemplate-Eintrag in "Produkte des Dokumentes"

Seit einiger Zeit fehlt in der Liste der Produkte des Dokumentes der Eintrag für das erste Seitentemplate. In R3300 begann die Liste noch mit einem Seitentemplate, jetzt (R3355) nicht mehr.

Das wäre nicht weiter schlimm. Ich verwende aber Gestaltungs-Ebenenm, die bisher auch in dem ersten Seitentemplate-Eintrag standen. Jetzt, wo dieser Eintrag fehlt, werden natürlich auch die Gestaltungsebenen ignoriert und meine Reorganisation geht schief. Ich kann den Seitentemplate-Eintrag manuell einfügen und die Gestaltungsebene dann festlegen, das funktioniert - aber das muss JEDES Mal gemacht werden.

     

So sollte die Liste eigentlich aussehen. Der grüne Eintrag für das Seitentemplate fehlt aber leider.

Der Fehler ist als Seiteneffekt des Fixes von Bug 3035 entstanden und besteht seit v3.3 R3170 (20.9.2012). Er ist jetzt gefixt.

07.01.2013
Bug 3149 - Tabellenmodul : Gruppennamen als Zellstil anweden

Im Tabellenmodul können die Hotspot-Zellen den angelegten Zeilen/Spalten Gruppennamen zuordnen. Dabei kann zusätzlich zwischen ersten/inneren/letzten Zeilen/Spalten unterschieden werden.

Die Gestaltungsmethoden der Tabellen verwenden in der Regel diese Gruppennamen zu Unterscheidung der Zellen. Könnte man die Gruppennamen nicht automatisch als Zellstile interpretieren und nach dem Aufbau automatisch anwenden?

Das geht jetzt. Ganz unten in der Palette "Tabellenaufbau" befindet sich jetzt eine Checkbox mit dem Titel "Gruppennamen als Zellstile verwenden". Ist die aktiviert, werden die vergebenen Gruppennamen nach dem Aufbau als Zellstile angewendet. Die Einstellung gilt global für die gesamte Tabelle. Zellstile müssen aber nicht unbedingt existieren.           

    

ACHTUNG: Zusätzlich vergebene Gruppennamen für Zellen aus der Liste "Gruppen der Zelle" werden NICHT als Zellstile interpretiert. Diese Gruppennamen werden automatisch und unverändert an alle Geschwister-Zellen weitergereicht - da kann auch gleich ein Zellstil gesetzt werden - das hat die gleiche Wirkung.

07.01.2013
R3383

Hotfix

19.12.2012

Bug 3147 - Missing plugin : EMBEDDEDLINK.PLN

Dokumente, die mit installierten Comet-Plugins erzeugt wurde, führen an Arbeitsplätzen ohne Comet-Plugins mitunter zu dem Dialog "Missing plugins : EMBEDDEDLINK.PLN"

    

Der Fehler tritt nicht immer auf.

Nein, er sollte gar nicht auftreten. Alle Daten, die von den Comet-Plugins in Dokumente geschrieben werden, haben die Markierung "ignoreable", die genau diesen Dialog verhindern sollte.

Nach langer Suche war es dann doch einfach, den Fehler zu reproduzieren . Bei mir tritt er nur unter Windows auf. Hier genügt es, eine neue und völlig leere Datei zu erzeugen. Wird diese Datei ohne Comet-Plugins geöffnet, erscheint der Dialog.

Das Gleiche unter Mac - funktioniert.

Der Fehler ist gefixt.

19.12.2012
R3377

Hotfix

12.12.12

Bug 3136 - frame::image_getskew() gibt immer negative Werte zurück

Mein kleines Testscript (s.u.) liefert mir immer negative Werte, wenn das Bild verzerrt ist. Egal, ob ich 10º eingebe oder -10º, der Comet liefert immer -10.

int main()
{
	float    skew;

	frame::image_getskew (gFrame, &skew);
	showmessage("skew: %f", skew);

	return 0;
}

Ja stimmt. Die InDesign®-Funktion zum Ermitteln der Verzerrung ist leider entwas irritierend (und hat sich offenbar von CS2 bis jetzt auch geändert): Der absolute Wert ist richtig, das Vorzeichen ist falsch. Wenn man den erhaltenen Wert für die Verzerrung unverändert anwendet, wird die Verzerrung jedesmal genau umgedreht.

Wir ändern jetzt einfach das Vorzeichen nach dem Erfragen der Verzerrung und alles ist richtig.

Das Gleiche gilt auch für die Funktion frame::get_skew.

11.12.2012
Bug 3134 - Befreundete Templates werden bei Reorganisationen trotzdem neu geladen

Der Fehler tritt nur bei InDesign® Server auf: Ich habe sog. befreundete Templates. Wenn die über einen Template-Tausch angewendet werden, werden die Inhalte der Templates trotzdem neu getauscht. Das sollte doch eigentlich nicht sein, oder?

Nein, das sollte nicht sein. Und ist es jetzt auch nicht mehr.

10.12.2012
Bug 3133 - datapool::get_main_template geht nicht für ID Server

Ich bekomme immer 0 zurück.

Das geht jetzt.

10.12.2012
Bug 3132 - datapool::get_template_name geht nicht mit InDesign® Server

Ich bekomme immer in einen Leestring als Antwort.

Das geht jetzt

10.12.2012
Bug 3126 - fitframe ermittelt zu kleine Rahmen, wenn der Text nur eine einzige (hohe) Tabelle enthält

Enthält ein Textrahmen nur eine einzige Tabelle, wird der Textrahmen durch fitframe max. 2000 Pt. groß, mehr nicht.

Die Tabellen dürfen jetzt grösser werden (etwa 3,5 km!).

07.12.2012
Bug 3125 - fitframe vergrössert Rahmen (sehr) langer Texte nicht richtig

Soll fitframe einen Rahmen anpassen, der dadurch über die untere Seitenkante hinausragen würde, wird die Funktion nicht ausgeführt. Oder genauer : nur teilweise. Der Rahmen wird so angepasst, dass er GENAU (also ohne einen kleinen Weißraum unter der aktuell letzten sichtbaren Zeile endet.

Das ist genau das Verhalten , das die InDesign®-Standardfunktion "Rahmen an Inhalt anpassen" macht. Aber eben nicht richtig.

Das Verhalten ist eine Folge des Fixes von Bug 3124 und jetzt wieder richtig.

07.12.2012
Bug 3121 - Tabellenzellenauswahl sehr langsam

Wir haben recht große Tabellen (500 x 10). Die Tabellen wurden mit dem Tabellenmodul aufgebaut. Das ist alles gut. Sollen bei diesen Tabellen alle Zellen ausgewählt werden (Menü oder Auswahl aufziehen), dauert das sehr lange. InDesign® zeigt dann für ungefähr 10 Sekunden, dass es beschäftigt ist (spinning wheel).

ICH KANN SO NICHT ARBEITEN!

Entfernt man die Comet-Plugins, geht die Auswahl schnell.

Nun, seien wir mal ehrlich - ohne die Comet-Plugins gäbe es auch diese großen Tabellen nicht. Jedenfalls nicht mit sinnvollem Inhalt.

Und genau das ist auch das Problem: Hinter den Zellen liegen die für den Tabellenaufbau nötigen Zelleninfos. Die sind in (fast) jeder Zelle anders. Die InDesign®-Tabelle enthält ja im Prinzip die Elemente des Kreuzprodukt irgendwelcher Eigenschaften. Z.B. zu den Eigenschaften Farbe (Zeile) und Größe (Spalte) die jeweiligen Preise:

    

Merkwürdigerweise befragt InDesign® bei der Zellenauswahl jede ausgewählte Zelle nach diesen Eigenschaften. Und, wenn der Wert einer Zelle anders ist als der der zuletzt befragten Zelle, dann wird die vorletzte Zelle angepasst. Und dann deren Vorgänger, und dann deren Vorgänger, usw usw. Das alles passiert natürlich nur im Speicher. Aber auch das dauert. Es ergibt sich ein sog. quadratischer Aufwand. Das ist immer seehr schlecht, dann es bedeutet, mit zunehmender Anzahl von Daten steigt der Aufwand nicht linear, sondern - na eben quadratisch.

In unserem Fall beträgt der Aufwand

    2*n*n + 2n +1

Für die Auswahl 500x10 Zellen werden also mehr als 50 Millionen Aufrufe benötigt! Ganz egal, wie flott die aufgerufene Funktion ist, das dauert.

Und nun die schlechte Nachricht : Das alles passiert hinter dem Vorhang und ist fest in InDesign® integriert und entzieht sich unserem Einfluss. Ich habe das Verhalten an Adobe gemeldet und nach vielem Aufwand diese Antwort bekommen:

The ReadWrite calls you're seeing when selecting table cells is due to attributes being copied into a focus cache. When anything in a story is selected attributes applied to the selection are copied into a cache to speed queries from observers and others concerning the selection.

We use the ReadWrite method on interfaces as a sort of copy constructor when copying interfaces. This is all done in memory. These ReadWrites are not happening to disk.

In addition the ReadWrite is used as an equality operator. We call ReadWrite to have the interface create an in-memory copy of its contents allowing comparison of attributes without explicit equality operators. This too is done in memory.

One of the reasons the ReadWrites increase exponentially is that, as we're building the focus cache we're comparing each attribute about to be added to the attributes already in the list. Each comparison involves a call to ReadWrite. As each cell adds its instance of your attribute to the list following cells have one more attribute with which they are compared.

So, although you are seeing many calls to ReadWrite, these are all in-memory reads and writes and shouldn't cause a significant performance hit. This is not a bug.


Ziehen Sie selbst Ihre Schlüsse.

Lösung

Leider bietet die Stelle, die da so unglaublich oft gerufen wird, nicht viele Möglichkeiten zu erkennen, woher der Aufruf kommt und ob man ihn umgehen kann. Ich habe trotzdem eine - wenn auch etwas artistische - Methode gefunden.

Der Aufwand ist jetzt nur noch linear, nämlich

    4*n + 2

Bei 500x10 Zellen sind das also nur noch 20.000. Oder 0,04% des ursprünglichen Aufwandes. Und - wir erinnern uns, bei grösseren Zellauswahlen wird der Unterschied noch gravierender. In Zeit umgerechnet bedeutet das:

  • Vorher : 10 Sek.
  • Jetzt : 0,04 Sek. Das ist wie beim Bobrennen, das bemerken Sie gar nicht.

Achtung

Wir können nur Vermutungen darüber anstellen, was InDesign® da im Hintergrund treibt. Das Ganze ist daher experimentell und Sie müssen die Option erst aktivieren. Verwenden Sie dazu das Menü

    Palette Tabellenaufbau > Schnelle Auswahl von Tabellenzellen

Sollte es zu irgendwelchen Auffälligkeiten/Fehlern beim Sichern von Tabellen mit Tabellen-Aufbau-Daten kommen, schalten Sie das Feature ab und wenden sich bitte an uns: paul@werk-ii.com. Testdatei und eine Beschreibung der Situation beschleunigen das Verfahren ungemein.

In den Server-Plugins ist das Feature natürlich nicht enthalten. Hier verhält sich alles völlig unverändert.

06.12.2012
Bug 3120 - Reader-Version benötigt ToDoList[Model]

Für eine Reader-Version der Comet-Plugins werden inzwischen die folg. Plugins benötigt :

  • CoreServlett
  • Comet
  • CoreSelection
  • EmbeddedLink
  • FrameLink
  • NEU ToDoList[Model]
  • NEU PageTemplates[Model]
  • NEU PageAdapter-Reader[Model]
  • NEU PageAdapter-Reader

ToDoList [Model] verlangt leider, dass das Plugin PlaceHolder (und damit letztlich der gesamte Comet) installiert ist.

Das ist ab v3.3 R3333 gefixt und ToDoList[Model] kann ohne PlaceHolder verwendet werden.

06.12.2012
Bug 3112 - Automatischer Sync und Absätze
  • Wir haben in der Datenquelle einen Text mit mehreren Absätzen, denen wir aber keinen expliziten Absatzstil zuweisen, d.h. als „Absatztrenner“ verwenden wir <0x000D> bzw. <nl:> (habe beide Varianten probiert).
  • InDesign® stellt dann einen schönen Absatz dar und weist dem Absatz auch den richtigen Absatzstil zu
  • Beim automatischen Sync werden aber anscheinend weder <0x000D> noch <nl:> als Absatztrenner verwendet, kann das sein?

Text, den ich aus dem Dokument auslese:

<ParaStyle:Produktbeschreibung><CharStyle:Hersteller>Schott Zwiesel<CharStyle:> 
<ParaStyle:Produktbeschreibung><CharStyle:Produktbezeichnung>Fachhandel Exklusiv<CharStyle:>
<ParaStyle:Produktbeschreibung><CharStyle:Produktbezeichnung>Serie: Classico<CharStyle:> 

Text, der aus den Daten kommt (die Variante mit <0x000D>, der Sync funktioniert aber auch bei <nl:> nicht):

%!TT<ParaStyle:Produktbeschreibung><CharStyle:Hersteller>SchottZwiesel<CharStyle:>
<0x000D><CharStyle:Produktbezeichnung>Fachhandel Exklusiv<CharStyle:>
<0x000D><CharStyle:Produktbezeichnung>Serie:Classico<CharStyle:> 

Die folgende Ersetzung im Skript-Code führt dazu, dass die Text gleich sind (<br/> wird zu <nl:>): name = strreplace(name, "<nl:>", "\n<ParaStyle:test>"); Schön wäre es, wenn die beiden Texte als gleich "erkannt" werden ohne die manuelle Korrektur.

Das ist gefixt.

03.12.2012
Bug 3119 - Tabellen-Gestaltung "Gleiche Zellen verbinden" funktioniert nicht mehr

Die Tabellen-Gestaltung "Gleiche Zellen verbinden" funktioniert nicht mehr. Bis R3030 ging das mit der gleichen Tabelle noch.

Das ist eine Folge von Bug 2904. Neben dem Parameter ckeckPgBreaks hat die neue Funktion table::merge_equals auch den Parameter cmpPlaceholders bekommen. Script-Funktion und Tabellengestaltung verweden die gleiche Implementierung. Aber leider war aus Versehen der Default für cmpPlaceholders bei den Tabellengedstaltungen auf true gesetzt. Das ist gefixt.

Zusätzlich hat der Meta-Daten-Dialog für "Gleiche Zellen verbinden" (Abb. 1) jetzt Einstellmöglichkeiten, mit denen diese Eigenschaften geändert werden können (Abb. 2).

    
    Abb. 1

    
    Abb. 2

30.11.2012
Bug 3118 - document::import_masterpage führt zu Fehlern bei ID-Server

In einem Skript werden per document::import_masterpage zuerst Musterseiten aus verschiedenen Dokumenten importiert. Danach werden Produkte aufgebaut. Das funktioniert mit InDesign® Desktop. Mit InDesign®-Server funktioniert es nicht. Die erste Musterseite wird richtig importiert. Alles andere fehlt im Dokument.

Das Problem ist gefixt. Es lag daran, dass beim öffnen der Originale der Musterseiten das aktuelle Frontdokument geändert wurde. Alle weiteren änderungen wurden dann leider in diesem Dokument gemacht - das zum Schluss mit ohne zu sichern geschlossen wurde.

30.11.2012
Bug 3117 - Ebene zur Vordergrundebene machen geht nicht

Wie kann ich den einen Layer ganz in den Vordergrund bringen? Die Anweisungen layer::move_~ benötigen ja immer eine Angabe für die Ebene, HINTER die die Ebene verschoben werden soll.

Ja stimmt. Mit layer::move_ni und layer::move_ii geht das jetzt, wenn der Index der Ebene, hinter die verschoben werden soll, entweder -1 ist oder grösser als die Anzahl der Ebenen im Dokument.

30.11.2012
R3313

Hotfix

29.11.2012

Bug 3116 - Reorganistation ändert manchmal die Cometgruppen-ID von Produkten

Enthält ein Produkt Multistate-Objekt, kann es unter seltenen Umstaänden vorkommen, dass bei der Reorganisation die Cometgruppen-ID des Produktes geändert wird. Das passiert auch dann, wenn das Produkt gar nicht verschoben oder gar mit einem Template geladen werden muss.

Weitere Reorganisationen ändern die Cometgruppen-ID dann nicht mehr.

Das ist gefixt.

29.11.2012
Bug 3115 - Fehler in der Reorganistation, wenn Cometgruppen Mulistate-Objekte enthalten

Bei der Reorganisation von Dokumenten mit Multistate-Objekten treten Fehler auf. Es entstehen eine Vielzahl neuer "Produkte": Hatte die Produktrecherche vorher etwa drei Einträge, sind es nach der Reorganisation plötzlich 12.

Es sind aber keine neue Rahmen entstanden. Nur die Cometgruppen sehen komisch aus. Es scheint, als hätten die Multistates mehrere Cometgruppen-IDs.

Der Fehler tritt unter diesen Umständen auf:

  1. Das Multistate-Objekt steht am weitesten links oben
  2. Ein Status des Multistate-Objekts ist der Hauptrahmen der Cometgruppe

Der Fehler ist gefixt.

29.11.2012
Bug 3114 - "Produkte des Dokumentes" ist sehr langsam, wenn kein Seitentemplate gesetzt ist

Im letzten Release (R3302) ging das noch schneller.

Das ist gefixt. War eine Folge von Bug 3111.

29.11.2012
Bug 3113 - productlist::get mit "Hinzufügen der Unterprodukte" statt "Ersetzen durch Unterprodukte"

In den Skriptbefehlen productlist::get und datapool::get_get_products kann über ein Statement gesteuert werden, wie Einträge der Produktrecherche zu Produktlisten zusammengestellt werden sollen. Z.B.:

    "selected [id3=31 or id3=32]"

Dabei werden Produkte, die die Bedingung(en) in den eckigen Klammern nicht erfüllen, jeweils durch ihre Unterprodukte ersetzt.

Besonders im Textfluss-Aufbau hätte man es nun aber gerne, wenn die Oberprodukte dabei ebenfalls in der Liste bleiben würden (für Überschriften, Kapitel usw.). Was kann man denn da machen?

Das geht jetzt. Dazu müssen die Bedingungen einfach in geschweifte Klammern {} statt in eckige Klammern [] gesetzt werden. Es gibt ausserdem zwei neue neue Schlüssel"worte", mit denen gesteuert werden kann, ob die Listen Doppler enthalten dürfen oder nicht :

  • with doubles allowed
  • with no doubles

Das darf irgendwo (aber genau in dieser Schreibweise) im Statement stehen und gilt dann für alle gefundenen Einträge (ausser denen, die direkt aus der Produktrecherche kommen, also die, die direkt von "selected", "watch", "list" kommen.

Mehr dazu in der Doku.

28.11.2012
Bug 3110 - Tabellenmodul-änderungen werden scheinbar nicht ins Dokument übernommen

Ich habe ein Dokument mit einer für das Tabellenmodul konfigurierten Tabelle. Wenn ich dieses Dokument öffne und z.B. die Gruppenzuweisung einer Hotspot-Zelle ändere, bleibt das Dokument im Status "Unverändert". Beim Schliessen erfolgt keine Nachfrage, ob gesichert werden soll. Nach dem Schliessen sind die änderungen verloren.

Das passiert nur dann, wenn ausschließlich änderungen an bereits konfigurierten Tabellenzellen gemacht werden. Sobald man noch IRGENDEINE ANDERE äNDERUNG am Dokument vornimmt, wird das Dokument ganz normal gesichert und die änderungen der Tabellenzellen werden zurückgeschrieben.

Ich habe das Verhalten, das seit v3.3 R3101 (21.7.2012) so ist, trotzdem wieder geändert. Es war eigentlich dazu gedacht, die Aufbaugeschwindigkeit von Tabellen zu erhöhen (hat es auch - so etwa um das 2-10 fache), aber dieser Seiteneffekt wiegt schwerer.

26.11.2012
Bug 3109 - Absturz durch Text ersetzen mit dem orange Pfeil der Preview-Palette

Wenn man über die Document Selection einen Text in die Preview Palette lädt und dann mehrfach nacheinander (manchmal 2 mal, manchmal aber auch bis zu 4 mal) den Text durch Klick auf den orangen Pfeil in das Dokument übernehmen will, kommt es zu einem InDesign® Absturz.

Das ist gefixt.

23.11.2012
Bug 3108 - leerer Platz in Tabellen lässt sich nicht aktualisieren!

Wenn ich den Inhalt eines Platzhalters in einer Tabelle lösche über InDesign® und diesen anschließend über das Aufgabenmanagement aktualisieren möchte stürzt InDesign® ab. Ist der Platzhalter nur in einem Textrahmen dann funktioniert das ganze.

Wir haben die CometVersion 3.3 R 3144 aktuell im Einsatz ich habe aber auch mit Vorgängerversionen getestet da geht es genauso wenig.

Die Loadskripte der einzelnen Platzhalter sind einfach SQL-Aufrufe.

Das sind die lausigen Randfälle - in diesem Fall sogar wörtlich. Denn eigentlich ist der Platzhalter in diesen Fällen gar nicht mehr im Dokument. Nur der Zeichenstil an der Einfügestelle hat die Platzhalter-Info noch. Das verursacht das Problem.

Ist gefixt. Ich lasse das Dokument wie es ist und alles andere auch. Nur wenn beim Laden ein Platzhalter der Länge 0 gefunden wird, wird vorher automatisch ein Zero Space eingefügt.

23.11.2012
R3302

Hotfix

25.11.2012

Bug 3111 - Produkte des Dokumentes ermitteln dauert recht lange

Das Holen der Produkte des Dokumentes dauert recht lange : GetItems (Produkte des Dokumentes) dauert ca 12 Sek., GetCometGroups dagegen nur ca. 1,5 Sek.. Die Gruppenliste ist fast die gleiche Liste wie ItemsListe. Vielleicht kann man noch da was optimieren?

Der kleine Unterschied zwischen GetItems und GetCometGroups ist : GetCometGroups holt einfach alles, was es im Dokument findet. GetItems sortiert zusätzlich nach den Seitenelementen. Und genau die Sortierung ist das, was die Zeit braucht. Aber die brauchen wir natürlich für die Reorganisation.

Die Sortierung konnte trotzdem optimiert werden und ist jetzt etwa 3-5 mal schneller.

25.11.2012
R3300

Hotfix

23.11.2012

Bug 3107 - Generierung der Spread-Previews im Whiteboard sehr langsam

Nach einer Reorganisation im Whiteboard müssen alle Spreads des Dokumentes neu berechnet werden. Das ist leider sehr langsam. Woran könnte das denn liegen?

Das kann natürlich recht viele Ursachen haben. Eine davon lag definitiv in den Plugins und ist jetzt korrigiert. Die Plugins benötigen jetzt nur noch etwa 1/10 der Zeit zur Generierung der Spread-Previews.

FYI

Damit die Previews der Spreads richtig gerendete Schriften zeigen, müssen die Spread zuvor einmal im Print-Modus gezeichnet werden. Das wurde bisher im Fullresolution-Modus getan, der dafür gar nicht nötig ist. Im vorliegenden Fall enthalten die Dokumente eine große Anzahl Postscript-Bilder (hier sind es mit image::barcode erzeugte Strichcodes). Im Fullresolution-Modus müssen diese Bilder komplett berechnet werden. Das braucht natürlich eine gewisse Zeit. Im jetzt verwendeten sogenannten Proxy-Modus kann dagegen einfach das Preview der Postscript-Bilder verwendet werden - was durchaus reicht und eben viel schneller ist.

23.11.2012
R3286

Hotfix

23.11.2012

Bug 3057 - Dateigröße von Dokumenten bei Verwendung der Comet-Plugins

Wir haben Problemen mit großen Dateien bei unserem Kunden und haben nach Tests folgendes herausgefunden:

Test 1: Wir haben ein neues InDesign® Dokument erstellt und dort 100 einfache, leere Bildrahmen platziert ohne Gestaltungsregeln, Platzhalter oder ähnliches zu verknüpfen. Nachdem wir dann das Dokument gespeichert haben und die Dateigröße überprüft haben, stellten wir fest dass dieses Dokument fast 10MB groß geworden ist.

Test 2: Wir haben nun die Comet Plugins aus InDesign® entfernt und Test 1 nochmals durchgeführt. Ergebnis war, dass dieses Dokument nach dem Abspeichern nur ca. 300 KB hatte!

Die Comet-Plugins benötigen für Platzhalter u.ä. eigene Daten. Die InDesign®-API von Adobe ist dabei so konstruiert, dass JEDER Rahmen diese Attribute bekommt - egal, ob der Rahmen diese Werte verwendet oder nicht. Jeder der 100 neu angelegten Rahmen bekommt also alle für Platzhalter, Nägel&Magnete, ... benötigten Datenfelder.

Genauere Tests ergaben folg. Platzbedarf für die einzelnen Erweiterungen:

Komponente Bytes
Platzhalter 1.200
Aufgabenpalette 900
Seitenelemente 900
Nägel&Magneten 96.000
Summe 99.000

Das Problem sind also die Nägel und Magneten.

Mit etwas Mühe ist es mir gelungen, den Speicherbedarf drastisch zu senken. Und das Charmanteste daran : Die änderung bedarf keiner Konvertierung bestehender Dokumente. Sie wirkt aber (s.o.) nur auf geänderte und neue Rahmen. Hier einige "bench marks"

Komponente Dateigröße in MB
100 Rahmen ohne Seitenadapter 1,00
100 Rahmen mit Seitenadapter (ALT) 9,20
100 Rahmen mit Seitenadapter (NEU) 1,20
Ersparnis 8,00 (87%)

Ein Rahmen benötigt also 1900 Bytes für Nägel und Magneten und für alle Comet-Daten zusammen etwa 5.000 Bytes statt wie bisher 99.000 Bytes, In Abhängigkeit von der Anzahl der Rahmen im Dokument kann die Dateigrösse also bis zu 95% heruntergehen (im Bespiel 13%).

Achtung: Auch wenn die Rahmen jetzt viel weniger ins Dokument schreiben (lassen) - alte Dokumente werden nicht wirklich kleiner. Das Verhalten ist InDesign®-immanent und kann von uns nicht geändert werden.

Neue Dokumente werden deutlich kleiner. Produkttemplates müssen dafür nicht geändert werden.

Workaround

Wenn Sie Nägel und Magnenten nicht verwenden, können Sie Plugins "PageAdapter" und "PageAdapter [Model]" einfach entfernen. NEUE Rahmen benötigen dann die genannten 96.000 Bytes weniger im Dokument. Alte Rahmen behalten ihre Grösse. Um Dokumente kleiner zu bekommen, müssen sie hier einmal in IDML exportiert und wieder importiert werden.

23.11.2012
Bug 3105 - Nach fehlerhaftem Login ändert sich der Zeichensatz automatisch zu "UTF-8"

Hat man versehentlich ein falsches Passwort für den Login eingegeben, wird der Login-Dialog erneut geöffnet. Die Einstellung des Zeichensatzes wird dabei immer automatisch auf UTF-8 umgestellt. Egal, welche Einstellung man vorher hatte. Also ich übersehe solche änderungen - und dann wird mein Login wahrscheinlich falsch.

Das ist gefixt.

21.11.2012
Bug 3104 - Leere dimensionslose InDesign®-Gruppen führen bei der Reorganistaion zum Absturz

Die leeren, dimensionslosen InDesign®-Gruppen, die in Bug 3103 beschrieben wurden, führen ja zum Absturz der Reorganistion. Es gibt jetzt aber schon eine ganze Reihe Dokumente mit solchen Rahmen. Und diese Objekte sind recht schwer zu finden.

Kann man da was machen?

Diese Objekte werden jetzt beim Sammeln der Produkte des Dokumentes automatisch gelöscht. Im Logfile erscheinen Meldungen der Art

# Empty InDesign® group with uid 123 found at page 3
# Dimensionless frame with uid 126 found at page 3
21.11.2012
Bug 3103 - Templatetausch hinterläßt leere InDesign®-Gruppen

Beim Templatetausch werden alle Rahme der alten Cometgruppe gelöscht. Sind die Rahmen dabei InDesign®-gruppiert, kann es passieren, dass ein leeres 0-dimensionales Gruppenobjekt auf der Seite zurückgleibt. Man kann das Objekt in der Ebenen-Palette sehen.

Bei Reorganisationen sdes Dokumentes führen diese Objekte zum Absturz von InDesign.

Ich weiss nicht, wie InDesign® das schafft, aber tatsächlich, es bleibt ein leeres Objekt ohne Dimension zurück, wenn die Rahmen gruppiert sind.

Ich kann dieses Verhalten umgehen. Die leeren Objekte entstehen jetzt nicht mehr.

21.11.2012
Bug 3098 - frame::get_template liefert unter InDesign® Server keinen Template-Namen

So ist es. An gleicher Stelle in InDesign® Desktop verwendet, liefert die Funktion den richtigen Template-Namen.

Der Template-Name wird über das Plugin Pageitems berechnet, das es unter ID Server gar nicht gibt.

Aber man bekommt den Namen freilich auch anders heraus. Das machen die Plugins jetzt.

20.11.2012
Bug 3124 - fitframe verhält sich merkwürdig, wenn der Text ausschließlich aus Whitespaces besteht

Enthält ein Textrahmen ausschließlich unsichtbare Zeichen, verhält sich InDesign® beim Anpassen der Rahmengrösse merkürdig:

  • Ist der Rahmen höher als die Textzeile, wird gar nichts gemacht
  • Ist der Rahmen niedriger als eine Textzeile, funktioniert es.

Zusätzlich wird im ersten Fall manchmal ein Overset erkannt, obwohl gar keiner da ist.

Ich habe die Funktion fitframe (frame::fit, Gestaltungsregel "Rahmen anpassen) an diese Situation angepasst und die Funktion arbeitet jetzt auch in diesen Spezialfällen richtig.

ACHTUNG : Die änderung der Funktion kann mglw. Aiswirkungen auf bestehende Anwendungen haben. Sollte es zu unerwartetem Verhalten von Rahmen bei Anwendung von fitframe kommen, bitte ich dringend um Nachricht (paul@werk-ii.com). Senden Sie mir bitte in diesem Fall auch die InDesign® mit dem beanstandetem Rahmen und einen Hinweis, um welchen Dokumentrahmen es sich handelt.

20.11.2012

(➚+fitempty)

Bug 3123 - Falsche StringID in Produkte des Dokumentes

Ein Rahmen meines Produktes fügt mit document::place_items weitere Rahmen ins Dokument ein :

li = document::place_items (
	0,
	"data","pageitems", 552,
	l, t-90.0, page::get(gFrame), "",
	gRecordID,
	gRecordID2,
	gRecordID3,
	"$DESKTOP/Bilder/buffer.jpg",
	1);

In der Liste der Produkte des Dokumentes erscheint das Produkt dann mit der String-ID, die in place_items angegeben wurde (hier "$DESKTOP/Bilder/buffer.jpg"). Das gibt natürlich beim Reorganisieren einigen ärger. Mir ist aufgefallen, dass der Fehler nicht auftritt, wenn die zusätzlichen Rahmen unter oder neben dem auslösenden Rahmen angelegt werden. Nur wenn einer der zusätzlichen Rahmen die neue linke obere Ecke aller Rahmen des Produktes bildet, tritt dieses Verhalten auf.

Dieser Fehler ist gefixt. Ein analoges Verhalten tritt auch in anderen Funktionen, die Dokumentrahmen anlegen, auf. Der Fehler ist in folgenden Funktionen gefixt wurden::

  • document::place_items
  • document::place_indesign
  • document::insert_macro
  • frame::create, frame::create2
  • frame::create_textframe, frame::create_textframe_f

20.11.2012

(➚+builtByID)

Bug 3122 - Auswahl (brauner) Bildrahmen wirkt nicht auf die Auswahl der Produkte des Dokumentes

Wenn ich mit dem weissen Pfeil Bildinhalte statt der eigentlichen Rahmen auswähle, wird die Liste "Produkte des Dokumentes" nicht angepasst.

Das wird jetzt ebenfalls gemacht.

20.11.2012

(➚+podimg)

Bug 3100 - Produkte des Dokumentes werden nicht richtig ausgewählt, wenn die Produktrahmen InDesign®-gruppiert sind

Ich habe die Rahmen der Produkte mit InDesign®-Gruppen zusammengefasst. In der Liste "Produkte des Dokumentes" werden die Produkte auch richtig angezeigt. Wähle ich aber einen Produktrahmen (also einen Unterrahmen der InDesign®-Gruppe), wird das zugehörige Produkt leider nicht in der Liste "Produkte des Dokumentes" ausgewählt.

Das geht jetzt.

20.11.2012

(➚+podsub)

Bug 3099 - Rahmenauswahl über UID

Sehr viele Cometfunktionen (Produktaufbau, Gestaltungsregeln, Seitenadaptionen, ...) schreiben bei Aktionen und Fehlern die UIDs der betroffenen Rahmen ins Logfile. Leider gibt es keine Standardfunktion, um einen Rahmen über seine UID auch im Dokument zu finden. Ich kann mir dafür zwar ein Skript schreiben, aber das muss ich dann in jedem Datenpool neu definieren. Könnte man diese Funktion nicht als Standard implementieren?

Ja, man kann. Es gibt dazu jetzt einen Menübefehl :

Produktrecherche -> Verschiedenes -> Rahmen auswählen

Und hier, der Vollständigkeit halber, noch ein Skript zur Rahmenauswahl (das nun gar nicht benötigt wird):

int main ()
{
	char		str		[50000];
	char		str1	[50000];
	int			p		= 0;
	int			len		= 0;
	ItemRef		fr		= item::alloc ();
	ItemList	frames	= itemlist::alloc ();
	
	if (gRun > 1)	return 0;
	if (!askstring (str, 
			"Text mit Rahmen-UIDs",
			"Auswahl von Dokumentrahmen",
			"", "", 0, 49999)) return 0;
	
	while (1)
	{
		p = strstrpos (str, "regexp:[1-9][0-9]*", p, &len);
		if (p < 0)	break;
		
		if (len > 0)
		{
			strcpy (str1, str, p, len);
			p = p + len;
			
			item::define (fr, 0, val (str1));
			if (frame::is_valid (fr))
			{
				itemlist::append (frames, fr);
			}
		}
		else p = p +1;
	}
	
	if (itemlist::length (frames)) itemlist::select (frames);
	
	return 0;
}
20.11.2012
Bug 3093 - Library-Export/Import in den Standardumfang der Comet-Plugins aufnehmen

Mit Hilfe der Panelstatements 123 und 124 können ja jetzt schon Export und Import von InDesign®-Bibiothken unterstützt werden. Leider ist dazu doch einiges an Script-Know-how nötig - und eigentlich wird überall das Gleiche benötigt :

Export

  • Schreibe die Bibliothek in eine Datenbanktabelle
  • Schreibe die Assets in eine andere Datenbanktabelle

Import

  • Stelle die Bibliothek aus diesen Datenbanktabellen wieder her

Sind die Panelstatements 123 und 124 nicht definiert oder zeigen auf leere Anweisungen, wird jetzt für ODBC- und OCI-Verbindungen ein Standardmechanismus zum Export und Import von Bibliotheken zur Verfügung gestellt.

Mehr dazu in der Online-Doku (Export, Import).

16.11.2012
R3277

Hotfix

14.11.2012

Bug 3092 - Menü Bearbeiten -> Einfügen ohne Formatierung ist falsch

Obwohl ich nur den Textcursor gesetzt habe (und keine weiteren Zeichen ausgewählt habe) löscht der Befehl Bearbeiten -> Einfügen ohne Formatierung ein ganzes Stück Text, bevor der Text aus der Zwischenablage eingefügt wird.

Sind nach hinten nicht mehr genügend Zeichen zum Löschen vorhanden, stürzt InDesign® ab.

Ah, auf den Tag GENAU vier Jahre alt, der Fehler. Am 9.11.2008 kam die erste Version der Plugins für CS4 raus - seitdem ist diese Funktion falsch.

Beim Ermitteln der aktuellen Auswahl wurden Start- und Endindex der Auswahl geholt. Der Endindex wurde dann fälschlicherweise als LäNGE interpretiert.

Der Fehler ist gefixt.

09.11.2012
Bug 2706, Bug 3089 - Tabellenmodul: Einstellungen der Tabellen-Palette werden als Format interpretiert

Bug oder Feature? Wenn man Tabellenzellen z.B. Absatzformate zugewiesen und über den Tabelleneditor die diversen Einstellungen für den tabellenaufbau eingegeben hat, wird bei den Absatzformaten in der Formatpalette ein "+" angezeigt, so als ob zusätzlich zum Format eine lokale Formatierung hinzugekommen wäre. Klickt man dann auf den Formateintrag mit gedrückter Alt-Taste (um die "lokale Formatierung" zu entfernen), dann verschwinden auch die Einstellungen des Tabelleneditors, und man muss alles neu eingeben.

Das Ganze passiert vor allem dann, wenn man Feintuning am Tabellenlayout betreibt, bevor man das Template dann endgültig speichert, und es ist ausgesprochen lästig! Muss das unbedingt sein, oder kann man es so machen, dass die Tabelleneinstellungen nicht durch die Formatierung beeinflusst werden? Unter Umständen kann durch dieses Verhalten ein Kunde, der nur die Gestaltung einer Tabelle anpassen will, das komplette Template "zerschießen"...

Das Problem ist ja ziemlich gemein. Bei Textattributen - wie z.B. den Textplatzhaltern - geht das. Leider enthält aber die sog. AttributeReport-Klasse für Tabellen- und Zellenattribute der InDesign®-API keine Möglichkeit, Attribute für den Plus-Entferner durchsichtig zu machen.

Ich glaube, wir können da leider gar nichts machen. Ich versuche trotzdem mal, den Adobe-Support zu befragen.

Ich habe einen Support-Case bei Adobe geöffnet - was gar nicht so einfach war. Ich habe einen isolierten Testfall gebaut - ein vollständiges Plugin, das NUR DIESES Problem enthält. Ich habe das Problem auf 10 verschiedene Arten beschrieben. Ich habe ungefähr 20 Mails an den Support geschrieben und ungefähr 20 bekommen. Hier exemplarisch ein Auszug aus einer der der letzten :

    It is working just how it should work.

Einige Monate später

In einem anderen Zusammenhang hab ich das Problem noch mal bei Adobe zur Sprache gebracht und einen - wenn auch kleinen - so doch hilfreichen Tipp bekommen. Und nachdem ich einen Tag wie wild auf die Tastatur eingehauen habe, konnte ich das Problem lösen :

Die Einstellungen des Tabellenmoduls sind ab jetzt nicht mehr Teil von Zellformaten. Ich filtere die alle raus - auf zwei Seiten Quelltext. Das Ausfiltern wird in folgenden Situationen gemacht:

  • Anlegen neuer Zellstile
  • Menü der Palette Tabellenaufbau -> Tabellenmodul-Eigenschaften aus Zellformaten entfernen

ACHTUNG!

änderungen an Formaten ändern automatisch auch alle Dokumentteile, die diese Formate verwenden.

Wenn ein Zellenformat geändert wird, das Informationen für das Tabellenmodul enthält, werden diese Informationen auch aus allen Tabellenzellen entfernt, die dieses Zellenformat verwenden. So geänderte Tabellen können danach nicht mehr ordnungsgemäß aufgebaut werden.

Aus Performance-Gründen wird das Ausfiltern nicht beim Anwenden eines Zellstiles gemacht.

08.11.2012
Bug 3088 - Tabelle Einfügen -> Ausgewählte Zeilen/Spalten kopiert keine Zelleninhalte

Die Menübefehle für Tabellen

    Einfügen->Ausgewählte Zeilen/Spalten

können die aktuell ausgewählten Zeilen/Spalten einer Tabelle duplizieren. Das ist prima und wäre mit InDesign®-Bordmitteln nicht möglich. Leider werden bei den Aktionen nur die Zellen selbst kopiert. Inhalte werden nicht übernommen.

Das ist richtig. Ich habe mich hier an den Standardbefehlen Einfügen->Zeilen/Spalten orientiert, die ebenfalls keine Inhalte übertragen.

Als philanthropische Tat : Es gibt zwei weitere Menübefehle:

    Einfügen->Ausgewählte Zeilen/Spalten mit Inhalt

08.11.2012
Bug 3087 - Tabelle Einfügen -> Ausgewählte Zeilen/Spalten kann nicht in einem Schritt rückgängig gemacht werden

Die Menübefehle für Tabellen

    Einfügen->Ausgewählte Zeilen/Spalten

können die aktuell ausgewählten Zeilen/Spalten einer Tabelle duplizieren. Das ist prima und wäre mit InDesign®-Bordmitteln nicht möglich. Leider sind für ein Undo der Aktion, das ja trotzdem manchmal nötig ist, gaanz viele Einzelschritte nötig.

Das ist gefixt. Es ist nur noch ein Undo nötig, um den alten Zustand wiederherzustellen.

08.11.2012
R3250

Hotfix

01.11.2012

Bug 3064 - gOldValue

Analog zu gNewValue (Wert für "Datenquelle" in der Aufgabenpalette) fände ich noch ein gOldValue (Wert für "Dokument") sinnvoll. Manchmal sollen Platzhalter ja vielleicht gar nicht vergleichen, was im Text steht, sondern andere Dinge prüfen.

Das gibt es jetzt. Der Wert kann an der selben Stelle im Skript gesetzt werden, wo auch gNewValue gesetzt wird.

ACHTUNG: Nicht in allen Situationen ist gOldValue definiert. Auch wenn gNewValue definiert ist, sollte eine Abfrage für gOldValue gemacht werden :

if (gOldValue)
{
    ...
}

29.10.2012
Bug 3080 - parameter «alignment» in frame::stroke

Ist es tatsächlich so, dass ein setzen des parameters «alignment» in frame::stroke keinerlei auswirkungen hat!? egal ob ich den parameter auf -1, 0, 1 oder 2 setze, die kontur wird immer mittig gesetzt! könnt ihr das nachvollziehn?

Nein, das ist nicht so. Aber in der Doku fehlt in der Tabelle der Parameter gapOverprint. alignment muss also eins nach hinten rutschen, dann funktioniert es.

ACHTUNG : Wie ich gerade sehe, steht der Parameter miter zwar in der Doku. Aber der wird aktuell tatsächlich nicht ausgewertet. Das ist gefixt. (und die Doku natürlich auch.)

29.10.2012
Bug 3081 - Prä/Postfix-Skripte in Platzhaltern führen zum Absturz von InDesign®

In den Trenntexten von Platzhaltern dürfen ja Skripte ausgeführt werden :

    # "Mein Trenntext" Script 123456

Das führt leider zum Absturz von InDesign.

Der Fehler ist gefixt.

29.10.2012
R3242

Hotfix

26.10.2012

Bug 3078 - Icons und Datum von Notizen ragen recht weit nach links

Über den Notizen-Label werden noch zwei kleine Icons (Rolle und Typ) und das Datum angezeigt. Diese Angaben sind rechtsbündig zum Notizen-Label. Ist das Label kurz (weil der Name der Notiz kurz ist oder fehlt und/oder weil der Zuständige für die Notiz fehlt oder einen kurzen Namen hat), dann ragt die Beschriftung recht weit nach links über die Notiz hinaus. Sieht nicht so schön aus. Könnte man das nicht linksbündig machen. Auf der rechten Seite ist ja einfach durch die Notiz selbst in der Regel mehr Platz.

    

Man kann - und man hat.

26.10.2012
Bug 3077 - Fehler nach table::build in Platzhalterscripten

Ich habe in einem Textplatzhalter vier Tabellen eingefügt. Diese Tabellen sollen anschliessend der Reihe nach aufgebaut werden :

for (i = 0; i < 4; i++)
{	
	table::get(t, gFrame, i, gStart, gLen);	pos = table::get_anchorpos(t, &len);	
	if (pos < 0)
	{
		showmessage("Table not found in frame");
		break;
	}
	
	placeholder::link2(0, 3, gRecordID, 0, 0, strngid, pos, len);
	table::build (t);
}

Leider kommt nach dem Aufbau der ersten Tabelle die Meldung, dass keine weiteren Tabellen gefunden werden. Manchmal auch erst nach der zweiten Tabelle. die Tabellen sind aber definitiv im Dokument und gehören zum Platzhalter.

Das Gleiche gilt für table::reduce.

26.10.2012
Bug 3076 - textmodel::restore liefert mitunter eine negative Anzahl eingefüger Zeichen zurück

textmodel::restore hat einen Parameter, mit dem die Anzahl der eingefügten Zeichen ins Dokument zurück bekommt. Der liefert mitunter negative Werte :-(

Ja, und zwar immer dann, wenn das eingefügte Macro Tabellen enthält. Das ist gefixt. Die Längenangabe sollte jetzt richtig sein.

ACHTUNG:

Gleichzeitig mit diesem Fix ist das Verhalten der Funktion etwas geändert worden. Die Positionsangaben der Funktion sind ja textmodel-relativ und nicht wie sonst immer, platzhalter-relativ. Das ist natürlich weiter so. ABER : Wenn innerhalb des aktiven Platzhalters eingefügt wird, wird die Längenangabe platzhalter-relativ ausgewertet. kEnd ist in diesem Fall also das Ende des Platzhalters und nicht mehr, wie bisher, das Textende.

26.10.2012
Bug 3075 - textmodel::insert_macro liefert mitunter eine negative Anzahl eingefüger Zeichen zurück

textmodel::insert_macro hat einen Parameter, mit dem die Anzahl der eingefügten Zeichen ins Dokument zurück bekommt. Der liefert mitunter negative Werte :-(

Ja, und zwar immer dann, wenn das eingefügte Macro Tabellen enthält. Das ist gefixt. Die Längenangabe sollte jetzt richtig sein.

ACHTUNG:

Gleichzeitig mit diesem Fix ist das Verhalten der Funktion etwas geändert worden. Die Positionsangaben der Funktion sind ja textmodel-relativ und nicht wie sonst immer, platzhalter-relativ. Das ist natürlich weiter so. ABER : Wenn innerhalb des aktiven Platzhalters eingefügt wird, wird die Längenangabe platzhalter-relativ ausgewertet. kEnd ist in diesem Fall also das Ende des Platzhalters und nicht mehr, wie bisher, das Textende.

26.10.2012
Bug 3062 - Seitenwechsel zuweisen via Produkte des Dokumentes geht nicht mehr einzustellen

Die mit einem roten Pfeil markierte Einstellung geht nicht mehr zu ändern. Bis R3170 ging das noch :

    

Das geht wieder.

26.10.2012
Bug 3073 - Prefix/Postskripte (ClassID 50) werden nicht angezeigt.

In der Palette "Platzhalterwerte" sind seit v3.3 R3144 hinter den Editfeldern für die Prä- und Postfixe kleine Büroklammern, mit denen diese Texte konfiguriert werden können. In dem erscheinenden Dialog sollten unten alle Prefix/Postfix-Skripte (ClassID 50) gezeigt werden. Werden aber nicht. Das Popup ist leer.

Der Fehler tritt nur bei XML und SOAP auf. Bei Datenbankverbindungen werden die Skripte gezeigt.

Der Fehler ist gefixt.

25.10.2012
Bug 3072 - Prefix/Postfix für Textplatzhalter : Die Büroklammer in der Palette tut nichts

In der Palette "Platzhalterwerte" sind seit v3.3 R3144 hinter den Editfeldern für die Prä- und Postfixe kleine Büroklammern, mit denen diese Texte konfiguriert werden können. Nur die erste Büroklammer öffnet den erwarteten Dialog. Die drei anderen Klammern tun nichts.

    

Das ist gefixt. Alle vier Büroklammern öffnen jetzt den Dialog und setzen dann das Ergebnis jeweils in das richtige Edit-Feld.

25.10.2012
Bug 3070 - Einzelnen Hyperlink löschen

Ich vermisse die Funktion einen einzelnen Hyperlink direkt löschen zu können.

hyperlink::delete_ macht das jetzt. Mehr dazu in der Doku.

25.10.2012
Bug 3071 - Kennung von Rahmen per C-Skript setzen

Mit frame::get_smart_item_data() kann die Kennung eines Rahmens ausgelesen werden. Wie kann diese Kennung per C-Skript gesetzt werden?

Dafür gibt es jetzt die neue Funktion frame::set_smart_item_data.

WORKAROUND

Mit placeholder::sget_value und placeholder::change_tags und dem Info-Slot "SmartInfo" kann man die Kennung ebenfalls ändern :

  1. SmartInfo mit placeholder::sget_value holen
  2. Das erste Zeichen des Strings ändern
  3. SmartInfo mit placeholder::change_tags zurückschreiben
25.10.2012
Bug 3069 - Hinzufügen eines Rahmens zu einer Comet-Gruppe

Unser Kunde ist auf ein Problem gestoßen, das beim Hinzufügen von Rahmen zu einer Comet-Gruppe auftritt. Im Anhang finden Sie ein Dokument, welches auf der linken und rechten Seite jeweils die selben Rahmen hat (sie wurden dupliziert). Der einzige Unterschied ist die Anordnung von links. Auf der ersten Seite liegt der hinzuzufügende Rahmen links von der Gruppe, auf der 2 Seite rechts davon.

Markiere ich nun beide Rahmen auf der linken Seite und führe den Contextmenü-Befehl "Rahmen zur Gruppe hinzufügen" aus, passiert gar nichts. Mache ich das selbe auf der rechten Seite funktioniert es. Unser Verdacht ist hier, dass Rahmen, die links von einer Comet-Gruppe liegen nicht zu dieser Gruppe hinzugefügt werden können.

Das Problem liegt natürlich nicht an der XY-Position des Rahmens. Es ist gefixt.

19.10.2012
Bug 3063 - textmodel::set_font()

Analog zu get_font() hätte ich gern noch set_font(). Am liebsten so: textmodel::set_font(ItemRef frameRef, int startPos, int len, char* fontFamily, char* fontStyle), wobei fontFamily und fontStyle optional sein sollten (vielleicht will man ja nur eins davon setzen).

Warum will ich das und benutze keinen TaggedText? Weil InDesign® doof ist. Der Wert für cTypeface (also fontStyle) wird ignoriert, wenn direkt davor ein verschachteltes Format kommt. Dabei spielt die Reihenfolge der Tags keine Rolle, und andere Tricks auch nicht. Der Wert für cFont wird berücksichtigt.

Implementiert:

textmodel::set_font
textmodel::set_fontsize
19.10.2012
Bug 3065 - Sehr langsame Dokumentauswahl wenn viele Platzhalter ausgewählt sind

Wir haben sehr viele Platzhalter (>300) und recht große Tabellen. Ist die Platzhalter-Palette geöffnet und sind dort alle Platzhalter geladen, passiert es immer wieder, dass InDesign® scheinbar steht. Die Wartezeiten können bis zu 30 Sek. (!) dauern. Dieses Verhalten tritt nur auf, wenn die Auswahl viele (>50) Platzhalter enthält (Tabellen, langer Text, viele Rahmen mit Platzhaltern).

Mit dem Fix von Bug 2786 beherrscht die Platzhalter-Palette Mehrfach-Auswahlen. Dazu müssen alle im Dokument ausgewählten Platzhalter in der Platzhalterliste gesucht und dann ausgewählt werden.

In meinem Test habe eine 62x10 große Tabelle und 777 Platzhalter - macht also knapp 1/2 Mio. Vergleiche. Das dauert - auch wenn der Rechner schnell ist. Erschwerend kommt hinzu, dass InDesign® den nötigen Observer für die Dokumentauswahl gleich 10 mal (!) aktiviert. Aus welchem Grund auch immer. Das sind dann also 5 Mio Vergleiche mit 6000 mal durch eine 777 Einträge lange Liste rennen. Ordentlich was zu tun.

Das meiste davon ist unnötig. Und den Rest konnte ich optimieren. Die Auswahl, die bei bis bisher 30 Sekunden gedauert hat, dauert jetzt noch etwa eine halbe Sekunde. Drunter geht nicht mehr.

19.10.2012
Bug 3061 - Template-Tausch über "Produkte des Dokumentes" funktioniert nicht

In der Palette "Produkte des Dokumentes" kann man ja die Templates der Produkte tauschen. In der Liste wird dann das Template hinter dem Produkt unterstrichen dargestellt. Im Bild wurde das Template von "Flug der Engel" in "5. priint.day" geändert:

    

Wenn man dann reorganisiert, wird aber immer wieder das alte Template verwendet. Was mache ich falsch?

Gar nichts machst Du falsch. Die Plugins machen falsch. Das Problem ist gefixt. Templates lassen sich jetzt wieder tauschen.

18.10.2012
R3223

Hotfix

12.10.2012

Bug 3050 - layer::get_name(gFrame) funktioniert nicht in TableInsert-Methods

Wenn ich im Tabellenmodul in einer Table-Insert-Method den aktuellen Ebenen-Name auslesen will (layer::get_name(gFrame)), dann funktioniert das nicht zuverlässig.

Es verhält sich folgendermaßen:

Wenn ich Comet ganz neu mit der Datenbank verbinde und die Tabelle aufbauen lasse, ist das Ergebnis von layer::get_name(gFrame) leer. Bei einem erneuten Aufruf funktioniert es dann.

Es hat den Anschein, als wenn beim Erstaufruf "gFrame" noch gar nicht gefüllt ist und erst nach der Table-Insert-Method einen Wert bekommt. Beim nachfolgenden Aufruf verhält es sich dann genauso, bekomme aber den Wert, den ich beim Erstaufruf quasi zu spät erhalte. (Das kann man testen, in dem man zwischen dem ersten und zweite Aufruf den Ebenennamen wechselt.)

Das scheint mir ein Bug zu sein, oder wie komme ich an der Stelle zuverlässig an den Ebenen-Namen?

Nein, das Ergebnis ist eher zufällig. Die Skripte haben gFrame bisher überhaupt nicht gekannt. Jetzt sollten Sie es kennen.

12.10.2012
Bug 3053 - frame::color hat keinen Parameter für Deckungsgrad (tint)

Ich muss in einem Projekt die Hintergrundfarbe eines Rahmens setzen. Da die Farbe im Dokument definiert, aber durch Verwendung verschiedener Musterdokumente pro Dokument jeweils anders ist, mache ich das mit frame::color(gFrame, [Farbname]);

Leider habe ich dabei keine Möglichkeit, den Deckungsgrad (Tint) der Farbe zu setzen. Ich benötige 20% Deckungsgrad.

Ich hab schon versucht, das mit frame::opacity(gFrame,20.0,0,0); zu setzen, aber das bezieht sich ja auf die Transparenz des Rahmens und wirkt sich auch auf seinen Inhalt aus, ist also unbrauchbar.

Der Parameter hat bisher (niemandem) gefehlt. Jetzt hat die Funktion einen zusätzlichen Parameter. Angabe 0.0-100.0 (-1.0 für "Ignore").

12.10.2012
Bug 3052 - Reihenfolge der Produkte des Dokumentes falsch bei 1:1-Elementen und Fortsetzungen

Sind auf einer Seite mehrere Seitenelemente und werden Fortsetzungen verwendet, ist die Reihenfolge der Produkte des Dokumentes falsch.

Beispiel

Seitenelemente (E~) mit Produkten (P~)

E1 mit P1    E4 mit Fortsetzung von P3
E2 mit P2    E5 mit P4
E3 mit P3    E6 mit P5

ABER die Produktreihenfolge ist

P1
P3
P2
P4
P5
P6

P3 und P2 sind also vertauscht.

Zur Ermittlung der Reihenfolge werden die XY-Koordinaten der Cometgruppen der Produkte verwendet. Fälschlicherweise wurde dabei aber die gesamte Cometgruppe verwendet - es dürfen aber die einzelnen Teile (getrennt in Hauptgruppe und einzelne Fortsetzungen) verwendet werden - dann geht alles.

Der Fehler ist damit gefixt.

12.10.2012
Bug 3051 - Justierung in 1:1-Elementen falsch

Produkte, die in normalen 1:1-Seitenelementen werden horizontal falsch platziert, wenn sie zentriert oder rechts ausgerichtet werden sollen. Links stimmt. Auch die vertikale Position stimmt.

Der Fehler ist gefixt.

12.10.2012
Bug 3045 - DragDrop von Produkten funktioniert nicht immer, wenn unsichtbare Ebenen im Dokument sind

Hallo,

mir ist da ein Fehler aufgefallen, der sich generell reproduzieren lässt (Version Windows 7): beim Drag & Drop aus der Produktrecherche mit gedrückter Strg-Taste in ein Seitentemplate wird dann nichts aufgebaut, wenn es eine ausgeblendete Ebene gibt (auch wenn diese nicht selektiert ist). Sobald man die Ebene einblendet, klappt alles normal.

Der Fehler ist gefixt.

05.10.2012
Bug 3043 - Reihenfolge in Produktliste und Palette Produkte des Dokumentes sind unterschiedlich

Beim zweispaltigen Aufbau der Produkte in Kombination mit dem vertikalen Keil ist die Reihenfolge der Produkte in der Produktliste eine andere als in der Palette "Produkte des Dokumentes".

Für die Reihenfolge von Produkten in 1:N-Elemente werden deren XY-Koordinaten verwendet.

Bei spaltenweiser Sortierung gehören alle Produkte mit gleicher X-Koordinate zur gleichen Spalte. Leider ist die interne Maschinendarstellung etwas anders als das, was man nach "aussen" sieht : Zwei Rahmen, die nach aussen die gleiche X-Position (z.B. 294,803 Pt) haben, können intern die Positionen 294,803000001 Pt und 294,803000002 haben. Dadurch entstehen die beschriebenen Fehler.

Ich verwende daher für den Koordinatenvergleich jetzt nicht mehr die Werte selbst sondern deren Abstände. Ist der Abstand kleiner als 1 Pt sind die Werte gleich :

    ALT   if (x1 == x2)
    NEU   if (abs (x1-x2) < 1.0)

Damit ist das Problem gelöst.

Der vertikale Keil hat mit diesem Problem nichts zu tun. Er ändert die X-Koordinaten der Produkte nicht.

04.10.2012
R3210

Hotfix

26.09.2012

Bug 3042 - Seitenelement mit "Produkt darf im nächsten Element fortgesetzt werden" erzeugt "Löcher" im Aufbau

Ich habe ein Seitenelement mit der Eigenschaft "Produkt darf im nächsten Element fortgesetzt werden". Wird dort ein Produkt platziert, das diese Eigenschaft brauchen könnte, funktioniert der Aufbau zwar, aber es wird mind. ein Seitenelement übersprungen. Für mich sieht das so aus, als würden die genau die Seitenelemente übersprungen, über denen die Rahmen lagen, die dann auf weitere Elemente verteilt werden sollten.

Das Problem ist gefixt.

26.09.2012
Bug 3033 - Löschen von globalen Variablen erschweren / Palette Einstellungen

Könnte man das Löschen in der Palette "Einstellugen" irgendwie erschweren? Ich würde das gerne nutzen, damit z.B. der Kunde selbst Bildpfade anpassen kann. Dabei habe ich (berechtigte) Angst, dass er sich die Konfiguration zerstört, in dem er aus Versehen auf das rote x klickt. Dann ist die Variable nämlich direkt unwiederbringlich verloren. Ohne Netz und doppelten Boden.

Es wäre cool, wenn man die Löschfunktion mit irgendeiner Tastenkombi (Strg-Alt o.ä.) schützen könnte, damit man sich da nicht direkt ins Unglück stürzen kann?

Zum Löschen der Einträge (Button UND Menü) muss jetzt die ALT-Taste gedrückt sein.

24.09.2012
Bug 3040 - Platzhalter-Slots in "Platzhalterwerte"

In der Palette Platzhalter kann man ja ziemlich viele Werte der Platzhalter sehen. Mit dem Befeh placeholder::change_tags kann man aber noch mehr setzen. Könnte man diese Werte auch in der Palette anzeigen?

Damit die Palette nicht unendlich groß wird, befindet sich jetzt ganz unten ein Editfeld mit der Beschriftung "Attribut". Dort kann man einen gültigen Slotnamen eintragen. Der jeweilge Wert des Platzhalters wird dann hinter diesem Feld angezeigt.

    

24.09.2012
Bug 3036 - Seitenumbruch nach Platzierung des Fortsetzungstemplates

Wenn ein Fortsetzungstemplate angewendet wird, dann wird das nachfolgende Produkt immer auf einer neuen Seite platziert, obwohl das noch locker auf die vorherige Seite passen würde. D.h. auf der Seite mit dem Fortsetzungstemplate wird nichts mehr platziert.

Bei 3.3 R3000 gibt es diesen unnötigen Seitenumbruch nicht, hat sich da evtl. ein Fehler eingeschlichen?

Nachdem ich mir das jetzt genauer angesehen habe : Nein, es hat sich kein Fehler eingeschlichen. Du hast einen Fehler ausgenutzt, der inzwischen behoben ist (Bug 2952). Hier ist die Gestaltungsregel, die den Fehler ausnutzt:

gParam2 enthält die Kennung eines Rahmens der Hauptgruppe, gParam3 die Kennung eines Rahmen der Fortsetzung. Der Rahmen der Hauptgruppe wird in die Fortsetzung verschoben.

int main ()
{
	ItemRef		lastImage	= item::alloc ();
	ItemRef		leanOn	= item::alloc ();
	float		l, t, r, b;
	int			pageNum;
	
	frame::get_cometgroup_member (gFrame, gParam2, lastImage);
	frame::get_cometgroup_member (gFrame, gParam3, leanOn);
	
		if (!frame::is_valid (lastImage))	return 0;
		if (!frame::is_valid (leanOn))	return 0;
		
	frame::bbox (leanOn, &l, &t, &r, &b);
	pageNum		= page::get (leanOn);
	
	frame::moveto (lastImage, l, t, pageNum);
	return 0;
}

Ein Rahmen der Hautgruppe wird, zumindest von seiner Position her, von der Hauptgruppe in eine Fortsetzung verschoben. Es gibt nichts, woran der Aufbau das erkennen könnte (nicht mal die Seitennummer. Die Elemente könnten ja genauso gut auf der gleichen Seiten liegen.) Und prompt kommt der Aufbau auch durcheinander.

Ich habe eine ganze Weile darüber nachgedacht, ob ich was an dem Problem mache. Ich bin ziemlich sicher, dass das Ganze ein absoluter Einzelfall ist. Ich hab trotzdem was gemacht (s.u.).

Zur Lösung kann man zwei Dinge tun:

  1. Im Fortsetzungstemplate an die Stelle, an die der Bildrahmen verschoben wird, einen durchsichtigen Rahmen der gleichen Grösse anlegen (gewissermaßen als "Platz"halter im Wortsinne). Damit kann das Dokument zwar nicht mehr aufgeräumt werden (weil der Bildrahmen ja weiterhin zum Haupttemplate gehört, das dadurch ziemlich groß wird), aber es wird immerhin richtig aufgebaut.

  2. Hinter das frame::moveto diese Zeile einfügen :

        placeholder::change_tags (lastImage, 0, "Continue", -1);

    und auf das nächste Release (v3.3 R3175) warten. Da geht es dann richtig. ABER : Da kann zwar aufgeräumt werden, aber weil der Bildrahmen jetzt zur Fortsetzung gehört, wird er beim Aufräumen gelöscht - auch nicht so toll.

Eine richtige Lösung bekommt man mit dem Buildsupport-Skript hin : Nach dem Aufbau erzeugst Du deine Bildrahmen und platzierst Sie richtig. Vor dem (nächsten) Aufräumen löschst Du diese Rahmen alle. DamitDu die Rahmen wiedererkannt werden können, könnten sie mit einer einheitlichen Kennung versehen werden.

24.09.2012
Bug 3039 - Rahmen des Textfluss-Aufbaus haben einen blauen Hintergrund

Ich habe in einem Seitentemplate ein Seitenelement für den Textaufbau eingefügt. Wenn ich in dieses Element Text importiere, erhalte ich immer einen Rahmen mit einem blau getönten Hintergrund.

Beim Textaufbau wird der Rahmen, in den importiert werden soll, direkt aus dem Seitentemplate geholt. So kann man den Textrahmen auch gestalten. Standardmässig werden neue Rahmen in Seitentemplate-Dokumente mit diesem blauen Hintergrund erzeugt. Das ist jetzt nicht mehr so.

21.09.2012
Bug 3038 - Aktualisieren der Platzhalter über die Aufgaben-Palette führt keine Gestaltungsregeln aus

Ich habe einen Rahmen mit der Gestaltungsregel "fitframe" nach Laden. In dem Rahmen ist ein Textplatzhalter. Nach dem Aufbau ist der Platzhalter geladen und der Rahmen hat die richtige Grösse.

Jetzt wird der Platzhalter-Inhalt im Datenbestand geändert. Nach Überprüfung mit der Aufgabenpalette erscheint der Platzhalter dann als "Zu aktualisieren" in der Liste. Wenn ich jetzt aktualisiere, wird der Platzhalter mit dem neuen Text geladen. Alles gut bis hierher. ABER : Die Gestaltungsregel wird NICHT ausgeführt. Der Rahme hat jetzt eine falsche Grösse.

Das ist völlig klar : Bei der Aktion wird der TEXT-Platzhalter neu geladen, nicht der Rahmenplatzhalter, den es ja gar nicht gibt. Aber die Regel wird nur beim Laden des RAHMENS ausgeführt - was wir ja hier gar nicht machen.

Trotzdem wäre es natürlich schön, wenn die Gestaltungregeln irgendwann gefeuert werden würden. Und das werden sie jetzt auch : nach dem Aktualisieren der Platzhalter einmal pro beteiligten Rahmen. Ist der Platzhalter Teil eines Textes, der über mehrere Rahmen läuft, werden die Gestaltungsregeln ALLER Rahmen der Textkette ausgeführt.

21.09.2012
R3170

Hotfix

20.09.2012

Bug 3037 - Textfluss im Seitenaufbau erzeugt leere Zwischenseiten

Ich habe ein Seitentemplate mit einem Element. Dieses Element ist für Textfluß eingestellt. Das Produkt-Template enthält genau einen Textrahmen.

Baut man dann mehrere Produkte auf, wird zwar ein Textfluss erzeugt mit allen Rahmenverlinkungen und so - aber leider ist zwischen jeder Seite eine Leerseite.

Der Übersatz, den ein einzelnes Produkt erzeugt, erzeugt keine zusätzlichen Seiten. Nur bei Produktwechseln wird eine Zwischenseite angelegt.

Und auch das stimmt nur bedingt : Das passiert nur dann, wenn das Seitentemplate nur ein Element hat. Hat es mehrere, wird jeweils EIN Element übersprungen. Aber das ist ja auch nicht schön.

Der Fehler ist gefixt.

20.09.2012
Bug 3035 - Bei Reorganisation entstehen ungewollte Seitenumbrüche

Ich habe ein aufgebautes Dokument, das reorganisiert werden soll. Dabei entsteht hinter dem ersten Produkt immer ein Seitenumruch. Auffällig ist, dass in der Palette "Prod. des Dok." hinter dem ersten Produkt ein Seitentemplate-Eintrag gezeigt wird - der ja tatsächklich dann den Seitenumbruch macht. Aber woher kommt dieser Seitentemplate-Eintrag in der Liste. Entferne ich ihn manuell, wird richtig und ohne zusätzlichen Seitenumbruch aufgeräumt. Das wäre soweit als Workaround okay. Ich muss das aber leider bei JEDER Reorganisation machen.

Der Fehler ist gefixt.

20.09.2012
Bug 3034 - Skript unter pageitems.pageitem.scriptid wird nicht ausgeführt

Templates (früher hießen die Pageitems) können ja vor dem Einsetzen das sog. PageitemID-Script ausführen, die unter XML im Element pageitems.pageitem.scriptid verwaltet wird.

Ich habe das Element in allen pageitem-Elementen angelegt und kann die SkriptId jetzt im Dialog zu den Pageitems (Templates) auch setzen. Wenn ich den Dialog erneut öffne, ist die Einstellung aber weg. Und beim Einsetzen des Templaets wird (nun erwartungsgemäß) das Skript auch nicht ausgeführt.

Alles ist richtig. Nur die Doku ist falsch. Hier fehl ein Wort. Das Element scriptid muss unter dem Element spread liegen. Also so :

    pageitems.pageitem.spread.scriptid
20.09.2012
R3153

Hotfix

13.09.2012

Bug 3032 - Absturz beim Ermitteln der Cometgruppe gruppierter Rahmen

Ist der Hauptrahmen einer Cometgruppe innerhalb einer InDesignGruppe, kann InDesign® abstürzen, wenn die Mitglieder der Cometgruppe ermittelt werden sollen.

Der Fehler ist gefixt.

13.09.2012
Bug 3031 - Ebene einer Notiz über den Namen erkennen

Wenn man Notizen jetzt woeder auf ihre ursprüngliche Ebene zurücklegen kann, könnte man das dann vielleicht auch über den Namen machen. Das wäre von Vorteil, wen die Notizen in en anderes Dokument mit gleichen Ebenen-Namen importiert werden.

Das geht jetzt auch. ID und Name der Ebene werden pro Notiz hinterlegt. Wird eine Notiz wieder sichtbar gemacht, wird die Ebene zuerst über die ID gesucht. Wird diese Ebene nicht gefunden, wird über den Namen gesucht.

13.09.2012
Bug 3030 - Comet-Notizen verlieren nach aus- und wieder einblenden ihre Ebene

Nach dem Einblenden werden Notizen immer auf der obersten Ebene gezeigt - egal, auf welcher Ebene sie vor dem Ausblenden waren.

Notizen werden jetzt wieder auf ihrer ursprünglichen Ebene platziert. Die Ebenen können umbenannt werden, während Notizen ausgeblendet sind. Wird die Ursprungsebene gelöscht, während die Notiz unsichtbar ist, wird die Ebene auf der obersten Ebene platziert.

13.09.2012
Bug 3029 - Absturz beim Löschen von Rahmen, wenn Previews und Produktrecherche offen sind

... und zusätzlich muss der Rahmen, der gelöscht werden soll, einen Platzhalter haben und mit einem Produkt verknüpft sein. Aber dabb stürzt InDesign® reproduzierbar ab, wenn man den Rahmen löschen will.

Huch. Stimmt. Das ist gefixt.

13.09.2012
Bug 3028 - Absturz beim Aufbau mit geöffneter Previewpalette

Beim Aufbau mit geöffneter Previewpalette stürzt InDesign® ab. Wenn die Previews vorab geladen werden ("alle Assets des Dokuments") sind sie gecached, und nix stürzt ab. Wenn die Previewpalette geschlossen ist, oder der Haken bei "an Dokumentauswahl anpassen" ist weg, stürzt auch nix ab.

Der Fehler ist gefixt.

Dafür war leider die große Keule nötog : JEDES Skript deaktiviert jetzt temporär das Neuladen der Preview-Liste. Wenn ALLES Skripte wieder beendet sind, wird die Liste neugeladen. Das Gleiche machen Produktaufbau und -reorganisation.

13.09.2012
Bug 3021 - table::fit_col mit keepLineHeights funktioniert nicht immer

Ich habe ein kleines Probleme mit table::fit_col(). Du hast, laut der news_3.3 mit R3144 die Methode um einen Parameter erweitert damit die Zeilenhöhe nicht verändert wird bei einem fit_col(). Doch genau dies passiert leider.

Der Fehler ist gefixt.

12.09.2012
Bug 3020 - Absturz beim Einfügen einer Tabelle in einen Platzhalter, der in einer Tabellenzelle steht

Ich habe einen Platzhalter, der in einer Tabellenzelle steht. Dieser Platzhalter soll eine Tabelle einfügen. Dabei stürzt InDesign® ab. Es ist dabei egal, ob die die Tabelle mit TaggedText einfüge oder mit Skriptbefehlen zusammenbaue.

Steht der gleiche Platzhalter nicht in einer Tabellenzelle, funktioniert alles.

Beim Einfügen von Text müssen zwei Dinge getan werden :

  1. Platzhalter im eingefügten Text laden
  2. In der Schleife zum Bearbeiten der Platzhalter müssen Textposition und -länge angepasst werden.

Für beide Punkte muss die Länge des eingefügten minus die Länge des dabei gelöschten Textes ermittelt werden. Dazu hab ich ich Textlänge als Basis genommen. Das funktioniert - solange keine Tabellen eingefügt werden. Dann ist der Fall anders :

"Alter Text" : Länge = 10
"T1\rZelle1\rZelle2\rZelle2\rZelle4 : Länge = Länge (T1) + 28 >= 30

wobei T1 eine Referenz auf die Tabelle hat. Die Länge ist variabel (so etwa zwischen 2 und 10).

Nach dem Einfügen der Tabelle ist folg. passiert :

  1. Der Platzhalter, der dieTabelle einsetzt, wird über den neuen Text (mind. 0-30) gezogen. Dadurch bekommt u.a. jede Zelle der neuen Tabelle den Platzhalter.
  2. Der neue Text wird geladen. Wobei dann mind. 5 neue Tabelle entstehen.
  3. Und das in alle Ewigkeit für jede der neu eingefügten Tabellen ...

Das ist gefixt. Die Länge des neuen Textes wird jetzt richtig berechnet. Der Fehler in dieser Form bestand übrigens seit dem Fix von Bug 1274 am 2. Sept. 2008, also fast exakt vieer Jahre

12.09.2012
Bug 3019 - Einstellungen "Comet > Platzhalter in/aus Taggedtext schreiben/lesen" ändern sich nach Login/Logout

Beide Menüs

    Comet > Platzhalter in/aus Taggedtext schreiben/lesen

sind aktiviert. Wenn ich mich einmal ein- und wieder auslogge, sind beide Menüs deaktiviert.

Workaround

Das Problem ist sehr einfach zu umgehen. Einfach im AfterLogin-Skript (Panelstatement 92) die folg. Zeilen einfügen :

    prefs::set_tags_readable (1);
    prefs::set_tags_writeable (1);

Lösung

Der Workaround funktioniert natürlich nicht, wenn Benutzer die Einstellung ändern. Die Einstellungen werden jetzt automatisch nach dem Logout zurückgesetzt.

12.09.2012
R3144

Hotfix

09.09.2012

Bug 3018 - Prefix/Postfix von Platzhaltern tut nicht, was ich möchte

Ich habe zwei Platzhalter. Der erste zeigt einen Artikelnamen, der zweite eine Aufzählungsliste mit Eigenschaften. Diese Liste kann leer sein. Die Eigenschaften haben einen anderen Absatzstil als der Titel.

Im Template sieht das so aus

[Titel] [Eigenschaften]

Geladen so :

Produkt1
    • Eigenschaft1
    • Eigenschaft2
    • Eigenschaft3

Ich hätte gedacht, man kann jetzt in den Prefix so was reinschreiben wie !%TT<ParaStyle:Itemlist> und dann bekommt der neue Absatz mit den Eigenschaften den Stil "Itemlist". Bekommt er auch, aber der Titel auch.

Das geht mit den Prefixen bisher gar nicht. Der Text mit den Eigenschaften muss die Formatierung liefern :

%!TT<ParaStyle:><ParaStyle:Itemlist>Eigenschaft1<ParaStyle:Itemlist>Eigenschaft2...

Pre/Postfixe von Platzhaltern können jetzt (nach einem einleitenden #) Folgen von Anweisungen enthalten. Diese Anweisungen können verwendet werden :

  1. Text für den Prefix
  2. Absatz/Zeichenstil des Platzhaltertextes setzen
  3. Skript für den Platzhalter ausführen (ClassID 50)

Damit kann man das gewünschte jetzt machen. Der Platzhalter für die Eigenschaften liefert das Ergebnis ohne Absatzstile einfach so hier :

%!TT<ParaStyle:>Eigenschaft1<ParaStyle:>Eigenschaft2

Im Prefix steht

# "/r" pStyle "Itemlist"

Damit ist alles gut. Mehr dazu hier.

07.09.2012
Bug 3017 - placeholder::load / link mit Tabellen aus Tabellenplatzhaltern

Mit den Fixes von Bug 2986 und 3014 werden ja Tabellen, die aus Tabellenplatzhaltern entstanden sind, beim Neuverknüpfen mit einem anderen Produkt wieder richtig aufgebaut (was vorher gar nicht der Fall war, da wurden alle Platzhalter der Tabellenzellen mit dem neuen Produkt verknüpft - sehr strange).

Leider kann man das via cScript nicht nachstellen. Die Sequenz

    placeholder::link ...
    placeholder::load ...

erzeugt leider immer das alte Verhalten.

In der Tat. Das Problem kann jetzt durch zwei zusätzliche Parameter in placholder::link (und placeholder::link2) behoben werden : Dort kann man jetzt angeben, ob direkt nach dem Verknüpfen auch geladen werden soll. Macht man das so, ist alles gut - die Tabellen sind danach richtig. (Der zweite Parameter ist "applyRules" für das Laden.)

06.09.2012
Bug 3016 - Fitframe macht Rahmen nicht groß genug

Ich habe einen Textrahmen, der nicht sehr hoch ist. Dieser Rahmen kann mglw. einen recht langen Text bekommen und soll sich dann an den Text anpassen. Meist klappt das. Wird der Text aber sehr lang, wird der Rahmen nicht groß genug.

Der Fehler ist mit Fix des Bugs 2961 in R3100 entstanden. Hintergrund war, dass Rahmen einen Text enthalten können, der niemals passt (schmaler Rahmen mit einem langen Wort, das nicht getrennt werden kann/darf). Dann muss man irgendwann aufgeben, den Overset zu beseitigen, in dem der Rahmen grösser gemacht wird. Das hatte ich bei 800 Punkten gemacht. (Aus Performance-Gründen soll der Rahmen auch nicht zu groß werden.) Ich habe den Stopp jetzt bei 2000 Punkten gemacht - das entspricht genau der Höhe der Arbeitsbereiche von zwei Spreads für Standard-Seiten (A4). Ich denke, das ist groß genug.

    

06.09.2012
Bug 3015 - Gestaltungsregeln von InDesign®-gruppierten Rahmen

Sind Rahmen in InDesign®-Gruppen zusammengefasst, werden nicht alle Gestaltungsregeln der Rahmen ausgeführt. Die Regeln "Nach Laden" (<=) werden ausgeführt, alle anderen nicht.

Die Regeln werden jetzt auch für alle Rahmen in InDesign®-Gruppen ausgeführt.Regeln werden auch für die Gruppenrahmen selbst ausgeführt mit der Ausnahme : Die Regeln "Nach Laden" werden NICHT für Gruppenrahmen ausgeführt (dort gibts eh nichts zu Laden).

Ebenso werden jetzt auch alle Regeln von Rahmen in Multistates und Pushbuttons ausgeführt.

06.09.2012
Bug 3014 - Tabellenaufbau, der bis R3120 funtioniert hat, geht nicht mehr

... die Tabellenzellen sind mit falschen IDs verknüpft.

Ausserdem fällt auf, dass im Logfile sehr viele Nachrichten der Art

# TABLE : Building table with UID ...

stehen. Das Template enthält aber nur eine Tabelle, die aufgebaut werden muss. Und entsprechend langsam ist das Ganze dann auch noch.

Bei Neuverlinken von Tabellen werden ab diesem Release aufgebaute Tabellen zurückgesetzt und danach neu aufgebaut (Bug 2986). Dabei ist ein kleiner aber wirksamer Fehler unterlaufen. Das ist jetzt gefixt.

Der Aufbau der Templates sollte jetzt wieder richtig funktionieren.

RELEASES R3121 - R3143 SOLLTEN NICHT VERWENDET WERDEN!

06.09.2012
Bug 2994 - Weitere Variablen in den Skripten zur Aufbauhilfe

Habe gerade das Problem, dass ich nach dem Aufbau eines Produktes etwas machen muss und das hängt von der Vorlage des aktuellen und des nächsten Produkts ab. Daher wäre es Praktisch, wenn ich im Skript auf weitere Variablen zugreifen könnte:

  1. Die Liste der aufzubauenden Produkte
  2. Den Index (laufende Nummer) des aktuellen Produkts in der vorherigen Liste
  3. Die IDs des aktuellen Produkts

Was schon geht, auch wenn es in der Doku nicht erwähnt ist, ist der der Zugriff auf gRecordStringID. Ist das so gewollt oder eher Zufall?

In diesen Skripten gibt es jetzt die folg. Variablen :

gProducts, gProduct, gProductCounter

Achtung :

  • gProducts und dessen Inhalte dürfen nicht geändert oder gelöscht werden.
  • gProduct darf geändert oder gelöscht werden.
  • gProducts kann Seitentemplate-Einträge enthalten. Die Elemente sollten also mit product::get (..., kProductType) geprüft werden.
  • gProducts kann "toDelete"-Einträge enthalten. Die Elemente sollten also mit product::get (..., kProductDoDelete) geprüft werden. kProductDoDelete ist neu in diesem Release.
  • gProductCounter ist NICHT der Index von gProduct in gProducts. Es ist der 1-basierte Zähler, welches Produkt gerade aufgebaut wird. Den Index kann man mit productlist::get_pos (gProducts, gProduct) erhalten.

Bemerkung

gRecordStringID enthält die StringID des aktuellen Produktes. gRecordID, ~2 und ~3 enthalten die anderen Teile der ID des aktuellen Produktes. Das ist natürlich mit Absicht so. Punkt 3 von oben war also schon erfüllt.

04.09.2012
Bug 2985 - Tabellen werden nicht geladen.

ich hab das problem das keine Tabellen scripte nach einem Login gefeuert werden. Sobald man sich ein 2tes mal einloggt ist alles wieder i.o. Verwendet wird CS 5 R3100 und Mac 10.7/10.6

ich möchte den Fix dieses Bugs befördern,da ich diesen Bug bei drei Kunden habe. Es werden keine Spalten bzw. Zeilen Duplizierungsskripte ausgeführt. Das Logfile ist nicht aussagekräftig, da einfach das Logging der Spalten und Zeilenskripte fehlt und das Laden der Tabelle zeigt, dass sie leer ist.

Ein erneutes Einloggen bzw. mit Entwicklerlizenz ein aktives Leeren des Skriptcaches haben das Problem beseitigt, ein Zweimal-Einloggen-Workaround beim Kunden aber nicht verstanden werden wird.

Der Bug ist bei allen Releases nach R3000 vorhanden und auch noch in R3132.

(Comment 5) Ich habe weiterhin festgestellt, dass beim ersten Login das Suchen in der Template Palette nicht funktioniert (Sartorius) und im Logfile aber nichts passiert, wenn man auf die Lupe klickt.

Ich bin ziemlich sicher, dass du bei Comment 5 eine Comet-Revision < 3115 verwendet hast. Genau dieses Problem wurde nämlich in dieser Revision gelöst (Bug 2956). Kannst Du das bitte noch mal mit einem aktuellen Release prüfen?

Und was den Hinweis mit dem Logfile betrifft - wenn es sich um einen Plugin-Fehler handelt, wird dort auch nichts dazu stehen, oder? Ich kann ja nicht ins Logfile schreiben

    # Achtung, noch unbekannter Fehler in den Plugins ...

Der erste Fehler (das mit den Actions der ClassID 24 zum Aufbau der Zeilen und Spalten von Tabellen) stimmt leider und ist jetzt gefixt.

FYI

Der Fehler ist durch den Fix von Bug 2885 ("Shortcuts von Palettenskripten funktionieren nicht immer") in R3024 entstanden. Wie man schon aus dem Bug-Namen sieht - ein ganz anderes Thema. Ein unerwarteter Seiteneffekt hat dabei den komplizierten Prozess durcheinander gebracht, der sicherstellt, dass nach einem Login (der über das Plugin CoreService gemacht wird), alle anderen Plugins informiert werden und dort die nötigen Aktionen (wie z.B. eben das Laden der o.g. Actions) auslöst.

31.08.2012
Bug 3011 - Abstürze am Skriptende bei Verwendung von IDTypeList::alloc

Wenn ich das folgende - sehr kurze - Skript ausführe, dann stürzt am Ende InDesign® immer ab. Unter MacOS tritt der Absturz nicht auf.

int main()
{
	IDTypeList entries = idtypelist::alloc(0);
	
	return 0;
}

Der Fehler ist gefixt.

30.08.2012
Bug 3013 - Produktaufbau mit "Rahmen an Inhalt anpassen" und Konturführungen funktioniert nicht richtig

Ich habe ein Template mit einem Textrahmen, dessen Grösse über die Gestaltungsregel "Rahmen anpassen" an den Textinhalt angepasst werden soll. Das funktioniert manchmal, manchmal aber nicht. Auffallend ist, dass der Textrahmen die Gestaltungsregel zwar ausführt (das sieht man im Logfile und ausserdem ist seine Höhe im Dokument anders als im Template), aber die Höhe ist nicht richtig. Wie kann das sein?

Wenn sich im Template Rahmen mit Konturführung befinden, passiert folgendes :

  1. Der Produktaufbau platziert das Produkt an der Position (0, 0) der Seite. Irgendwo muss er es ja hin tun. Die Endposition können wir ja erst ermitteln, wenn das Produkt aufgebaut ist. Also ist (0, 0) eine gute Wahl - da fällt auch nichts von der Seite oder gar vom Arbeitsbereich.
  2. Am Seitenanfang befindet sich aber ein bereits platziertes Produkt. Und der Rahmen mit der Konturführung verdrängt da den Text des neuen Produktes. und genau für diese Situation wird der Rahmen angepasst.
  3. Das Produkt ist jetzt fertig aufgebaut und wird an die jetzt ermittelte Zielposition verschoben.
  4. An der Zielposition ist KEIN Rahmen mit Konturführung. Dadurch braucht der Text natürlich weniger Platz im Rahmen. Und das ist das, was man dann sieht.

Doofe Situation das.

Ganz unten in der Trickkiste war noch was. Das Problem ist gefixt.

30.08.2012
Bug 3010 - Rahmen ausserhalb des Arbeitsbereiches führen beim Ausführen von Gestaltungsregeln zum Absturz

Es ist ein absoluter Sonderfall, der zu einem - eigentlich vorhersehbaren - Absturz führt : Eine InDesign®-Gruppe enthält einen Rahmen mit der Gestaltungsregel "Rahmen anpassen". Die Gruppe wird jetzt so verschoben, dass nur noch ein Teil ded obersten Rahmen im Arbeitsbereich liegt und der Rahmen mit der Gestaltungsregel ganz vom Arbeitsbereich fällt.

Führt man jetzt die Gestaltungsregel aus, stürzt InDesign® ab, oder besser gesagt - es warnt vor einem schwerwiegenden Fehler und hört dann auf.

Irgendwie ist klar, was passiert und dass das eigentlich nicht geht. Leider gibt es Kunden/Anwender, die Produktgruppen genau auf die oben beschriebene Art verschieben und dann die Platzhalter aktualisieren lassen. Und wenn die Gestaltungsregel dann nach dem Laden ausgeführt wird - peng.

Ja, irgendwie schon hart. Ist irgendwie so wie mit 180 bei Glatteis durch den Nebel und sich wundern, wenn man auf ein anderes Auto auffährt.

Wir verbreitern dafür kurzzeitig die Autobahn, so dass Problem nicht mehr auftritt.

ACHTUNG: DAS VERHALTEN WURDE NUR FÜR GESTALTUNGSREGELN ANGEPASST. ES IST RECHENINTENSIV.

Abgrenzung : Das gleiche Problem kann auch in beliebigen anderen Skripten auftreten (z.B. Laden-Skripte von Rahmen, die frame::fit, frame::duplicate, frame::move, ... ausführen). In diesen Fällen treten die InDesign®-Fehler nach wie vor auf. Aus Performance-Gründen werden wir für diese Fälle keine zusätzliche Behandlung implementieren.

Und noch ein weiteres ACHTUNG : Das ganze geht erst ab CS4. Für CS3 gibt es für dieses Problem keine Lösung!

29.08.2012
R3136

Hotfix

29.08.2012

svn 3140

Bug 3009 - Funktionen zum Setzen/Ermitteln der Eckenoptionen eines Rahmens

Gibt es das?

Jetzt ja :

    frame::get_corner
    frame::set_corner

29.08.2012
Bug 3008 - list::alloc für unsichtbare Paletten

Mit list::alloc kann man sich ja die (ausgewählten/markierten) Objekte der Comet-Paletten holen. Das klappt aber nur, wenn die jeweilige Palette auch sichtbar ist. Ansonsten ist die Ergebnisliste leer.

Beim Schliessen von Paletten entfernt InDesign® alle Listeneinträge der Listen der Palette. Deshalb ist das so. Wenn die Liste beim erneuten öffnen wieder den alten Inhalt zeigt,dann nur deshalb, weil wir sie sofort wieder mit den alten Daten füllen. Ein recht aufwendiger Prozess.

Da wir die Daten aber schon mal haben, können wir sie auch für list::alloc verwenden und hier Ergebnisse liefern, auch wenn die Palette unsichtbar ist.

ACHTUNG : Das geht natürlich nur für die Auswahltypen kAll und kEeyMarked. kSelected liefert weiterhin eine leere Liste - eine Auswahl haben unsichtbare Listen nach wie vor nicht!

29.08.2012
Bug 3007 - Absturz bei Sync mit vielen Platzhaltern mit SyncID -1

Ich habe ein großes Dokument mit vielen Platzhaltern, die die SyncID -1 haben. Aufbau und Aktualisierung funktionieren fehlerlos. Aber beim Überprüfen des Dokumentes stürzt InDesign® immer und an verschiedenen Stellen ab. Die Laden-Skripte enthalten alle das für SyncID -1 nötige gNewValue und verlassen die Skripte vor Dokumentänderungen.

Ja, in dieser Situation sind große Speicherlöcher entstanden. Pro überprüftem Platzhalter gingen jeweils 2 MB Speicher verloren. Das geht natürlich nicht lange gut und der Speicher ist bald voll.

Der Fehler ist gefixt.

29.08.2012
Bug 3006 - Testadaptionen nur mit positiven Seitengrössen-änderungen

Die Edit-Felder zum schrittweisen Adaptieren des Frontdokumentes erlauben nur positive Schrittweiten.

Jetzt können auch negative Werte eingetragen werden.

29.08.2012
Bug 3005 - Mehrfach-Adaption nutzt die Angabe <basename> nicht

Mit dem ersten Button der Palette priint.adjust kann man ja viele Adaptionen auf einmal machen. Die Adaptionen müssen dazu in einer XML-Datei beschrieben werden. In dieser Datei kann auch im Feld <basename> etwas eingetragen werden. Das Feld wird aber offenbar nicht genutzt - die Zieldateien haben jedenfalls keinen gemeinsamen Namensanfang -wie man vielleicht erwartet hätte.

Wir wollen ja keine Erwartungen enttäuschen. Ein gemeinsamer Namensanfang wäre zwar auch recht einfach in der XML-Datei selbst zu machen. Aber gut. Die Angabe in <basename> wird jetzt verwendet wie oben beschrieben.

29.08.2012
Bug 3004 - Mehrfach-Adaption erzeugt Dateien mit indd.indd als Endung

Mit dem ersten Button der Palette priint.adjust kann man ja viele Adaptionen auf einmal machen. Die Adaptionen müssen dazu in einer XML-Datei beschrieben werden. Der hier angegebene Zielname wird automatisch mit der Endung ".indd" versehen. Das wird aber auch dann gemacht, wenn der Name in der XML-Datei diese Endung bereits hat.

Ist gefixt. Endet der gewünschte Name in der XML-Datei bereits auf '.indd' wird die Endung nicht mehr angefügt.

29.08.2012
Bug 3003 - Generierung mehrerer Adaptionen mit dem Mehrfach-Adaption-Button funktioniert nicht

Mit dem ersten Button der Palette priint.adjust kann man ja viele Adaptionen auf einmal machen. Die Adaptionen müssen dazu in einer XML-Datei beschrieben werden. Das fängt auch gut an. Dann erscheint ein Progress-Balken und InDesign® hängt sich auf.

Stimmt in diesem Fall wirklich : Für den Fix von Bug 2631 wird hier gewartet, weil noch ein Dialog offen ist (der Progessbalken). Da kann er lange warten.

Der Fehler ist gefixt. In diesem Fall wird nicht mehr auf den Dialog gewartet.

29.08.2012
Bug 3002 - Französische Übersetzungen für adjust-Skripte

Man kann die adjust-Regeln ja für Deutsch und Englisch lokalisieren. Für Französisch geht das leider nicht - obwohl wir eine französischen Variante der adjust Plugins haben.

Das sollte jetzt gehen. ("Sollte" meint : Ich kann es leider nicht testen, weil ich kein französisches InDesign® habe. Vor einem Einsatz bei Kunden muss das daher unbedingt mit einem französischen InDesign® überprüft werden! Mehr dazu hier.

28.08.2012
Bug 3001 - @LOADLIST formlabels erzeugt keine Auswahlliste

Wenn ich das als Parameter eine Gestaltungsregel verwende, dann erhalte ich zwar eine Combobox, allerdings nur mit den Einträgen "Leer" und "@LOADLIST formlabels".

Wenn ich testweise, das "formlabels" durch "cellstyles" ersetze (um einen Syntaxfehler auszuschließen), dann wird die Auswahlbox richtig angezeigt.

Der Begriff heisst framelabels (nicht formlabels). Das hatte ich in der Doku falsch geschrieben (die offenbar doch jemand liest).

28.08.2012
Bug 3000 - Doku für die Parameter von Adjust-Regeln

Könnte man nicht irgendeine Erweiterung der actions.xml machen, damit dort auch eine Doku für Parameter gemacht werden kann?

Die Parameter einer Adjust-Funktion können jetzt jeweils eine eigene Doku bekommen. Die Dokus werden im Feld inputdocumentation durch ## gertennt hinter der Funktionsbeschreibung angegeben und als gelbe Tooltips über den Parameternamen gezeigt.

Unused##0##Doku##Para1-Doku##Para2-Doku##Para3-Doku##Para4-Doku

Wie alle anderen Text(teile) für die Beschreibung von Adapter-Regeln werden auch die Parameter-Beschreibungen übersetzt (wenn verfügbar). Mehr dazu hier.

28.08.2012
Bug 2999 - Rahmenpunkte/seiten für Nägel und Magneten sind sehr schwer zu treffen

Man braucht schon eine sehr ruhige Hand, um einen Nagel oder einen Magneten zu setzen. Die Zielflächen dafür sind extrem klein. Kann man das nicht ein bisschen großzügiger gestalten?

Wir hatten die Flächen so stark verkleinert, damit auch an kleinen Rahmen die richtigen Punkte getroffen werden können.

Die aktiven Flächen für Nägel und Magnete sind jetzt deutlich grösser und werden nur bei Bedarf (also bei kleinen Rahmen) entsprechend verkleinert.

28.08.2012
Bug 2998 - Bei document::place_items werden keine Gestaltungsregeln ausgeführt

... oder jedenfalls anders als vorher. Ich hänge Dir mal zwei Dokumente an, in denen das gleiche Produkt mit dem gleichen Template aufgebaut wurde. So wie in Rev 2730 sollte es sein, so wie in Rev 3000 (und später) nicht. ...

Das Problem waren Rahmen, die mit document::place_items eingefügt wurden. In diesem Fall wurden die Gestaltungsregeln "Nach Laden" nicht mehr ausgeführt. Das ist gefixt.

Der Fehler ist als Seiteneffekt des Fixes von Bug 2791 aufgetreten (auch wenn diese Dinge auf den ersten Blick nichts miteinander zu tun haben.)

28.08.2012
Bug 2997 - RTF-Import hängt * an den Text an (nur Windows)

Wir wollen den RTF File importieren. Hier das Skript :

int main ()
{
	int			fi 		= file::open ("/Users/paul/Desktop/CLOB Kopie.txt", "r");
	char	*  	str 	= alloc (1000000);
	char		buf[512];
	int			len;

	*str = 0;
	while ((len = file::read (fi, buf, 511)) > 0)
	{
		buf[len] = 0;
		strcat (str, buf);
	}
	file::close (fi);

	textmodel::insert (str, 0, -1);
	release (str);
	
	return 0;
}

Das geht auch soweit, ABER es wird immer ein * an den Import angehangen.

Der Fehler tritt nur unter Windows auf. Offenbar hat seit der Einführung von RTF-Import durch den Cometen (CS2, R411, 12.7.2007, also vor etwa 5 Jahren) niemand diese Funktionalität je benötigt.

Der Fehler ist gefixt.

FYI : Der * wurde angehangen, weil der RTF-Import unter MAC (auch noch mit CS5.5) immer das letzte Zeichen verschluckt.

27.08.2012
Bug 2992 - Gestaltunsmethoden für Tabellen meist nur für "Spalte/Zeile (ab)" aktiv

Bei den meisten Standardmethoden zur Tabellengestaltung ist in dem Popup zum Bereich nur der Eintrag "Spalte (ab)" (bzw. "Zeile (ab)") aktiv. Warum denn?

Ich hab das ein bisschen aufgelockert. Es sind jetzt einige Zielbereiche mehr aktiviert. Ausserdem wird bei der Auswahl einer Methode die Auswahl des Popup-Menüs mit den Zielen nicht mehr automatisch geändert.

17.08.2012
Bug 2991 - Tabellen-Gestaltungsmethode zum Verkleinern von Spalten

Mit der Tabellen-Gestaltungsmethode "Übersatz vermeiden" können Spalten so verbreitert werden, dass keine Zelle mehr einen Übersatz hat. Kann man Spalten auch verkleinern?

"Übersatz vermeiden" heisst jetzt "Spaltenbreite anpassen" und kann mit der Büroklammer konfiguriert werden. Dort kann man auch einstellen, dass die Spalte kleiner wird.

    

17.08.2012
Bug 2990 - Was macht denn das Button mit der Büroklammer im Tabellenmodul bei den Getstaltungsmethoden der Zelle?

Über der Liste "Gestaltung -> Methoden" befindet sich ein Button mit einer kleinen Büroklammer. Was macht das denn, es ist nie aktiv?

    

Mit dem Button kann ein Fenster geöffnet werden, in dem Parameter für die jeweils ausgewählte Methode eingestellt werden können. Es war natürlich ein Fehler, dass es nie aktiviert wurde. es ist jetzt bei Auswahl einer Standardmethode aktiviert.

Für folg. Standard-Methoden gibt es zusätzliche Parameter :

  • Gleiche Zellen verbinden
  • Spaltenbreite anpassen

Die anderen Methoden zeigen bei Klick auf die Büroklammer eine Meldung, dass keine weiteren Einstellungen verfügbar sind (und wenn sich alle dran gewöhnt haben, dass das Button ja doch aktiv werden kann, wird es in diesen Fällen wieder deaktiviert.)

17.08.2012
Bug 2989 - table::fit_col geht nur für Tabellen, die nicht im Übersatz liegen

... versteh ich ja - aber kann man nicht irgend etwas machen?

Doch, man kann. Die Funktion geht jetzt auch für Tabellen im Übersatz. Der Rahmen macht dafür zuerst ein fitframe (das am Ende wieder rückgängig gemacht wird).

17.08.2012
Bug 2988 - cometGroups-XML enthält falsche Gesamtgrösse der Cometgruppe

Im Anhang 1 zu Bug 2988 befindet sich ein Comet-Gruppen-XML, welches unserer Ansicht nach nicht korrekt ist. Es beinhaltet 4 Elemente, 3 davon auf der linken, eines auf der rechten Seite eines Dokuments. Die Werte für size-relative der einzelnen Elemente lauten

    1.00%
    5.14%
    2.34%
    2.34%

Der Wert des Group-Knotens für size-relative lautet

    2.34%

Was ja rein von der Logik eigentlich nicht sein kann. Auch die anderen Größen sind anscheinend falsch berechnet. Das XML wurde über

app.comet.getCometGroups(
	"[FILEPATH]",
	Scope.COMETGROUP,
	Number([ID]),
	[TEMPFILEPATH],
	app.comet.ping() + ';-1; calc-sizes:true; size-checkmargins:true; size-useclips:false;');

abgefragt.

Die Gesamtfläche der Cometgruppe sollte natürlich jeweils die Summe der Angaben aus den Rahmen sein, also 10.82% und 88266324188 pt2 (und nicht nur die Rahmen der zweiten Seite des Spreads). Das ist gefixt (v3.3 R3121).

Die anderen Angaben sind richtig :

Scope.COMETGROUP bedeutet, als Gesamtfläche wird der Spread ohne Margins verwendet. Z.B. sind die 8161,993775 pt2 für den Rahmen 56106 genau 1,000214948091523% davon - und das steht ja auch so in der XML.

17.08.2012
Bug 2987 - table::fit_col mit festen Zeilenhöhen

Die Funktion table::fit_col kann Tabellenspalten ja auch schmaler machen. Weil in den Zellen dann meist neu umbrochen werden kann, werden in diesem Fall meist die Tabellenzeilen höher. Kann man das unterbinden?

Die Funktion hat jetzt einen neuen Parameter (keepLineHeight) mit dem das gesteuert werden kann. Ist keepLineHeight = 1, werden Zeilenhöhen nicht verändert.

Vorher

    

Mit veränderlichen Zeilenhöhen

    

Mit festen Zeilenhöhen

    

16.08.2012
Bug 2986 - Neuverknpfung von Tabellen aus Tabellenplatzhaltern liefert überraschende Ergebnise

Schritt 1

Ein Template mit einem Tabellenplatzhalter wird im Dokument platziert :

    

Schritt 2

Der Rahmen wird einem Produkt verknüpft (Shift-Klick in  des Produktes). Der Platzhalter wird durch seine Tabelle ersetzt und ordentlich aufgebaut :

    

Schritt 3

Jetzt wird der gleiche Rahmen mit einem anderen Produkt verlinkt. Dann sieht das so aus (und wahrscheinlich keiner ist überrascht)

   

Schritt 4

Jetzt wird der gleiche Rahmen wieder mit dem ursprünglichen Produkt verknüpft. Nein - dadurch entsteht nicht wieder die Tabelle aus Schritt 2. Die Tabelle sieht immer noch gleich aus.

Erläuterung

Was passiert da? Zunächst mal . Das ist kein Fehler im Showcase und kein Fehler in den Plugins - sondern eigentlich völlig richtig. Was dann.

Nehmen wir mal an, das erste Produkt hatte die ID (1,0,0). Damit wird die Tabelle aufgebaut. Die enthält irgendwelche Merkmale von (1,0,0). Die haben, sagen wir mal die IDs

    1,1,1		1,1,2		1,1,3		...
    1,2,1		1,2,2		1,2,3		...
    ...		...		...		...

Verknüpft man das jetzt mit dem Produkt (2,0,0) erhält man plötzlich das hier:

    2,0,0 2,0,0 2,0,0 ...
    2,0,0 2,0,0 2,0,0 ...
    ... ... ... ...

Das ist das dritte Bild. Verknüpft man wieder mit (1, 0, 0) erhält man

    1,0,0 1,0,0 1,0,0 ...
    1,0,0 1,0,0 1,0,0 ...
    ... ... ... ...

Genau das, was das Verknüpfen-Button machen soll - aber eben leider nicht mehr die Ursprungstabelle.

Lösung

Klar, das gefällt nicht. Deshalb ist das Verknüpfen-Button jetzt schlau geworden (und alle anderen Situationen in denen Textteile mit Tabellen aus Tabellenplatzhaltern enthalten sind ebenfalls. Jetzt sieht es (JUHU!) so aus : 

Ursprüngliche Tabelle

    

Mit einem anderen Produkt verknüpft

    

Und noch eins

    

Und wieder nach Hause

    

Der (nicht ganz einfache Trick) ist - die Tabellen werden automatisch neu aufgebaut.

16.08.2012
R3120

Hotfix

15.08.2012

Bug 2983 - Bug oder Fehlanwendung wiederholende Elemente?

Im build-Skript eines Multiplatzhalters werden per frame::duplicate Rahmen angelegt. Leider gehören die aber nach dem Aufbau des Templates nicht zur Cometgruppe des Produktes. Oder jedenfalls nicht immer : Beim Produktaufbau klappt es, bei Drag and Drop nicht.

Wiederholende Elemente die via cScript angelegt wurden, wurden beim Einfügen des Templates nicht bemerkt. Das funktioniert jetzt.

15.08.2012
Bug 2964 - Reorganisation und wiederholende Elemente

Darf ich im Reorganisationsprozess eigentlich keine "wiederholenden Elemente" benutzen?

Folgendes Szenario:

Es gibt bei einigen Produkten nicht nur ein Produktbild, sondern noch weitere Varianten bzw. Detailbilder. Diese werden via wiederholenden Elemente über das das eigentliche Produktbild gestapelt.

Das ganze ist auch reorganisationsicher, wenn sich die Reorganisation auf eine Seite beschränkt. Sobald das Produkt mit den wiederh. Elementen auf die nächste Seite reorganisiert wird, funktioniert das nicht mehr.

Dann sind zwar noch alle Rahmen da, der Platzhalter wird aber nicht korrekt geladen bzw. alle Rahmen zeigen das gleiche Bild, nämlich von dem wiederh. Element, was zuletzt geladen wurde - auf dem Stapel ganz vorne liegt.

Ich bin mir jetzt nicht sicher, ob ich die "relativ alte" Funktion der wiederh. Elemente mit dem "relativ neuen" Reorganisieren mischen darf/kann.

Du hast recht. Aber es liegt an dir :-)

Wiederholender Rahmen und Elemente haben die gleiche Kennung. Wenn jetzt reorganisiert wird, holen sich die Rahmen die Inhalte vom Original mit passenden Kennung - und da wird halt immer das gleiche Original gefunden. Du musst also einfach die Kennung im Element entfernen.

Und ich überleg mir mal:

  1. Ob bei Reorganisationen nicht auch die Einstellung "Bei Templatetausch laden" aus dem Templateverhalten berücksichtigt werden soll.
  2. Ob wiederholte Rahmen überhaupt automatisch Inhalte übernehmen können sollen dürfen müssen.

zu 1/ Bei Reorganisationen sollen die Einstellungen zum Template-Tausch (vierte Spalte in den Optionen zum Template-Verhalten) natürlich berücksichtigt werden. Aber die Implementierung war ein bisschen falsch. Das ist jetzt gefixt. Wenn für den Rahmen also eingestellt ist, dass dessen Inhalt bei Reorganisationen neu geladen werden soll, dann wird er das auch (und Inhalte aus einem befreundeten Rahmen werden nicht übertragen).

zu 2/ Zusätzlich wird jetzt beim Übertragen der Inhalte befreundeter Rahmen geprüft, ob der Zielrahmen ein wiederholtes Element ist. In wiederholte Elemente werden ab jetzt keine Inhalte mehr übertragen - wiederholende Elemente werden sowieso neu geladen.

15.08.2012
Bug 2982 - [priint:adjust] änderung der Seitengrösse in einer Adapter-Regel bringt die Adaption durcheinander

Ein Rahmen einer Seite hat soll vor der Adaption seinen Übersatz beseitigen und dann die Höhe der Seite so ändern, dass der untere Abstand des Rahmens zur Seite wieder gleich ist. Dazu wird also erst ein frame::fit ausgeführt. Danach wird in einer zweiten Regel die Seitenhöhe angepasst. Hier das Skript:

int main ()
{
	float 	   l, t, r, b;
	float 	   pl, pt, pr, pb;

	frame::bbox (gFrame, &l, &t, &r, &b);
	page::get_size (1, &pl, &pt, &pr, &pb);

	document::resize (
		pr-pl,
		  (pb - pt) 									// old height of page
		+ ((b -t) - (gOrgFrameBottom - gOrgFrameTop)) 	// + height difference of frame
		- (gPageHeightNew - gPageHeightOrg) 			// - height difference of adapter call
		);

	return 0;
}

Das funktioniert auch sehr schön und ist auch ein bisschen cool. Danach hab ich unter den Textrahmen noch einen Bildrahmen gesetzt und beide Rahmen mit einem Magneten verbunden - funktioniert auch.

ABER : Dann hab ich noch einen dritten Rahmen darunter gesetzt und wieder einen Magneten gesetzt Und zusätzlich hat der unterste Rahmen unten noch einen Nagel bekommen. Und jetzt erzeugt der unterste Rahmen den Fehler 1253 (Der Rahmen bekommt eine Höhe/Breite kleiner 0).

Hier Vorher/Nachher-Screenshots der Situation:

    

Die neue Rahmenhöhe (die hier ja eigentlich sowies gleich bleiben würde) wird berechnet aus den alten Rahmenhöhen, den Magnetabständen und der änderung der Seitengrösse.

Werden die Seiten um 10 Pt vergrössert ergibt sich dabei mit den tatsächlichen neuen Seitengrössen aus dem obigen Skript ein negativer Wert. Das ist jetzt behoben.

Achtung : änderungen der Seitengrösse dürfen nur in Skripten vor und nach der Adaption gemacht werden!

14.08.2012
Bug 2981 - behavior::change_action_data setzt falschen Zoomfaktor

behavior::change_action_data setzt falschen Zoomfaktor.

Es war richtig. Aber die Doku war falsch. Das ist jetzt korrigiert.

13.08.2012
Bug 2980 - Informationen über URL-, E-Mail- und andere Verweise

Kann man auch Hyperlinks mit URLS, Seiten, E-Mail, ... suchen? Bisher sind solche Hyperlinks nicht in den Ergebnislisten von hyperlink::find enthalten.

Diese Hyperlinks werden jetzt auch gefunden. Mit der Funktion

    link::crossref::type

kann der Zieltyp erfragt werden.

    link::crossref::info

enthält die nötigen Infos für URLs, Mails und Files.

13.08.2012
Bug 2979 - Anker eines Dokumentes suchen

Mit hyperlink::find können die Verweise eines Dokumentes ermittelt werden. Kann man auch nach Textankern suchen (insbesondere nach unbenutzten)?

Das geht jetzt. In hyperlink::find wird dazu der crossrefName "ANCHORS#" (in genau dieser Schreibweise) angegeben. Dann wird nach Ankern gesucht.

13.08.2012
Bug 2978 - Infos über den Rahmen und Textposition eines Hyperlinks

Kann man diese Infos auch irgendwie bekommen?

Mit den neuen Funktionen :

geht das jetzt.

13.08.2012
Bug 2977 - Fehler bei link:: crossref::frame und link:: crossref::pos

Die Funktionen link::crossref::frame und link::crossref::pos geben irgendwie was falsches zurück. Acu crossref::left, lop, right, bottom, x und y sind falsch (leer).

Das ist gefixt.

13.08.2012
Bug 2976 - Zu mehrfach verwendeten Textankern wird immer nur ein Hyperlink gefunden

Wird ein Textanker von mehreren Hyperlinks verwendet - was ja durchaus normal ist - findet hyperlink::find immer nur EINEN Hyperlink.

Das ist gefixt.

13.08.2012
Bug 2975 - hyperlink::find findet nichts

Obwohl ich den Namen des Links in hyperlink::find leer lasse (also nach beliebigen Namen suche), bleibt meine Ergebnisliste leer. Was mache ich denn falsch.

Der VERWEIS-Name wurde richtig ausgewertet. Aber der ANKER-Name nicht. Da wurde angenommen, dass er aus einer Comet-Objekt-ID gebildet sein muss. Was natürlich nicht sein muss.

Wird hyperlink::find jetzt mit classID 0 gerufen, wird diese Annahme für den Ankernamen nicht mehr gemacht. In diesem Fall wird der Wert der StringID direkt gegen den Ankernamen geprüft.

Sind also crossrefName UND sid des Aufrufes leer, werden ALLE Hyperlinks gefunden.

13.08.2012
Bug 2974 - Anker einer Textreferenz ermitteln

Ich kann ja mit hyperlink::find eine Liste aller Hyperlink eines Dokumentes erstellen lassen. Aus dieser Liste kann ich dann Quelle und Ziel des Verweises ermitteln. Kann man auch die UID des Verweiszeiles ermitteln. Hintergrund ist, dass Buttons definiert werden sollen, die ebenfalls an diesen Anker springen.

Also etwa so hier:

:
:

behavior::add_action (btn, 2, 1, action);
behavior::change_action_data (btn, action, "",???, 2);

Ja, eine entsprechende Funktion hat gefehlt. Es gibt jetzt zwei neue Funktionen, eine für die UID des Hyperlinkes, eine für die UID des Ankers :

Der obige Aufruf würde also so aussehen, vorausgesetzt lk ist ein gültiges Hyperlink-Objekt. Achten Sie auf das item::getint! Hier wird nur die Zahl benötigt, nicht die gesamte Referenz.

behavior::add_action (btn, 2, 1, action);
behavior::change_action_data (btn, action,
	"", 
	item::getint (link::crossref::anchor_ref (lk)),
	2);
10.08.2012
Bug 2973 - frame::bbox liefert falsche Koordinaten für Rahmen ausserhalb von Seiten

Liegen Rahmen ganz im Arbeitsbereich, also auf keiner Seite, ist die Rahmenposition, die frame::bbox berechnet, falsch. Man würde erwarten, dass die Position zur nächstliegenden Seite bestimmt wird. Die Rahmengrösse word richtig berechnet.

Der Fehler ist gefixt.

10.08.2012
Bug 2972 - itemlist::duplicate positioniert die neuen Rahmen falsch, wenn Rahmen der Liste ganz im Arbeitsbereich liegen

Liegen Rahmen einer Liste ganz im Arbeitsbereich, also auf keiner Seite, werden bei itemlist::duplicate die neuen Rahmen manchmal falsch positioniert. Der Fehler tritt aber nicht immer auf.

Ja, der Fehler tritt nur dann auf, wenn der erste Rahmen der Liste ganz im Arbeitsbereich liegt.

Der Fehler ist gefixt.

10.08.2012
Bug 2971 - itemlist::move_to ist falsch, wenn Rahmen ganz im Arbeitsbereich liegen

Liegen Rahmen einer Liste ganz im Arbeitsbereich, ist itemlist::move_to mitunter fasch. Der Fehler tritt nicht immer auf, manchmal klappt es auch.

Ja, der Fehler tritt immer dann auf, wenn der erste Rahmen der Liste ganz im Arbeitsbereich, also auf keiner Seite liegt.

Der Fehler ist gefixt.

10.08.2012
Bug 2970 - frame::moveto ist falsch für Rahmen, die ganz im Arbeitsbereich liegen

Rahmen, die vollständig im Arbeitsbereich liegen, also zu keiner Seite gehören, werden von frame::moveto falsch verschoben.

Der Fehler ist gefixt.

10.08.2012
Bug 2969 - gPage in Template-ID-Skripte ist falsch

Template-ID-Skripte haben die globale Variable gPage. Die sollte eigentlich die Seitennummer der Seite einhalten, auf der das Template gerade platziert werden soll. Leider steht dort immer -1 drin.

Der Fehler ist gefixt.

10.08.2012
Bug 2968 - page::get liefert 0, wenn der Rahmen ganz im Arbeitsbereich liegt

Liegt ein Rahmen ganz im Arbeitsbereich, also ausserhalb jeder Seite, liefert page::get die Seitennummer -1. Das ist eigentlich okay. Kann man nicht, vielleicht mit einer extra Option, die am nächsten liegende Seite liefern?

Die Funktion hat jetzt den weiteren Parameter "queryNearest", mit dem das gesteuert werden kann. Default ist "off" (also nicht nach der nächstliegenden Seite suchen).

10.08.2012
Bug 2967 - Absturz bei frame::duplicate, wenn der Rahmen ganz ausserhalb einer Seite liegt

Liegt ein Rahmen ganz ausserhalb der Seite, also vollständig im Arbeitsbereich, stürzt InDesign® bei frame::duplicate ab.

Der Fehler ist gefixt.

10.08.2012
Bug 2966 - Default-Optionen bei frame::image und Bildpfade

Wir laden ein TIF-Bild per frame::image() in einen Rahmen und geben dabei nur die ersten beiden Parameter (Rahmen und Bildpfad) mit an. Das Bild müsste dann eigentlich in den Rahmen eingepasst werden, es wird allerdings unter Berücksichtigung des vorhandenen Pfades in Rahmen eingepasst.

Nur wenn wir beim Setzen des Bildes sagen, dass ein Pfad mit einem bestimmten Namen berücksichtigt werden soll und wir dann einen Pfadnamen angeben der nicht existiert, dann wird das Bild wie gewünscht in den Rahmen platziert.

Auch die Angabe der Parameter bis einschließlich kIgnoreClipping bringt keine Abhilfe.

Beispiele

So wird das Bild unter Berücksichtigung des Pfades skaliert:

frame::image(gFrame, picturePath, kMiddle, kFitBigContentProp, kIgnoreClipping);

So wird das Bild wie gewünscht skaliert:

frame::image (gFrame, picturePath, kMiddle, kFitBigContentProp, kClipPathByName, "huhu");

Der Befehl verwendet die Einstellungen der Importoptionen für Bilder. Mit den folg. Schritten kann man das Verhalten abschalten :

  1. Cmd-D
  2. "Importoptionen anzeigen" aktivieren
  3. Bild auswählen
  4. "Photoshop-Beschneidungspfad anwenden" deaktivieren
  5. Okay klicken

Danach macht der Befehl frame::image auch mit kIgnoreClipping das Richtige.

Ab v3.3 R3116 wird die Einstellung in den Importoptionen bei kIgnoreClipping automatisch zurückgesetzt (und nach dem Import wieder zurück). Damit ist frame::image bei kIgnoreClipping jetzt unabhängig von den Pfad-Einstellungen in den Importoptionen.

09.08.2012
R3115

Hotfix

08.08.2012

Bug 2965 - itemlist::pageframes() produziert Absturz

Skriptsprachenbefehl:

frames = itemlist::pageframes(pg, 1, 0, "--active--", 0, 0, 0);

produziert Absturz von InDesign® Server, owohl in Optionen ist die aktive Ebene gesetzt. Ich weiß, dass wir keine aktive Ebene auf der ID Server Seite haben- Trotzden die Ebene soll von API Optionen gelesen werden.

Das ist gefixt.

08.08.2012
Bug 2962 - list::alloc() und Platzhalterpalette

Ich möchte die in der Platzhalterpalette selektierten Einträge in einem Skript abfragen. Laut Doku müsste das mit List placeholderIds = list::alloc(kPanelPlaceholder); funktionieren, ich erhalte aber immer eine leere Liste.

Habe auch schon kEyeMarked ausprobiert, aber auch da ist die Liste leer. Die Palette der Platzhalter war während der Ausführung sichtbar und es gab Einträge, die mit einem Auge markiert waren.

Mache ich etwas falsch oder ist das ein Bug?

Das hat offenbar noch nie jemand benötigt. Die entsprechenden Zeilen für die Platzhalter-Palette haben im Code gefehlt. das ist jetzt gefixt. Und das Gleiche auch für die Aufgaben-Palette.

01.08.2012
Bug 2961 - Endlosschleife bei frame::fit und Gstaltungsregel "Rahmen anpassen"

Einige Textrahmen führen beim Anpassen ihrer Grösse an den Inhalt zu einer Endlosschleife. Mit den InDesign®-Bordmitteln können diese Rahmen Rahmen gar nicht angepasst werden. Die Comet-Plugins vergrössern den Rahmen bis auf eine Höhe von 16 Millarden (!) Punkten und versuchen dann, die Breite zu ändern. Dabei bleibt InDesign® stehen.

Es handelt sich um Textrahmen mit einem einzeiligen Text, der nicht getrennt werden kann, z.B. "123456". Ausserdem ist der Rahmen rund.

Wie eklig. Die Rahmen müssen zuerst so verändert werden, dass Sie keinen Übersatz mehr haben. Bei einzeiligen Texten wird das jetzt auf 5000 Punkte beschränkt. Dann funktioniert alles.

Achtung : Im vorliegenden Fall mit dem Kreis verändert sich der Rahmen bei wiederholtem Anpassen. Comet führt das Anpassen daher solange aus, bis keine Veränderung mehr auftritt. Das ist ein recht aufwendiger Prozess der einige Zeit dauern kann. Bei rechteckigen Rahmen tritt dieses Problem nicht auf - und die Anpassung geht entsprechend zügig.

Im abgebildeten Fall dauert die Rahmenanpassung dann doch leider 3 Sekunden:

    

01.08.2012
Bug 2958 - Gestaltungsregel "Text anpassen" funktioniert nicht immer

Ich habe ein InDesign® CS 4 Dokument erstellt, in dem zwei Kreis-Elemente integriert sind die Text beherbergen. Im Rahmen und im Text ist die Gestaltungsregel Bedingung: Textübersatz und Regel: Text anpassen bei Übersatz hinterlegt.

Je nachdem was im XML gepflegt ist, soll also im Rahmen dementsprechend verkleinert werden. Das klappt soweit ganz gut, aber nur wenn der Inhalt 4
Zeichen nicht überschreitet. Z.B. Wenn der Inhalt 1234 ist, passt sich die Schriftgröße optimal an. Ist der Inhalt 12345 zeigt der Textrahmen nur noch das Übersatztextzeichen - das rote plus an :

     

InDesign®-Tabellen können wegen der Zell-Insets, Zellrahmen, ... nicht beliebig klein werden. Die Skalierung wird daher nach einer bestimmten Anzahl von Schritten abgebrochen. Mit der bisherigen Grenze waren damit Textverkleinerungen auf minimal 65% der Ursprungsgrösse möglich. Die Grenze ist jetzt verschoben. Textverkleinerungen sind bis etwa 1% der Ursprungsgrösse möglich. Damit ist das Problem gelöst.

01.08.2012
Bug 2960 - "select error from placeholder ..." nach Login erzeugt Fehler

Nach dem Login (das Login-Fenster ist noch offen) erscheint die Fehlermeldung

    SQLExec [select error from placeholder where ID = ?] ...

Was könnte denn da falsch laufen?

   

Der Fehler entsteht so : Für jede Palette werden die Paletten-Aktionen geladen. Das wird in zwei Schritten gemacht :

  • Schritt 1 : Sammeln aller nötigen Action-IDs.
  • Schritt 2 : Danach werden die einzelnen Aktionen geladen.

Der Fehler kann nur auftreten, wenn zwischen Schritt 1 und Schritt 2 eine der gefundenen Aktionen gelöscht wird. Also eigentlich nie.

Ich habe die Situation trotzdem entschärft. Die in diesem Fall sowieso unnötige Anweisung "select ... from placeholder ..." wird nicht mehr ausgeführt. Dafür erscheint im Fly-out-Menü der Palette ein Eintrag "Undefinierte Aktion NNN".

01.08.2012
Bug 2959 - [priint:adjust] Bildposition nach Magnet-Anwendung falsch

In einem Produktaufbau wird ein Bild platziert. Das Bild hat oben einen Nagel und wird unten durch einen Magneten festgehalten. Gestaltungsregeln skalieren das Bild und positionieren es oben in der Mitte.

Nach dem Aufbau des Produktes steht das Bild aber an UNTEREN Rahmenkante.

Ja, das ist leider richtig. Der Fehler wird durch ein Implemtierungsdetail der Adaption verursacht : Der Rahmen wird erst so verschoben, dass der Magnet richtig ist. Danach "sieht" die Adaption den Nagel und vergrössert den Rahmen von unten aus. Dabei bleibt das Bild natürlich unten stehen. In der Abbildung ist die Situation dargestellt : Links ist der Rahmen VOR der Adaption. Er soll an der roten Linie ausgerichtet werden. Im mittleren Bild sehen Sie das. Im dritten Bild ist dann auch der Nagel wieder richtig - aber das Bild steht jetzt unten.

    

Das Problem ist gelöst. Die Bildposition bleibt jetzt erhalten.

31.07.2012
Bug 2956 - Wenn InDesign® mit geöffneter Publikationspalette gestartet wird, bleibt diese nach SOAP Login leer

Erst nach erneutem Logout/Login werden die Popup-Menüs der Palette richtig geladen.

Stimmt, aber es liegt an etwas ganz anderem : Alles funktioniert richtig, wenn ein gültiger XML-Ordner gesetzt ist, mit dem sich InDesign® beim Start automatisch verbinden kann. Stellt man dann eine SOAP-Verbindung her, werden in der Publikationspalette alle Popup-Menüs sofort richtig geladen.

Das gleichen Problem treten auch in den folgenden Paletten auf :

  • Gestaltungsregeln
  • Seitenraster
  • Templates
  • Platzhalter
  • Previews
  • Aufgaben

Der Fehler ist in allen Paletten gefixt.

30.07.2012
Bug 2954 - broaden_to_frame=> geht nur bei der ersten Tabelle

Bei zwei-spaltigen Tabellen funktioniert die Funktion broaden_to_frame nur bei der ersten Tabelle. Meine letzte Version in der das noch richtig funktioniert hat war die R 2840. Die letzte Version mit der ich getestet habe war die R 3044.

Der Fehler ist beim Fix von Bug 2731 entstanden und jetzt gefixt.

27.07.2012
Bug 2786 - Anzeige der Platzhalternamen im Dokument

Schön wäre es, wenn man beim Markieren der Platzhalter im Dokument einen zusätzliches Modus hätte, bei dem der Name des Platzhalters mit angezeigt wird. So könnte man sich schnell einen Überblick verschaffen, welche Platzhalter in einer Vorlage verwendet werden.

Ich habe das etwas anders umgesetzt : Die Platzhalter-Palette beherrscht jetzt Mehrfach-Auswahl. Werden im Dokument jetzt mehrere Platzhalter ausgewählt, werden auch in der Palette mehrere Platzhalter selektiert. Bei Rahmenauswahlen werden auch die Textplatzhalter innerhalb der Rahmen selektiert.

Ausnahme: Damit man weiterhin schnell sehen kann, ob und mit welchem Platzhalter ein Rahmen verknüpft ist, wird bei der Auswahl EINES Rahmen nicht nach Platzhaltern im Text dieses Rahmens gesucht.

Achtung I: Zum manuellen ändern der Listenselektion können jetzt die Zeilenteile außerhalb des Platzhalternamens verwendet werden. Um Platzhalter ins Dokument zu setzen, muss der Name des Platzhalters angeklickt werden. Damit das jeder erfährt, wird beim Klick außerhalb des Namens eine DontShowAgain-Nachricht mit einem entsprechenden Hinweis gezeigt.

Achtung II: Bei großen Dokumentauswahlen kann das Sammeln der Platzhalter etwas dauern. Es empfiehlt sich daher generell, die Platzhalter-Palette nur dann anzuzeigen, wenn man sie auch benötigt.

27.07.2012
Bug 2953 - Auswahl eines Fortsetzungsrahmens und Reorganisation führt zu Leerseiten

Ich wähle einen Rahmen einer Fortsetzung aus (Das sind die Rahmen, bei denen in der Platzhalterdarstellung links oben ein kleines graues Dreick gezeigt wird.). dann wird reorganisiert.

    

Das Produkt beginnt jetzt auf der Seite des Fortsetzungsrahmens. Alle Nachfolgeprodukte verschieben sich. Zwischen altem und neuem Produktbeginn sind alle Seiten leer.

Das ist ja ganz offensichtlich, was da passiert : Ab dem mit der Wahl des Fortsetzungsrahmen ausgesuchten Produkt wird das Dokument aufgeräumt. Nur leider beginnt dieser Prozess nicht auf der Seite, auf der das Produkt tatsächlich beginnt, sonder auf der Seite des Fortsetzungsrahmens.

Vor der Reoragnisation muss noch die Startseite des Produktes ermittelt werden. Die kann manchmal ziemlich weit weg sein. Das wird jetzt gemacht. damit ist der Fehler gefixt.

26.07.2012
Bug 2952 - Aufräumen in 1:N-Elementen führt zu Rahmenüberlagerungen.

    

Im Vorher-Bild wurde der lila hinterlegte Rahmen ausgewählt. Dann wurde reorganisiert. Dabei wird der grüne Rahmen richtig an die linke obere Ecke des Seitenelementes verschoben. Im Nachher-Bild ist er nicht mehr zu sehen, weil - und jetzt kommt der Fehler - auch der lila Rahmen an diese Position verschoben wird.

Das Problem ist gelöst. Der lila Rahmen wird jetzt richtig positioniert.

FYI: Für die Rahmen der Seite wird jeweils ermittelt, auf welchem Seitenelement sie liegen. Das wurde richtig gemacht. Leider wurde dann der Index (in diesem Fall 1) weitergegeben. Die Reorganisation erwartet aber Sequenz-Nummern. Das wäre hier die 2 gewesen. Sequ.-nr. 1 ist der der kleine blaue Streifen oben auf den Seiten. Dort passt der lila Rahmen nicht rein. Also geht es beim nächsten Seitenelement weiter - und dort liegt schon der grüne Rahmen. Das war der Fehler.

26.07.2012
Bug 2951 - textmodel:: find_surrounding_paragraph liefert im Fehlerfall einen Fehlercode und nicht -1

Die Funktion textmodel::find_surrounding_paragraphliefert im Fehlerfall eine Fehlercode und nicht, wie in der Doku beschrieben, -1. Das wäre nicht weiter schlimm. Aber die Fehlercodes sind meist grösser als 0 und daher nicht von einem gültigen Ergebnis unterscheidbar.

Der Fehler ist gefixt. Due Funktion gibt jetzt im Fehlerfall immer -1 zurück.

26.07.2012
Bug 2950 - textmodel:: find_surrounding_word liefert im Fehlerfall einen Fehlercode und nicht -1

Die Funktion textmodel::find_surrounding_word liefert im Fehlerfall eine Fehlercode und nicht, wie in der Doku beschrieben, -1. Das wäre nicht weiter schlimm. Aber die Fehlercodes sind meist grösser als 0 und daher nicht von einem gültigen Ergebnis unterscheidbar.

Huch. Der Fehler ist gefixt. Due Funktion gibt jetzt im Fehlerfall immer -1 zurück.

26.07.2012
Bug 2949 - Druckbare Notizen zeigen in der Vorschau kein Label

Seit einiger Zeit können Comet-Notizen ja mit ausgedruck werden. Das funktioniert auch. Un die Notizen sind jetzt auch im Vorschau-Modus von InDesign® sichtbar. Dort fehlt aber das Label oben links.

Das Label ist jetzt auch in der Vorschau sichtbar. Gedruckt wurde es sowieso schon.

26.07.2012
Bug 2948 - Das XML der Notizen enthält eine LISTE von Kommentaren pro Notiz. Wird die verwendet?

Das XML der Comet-Notizen, das man beim Export der Notizen erhält, enthält für jede Notiz eine Liste von Kommentaren.

<notes>
	<note id="1" ...>
	...
	<comments>
		<comment num="1" ...>
		</comment>
  </comments>
  ...
</notes>

Hat es damit etwas auf sich? Fügt man in das XML weitere comment-Elemente ein, werden diese eingefügten Kommentare beim Import der Notizen jedenfalls ignoriert. Nur der erste Kommentar wird im Dokument gezeigt.

Richtig bemerkt. Die Struktur ist bereits zur Unterstützung mehrerer Kommentare pro Notiz vorbereitet. Bisher wird dieses Feature von den Plugins aber nicht unterstützt.

Achtung :Zusätzlich eingefügte Kommentare in der XML-Datei gehen beim erneuten Import verloren!

Lösung

=== Import ===

Die Kommentarliste wird ab v3.3 R3101 unterstützt. Jedes <comment>-Element erzeugt einen eigenen Textblock in der Notiz. Die Textblöcke werden jeweils durch einen leeren Absatz getrennt. Die Attribute "on" und "user" des Kommentares werden mit einem einleitenden "> " dem Kommentartext vorangestellt :

> 26.07.2012 12:09, paul
Kommentartext

Hier ein Ausschnitt aus einer Notizen-XML:

<comment num="1" user="comet-bugs@werk-ii.com" role="proof_reader" on="20120724160100">
	<plain>Schau mal nach Bug 2948.</plain>
	...
</comment>
<comment num="2" user="paul" role="proof_reader" on="20120726103100">
	<plain>Das ist jetzt erledigt.</plain>
	...
</comment>

Das ergibt folgenden Text in der Notiz:

    

=== Export ===

Umgekehrt werden Textteile der Notiz, die durch mind. einen leeren Absatz getrennt sind, jeweils als neuer Kommentar exportiert. Als Zeitangabe wird dann die aktuelle Zeit verwendet, "user" bekommt den aktuellen Loginnamen am Rechner.

Absätze, die mit ">" beginnen, leiten ebenfalls einen neuen Kommentar ein. Diese Absätze dürfen nur eine Zeile lang sein und müssen mind. ein sichtbares Zeichen haben. Hier eine Zusammenstellung der mögl. Angaben

  • > user // Als Zeit wird die aktuelle Systemzeit verwendet
  • > zeit, // Das Komma ist wichtig! Als user wird der aktuelle Loginname am Rechner verwendet
  • > zeit, user

"user" ist ein beliebiger Text ohne Komma und ohne Absatztrenner. "zeit" ist eine beliebige Zeitangabe mit oder ohne Uhrzeit Whitspaces vor und nach den Angaben werden entfernt.

Leere Kommentare werden nicht exportiert. Der Text

> paul
> clara
Kommentartext

erzeugt also keinen Kommentar für "paul".

26.07.2012
Bug 2947 - Spracheinstellung von Templates springt beim Platzieren zurück

Ich werd noch wahnsinnig.

Einer unserer Kunden hätte generell gerne die Spracheinstellung der Texte auf "English: USA". Das habe ich in den Templates und im Musterdokument auch gemacht, und zwar für alle Absatzformate und für das Dokument ("Wörterbuch" und "Autokorrektur").

Wenn ich ein Template auf das Dokument ziehe, springen die Spracheinstellungen in den Rahmen (siehe Palette "Zeichen") wieder auf Deutsch zurück. Das passiert aber nur in den Musterdokumenten; in neuen (mit deutschem InDesign® angelegten) Dokumenten hingegen nicht.

Wenn ich ein neues Dokument verwende, passiert das nicht, trotz deutschem InDesign. Auch nach dem Importieren der Stilvorlagen aus dem alten Dokument funktioniert es noch.

Wenn ich hingegen von dem Ursprungsdokument ein idml exportiere und öffne, springt die Spracheinstellung auf Deutsch.

Der Fehler lässt sich leicht reproduzieren: aus den Rahmen eines Dokumentes ein Template erstellen und wieder auf die Seite ziehen. Wie gesagt, ich werd noch wahnsinnig.

Um die richtige Sprach-Einstellung für neue Rahmen zu erhalten, muss die Default-Einstellung in InDesign® geändert werden. (Neustartvon InDesign® OHNE Dokument, Textwerkzeug, gewünschte Spracheinstellung wählen, Neustart von InDesign)

26.07.2012
R3100

Hotfix

20.07.2012

Bug 2946 - Panelstatements für Publikations-Infos verwenden nur die ID1

Publikationen haben ja wie andere Objekte auch IDs, die aus drei Zahlen und einer StrinID bestehen. In den Panelstatements für die Palette "Publikations-Infos" (100, 101, 103, 104, 105) wird aber immer nur die erste Zahl weitergegeben.

In den Panelstatements 100, 101, 103, 104, 105 können jetzt die Tags <ID>, <ID2>, <ID3> und <STRINGID> verwendet werden, die jeweils durch die IDs der aktuellen Publikation ersetzt werden

20.07.2012
Bug 2945 - Musterseiten importieren

Kann man Musterseiten aus anderen Dokumenten in ein Dokument importieren?

Mit dem neuen Befehl document::import_masterpage geht das jetzt. Um zu bestimmen, welche Musterseiten in einem Dokument enthalten sind, kann die Funktion document::get_masterpages verwendet werden.

20.07.2012
Bug 2931 - Fehler-Meldung bei askstring2

... wenn ich die Combobox auswähle

    select id, name from pageitems where id > 0 order by name; 
    Database execution error : 
    200047 : ORA-24338: statement handle not executed

Der Grund ist wohl, dass bei Auswahl des Popupmenüs automatisch die Einträge fürs zweite (unsichtbare) Popup geladen werden. Aber die zugehörige Anweisung leer ist. Der Fehler ist gefixt.

20.07.2012
Bug 2944 - Unicode-Zeichen in Char- und ParaStyles von %!TT-Texten verhindern den Import

Enthält ein Absatz- oder Zeichenstilname eines %!TT-Textes Unicodezeichen grösser 128 (z.B. der Zeichenstil "Straßenname") wird gar nichts mehr ins Dokument importiert.

Der Fehler ist gefixt.

20.07.2012
Bug 2943 - Unicode-Zeichen im w2-Tag führen zu Fehlern beim Anlegen der Platzhalter

Enthält ein w2-Tag Unicode-Zeichen grösser 128, wird der Platzhalter falsch im Dokument angelegt. Solche Zeichen können aber in den StringIDs durchaus vorkommen.

WORKAROUND : Abschalten der Option "Zusatzmodule > Comet > Platzhalter aus TaggedText anlegen"

Der Fehler ist gefixt.

20.07.2012
Bug 2942 - Mehrere w2-Tags mit CharStyle-Tags führen zu Fehlern beim Textimport

Enthält ein %!TT-Text mehrere w2-Tags, die jeweils <CharStyle:>-Angaben enthalten, schlägt der Import fehl. Der erste Platzhalter wird richtig angelegt. Alle weiteren enden jeweils beim <CharStyle:>.

WORKAROUND : Abschalten der Option "Zusatzmodule > Comet > Platzhalter aus TaggedText anlegen"

Der Fehler ist gefixt.

20.07.2012
Bug 2941 - Mehrere Char- bzw. ParaStyle innerhalb eines w2-Tags führen zu Fehlern bei den Platzhaltern

Enthält ein w2-Tag mehrere CharStyles wird zwar ein Platzhalter angelegt - aber der geht nur bis vor das zweite CharStyle (analog ParaStyle).

Bei dem Text

    %!TT<w2:77780, 500, 10, 1, ''><CharStyle:Price>Preis<CharStyle:></w2>

gehört das " €" nicht mehr zum Platzhalter.

WORKAROUND : Abschalten der Option "Zusatzmodule > Comet > Platzhalter aus TaggedText anlegen"

Der Fehler ist gefixt.

20.07.2012
Bug 2940 - table::fit_col funktioniert nur für Spalten, deren erste Zeile nicht mit anderen Zellen verbunden ist

Ich hab das (bestimmt alltägliche) Problem, dass ich ein fit_col() auf eine Tabelle mache, bei der die erste Zeile nur aus einer Spalte besteht. Leider passt fit:col dann nur die erste Spalte an. Gibt's da irgendeinen Trick, oder muss ich wirklich die Textkoordinaten aller Zellen durchgehen?

Nein, es gibt keinen Trick. Es war ein kleiner Fehler in den Plugins, der jetzt gefixt ist.

Vorher

    

Nachher

    

Man beachte inbesondere die erste Spalte, die auf den ersten Blick breiter als nötig erscheint. Die Breite ist aber nötig, damit der Text der ersten Zeile vollständig sichtbar ist. Der Trick dabei : Die Spalten werden von rechts beginnend bearbeitet.

19.07.2012
Bug 2939 - Gestaltungsregel "Nach Einfügen" (+) wird nicht ausgeführt beim app.comet.placeTemplate

Werden mit dem Javascript-Befehl placeTemplate Produkte platziert, werden die Gestaltungsregeln "Nach Einfügen" (+) der Templates nicht ausgeführt.

Mit Bug Bug 2845 wurde zwar gefixt, dass die Gestaltungsregeln nach dem Laden (<-) getriggert werden. Leider waren aber auch die Regeln nach dem Anlegen (+) abgeschaltet. Die werden jetzt auch ausgeführt.

Achtung : Die Regeln nach Aufbau (Bausteine) werden hier NICHT ausgeführt - es wird ja kein Seitenaufbau durchgeführt.

18.07.2012
Bug 2938 - Anordnung der Buttons zum Ausführen von Gestaltungsregeln verwirrend

Gestaltungsregeln können ja in verschiedenen Situationen ausgeführt werden. Dazu gibt es in der Liste der Gedstaltungsregeln in jeder Zeile ein Feld mit mehreren Buttons, die aktiviert werden können. Die Reihenfolge dieser Buttons ist zwar eigentlich egal. Aber irgendwie nimmt man ja an, dass die Regeln dann auch in dieser Reihenfolge ausgeführt werden.

Das stimmt. Momentan ist z.B. die Situation + (Nach Neuanlage) vor der Situation <- (Nach Laden). Das + feuert aber erst, wenn das Laden schon beendet ist. Das steht zwar auch so im gelben Hilfe-Zettel - aber schöner wäre es schon, wenn die Button-Reihenfolge anders wäre.

Die Reihenfolge der Buttons ist jetzt wie im Bild gezeigt:

    

18.07.2012
Bug 2937 - Aufbauregel "Neue Seite" führt zu Fehlern im Seitenaufbau

Ein Aufbau von Produkten mit zwei Skriptläufen führt zu "kein Seitenelement gefunden, dass groß genug ist für das Produkt".

Beim Einfügen wird jedesmal ein Produkt eingefügt, das per Aufbauregel" eine neue Seite erzwingt. Beim zweiten Mal scheint das dann nicht mehr zu klappen.

Wer macht denn so was?! Aufbauregeln sind Teil des Rasteraufbaus. Nur aus Gründen der Rückwärts-Kompatibilität werden sie auch vom Seitenaufbau weitestgehend unterstützt. Das Erzwingen von Seitenwechseln wird im Seitenaufbau durch Seitentemplate-Einträge in der Produktliste gemacht. Das sind Produkte mit folg. Eigenschaften :

    kProductType = 4
    kProductPageType
= 0 (linke Seite), 1(neue Seite), 2(rechte Seite)

Ein vollständiges Beipiel finden Sie hier.

Der Fehler ist trotzdem gefixt.

FYI : Der Fehler lag daran, dass der Seitenaufbau generell lieber bestehende Seite befüllt als neue anzulegen. Die Aufbauregel "Neue Seite" hat also die nächste Seite des Dokumentes verwendet - die in diesem speziellen Fall noch Inhalte hatte - und dann konnte dort natürlich kein Platz mehr gefunden werden.

17.07.2012
Bug 2936 - Reihenfolge Produkte des Dokumentes entspricht nicht dem Aufbau (spaltenweise)

Produkte werden spaltenweise in ein Seitenelement importiert. Das funktioniert richtig. Schaut man sich die Produkte in der Palette "Produkte des Dokumentes" an, stimmt dort aber die Reihenfolge nicht - was natürlich beim Reorganisieren zu Fehler führt.

So wurde aufgebaut :

    P1    P4
    P2    P5
    P3    P6

So sieht die Liste aus

    P4
    P1
    P2
    P3
    P5
    P6

Sehr misslich das. Ich habe lange nach dem Fehler gesucht, der letztlich an der Maschinen-Genauigkeit für Floating lag : P1 und P4 hatten beide den gleichen y-Wert. Jedenfalls sah das nach aussen (und auch im Debugger) so aus. In Wirklichkeit lag P4 ein winziges Stück höher - und lag damit VOR dem Seitenelement.

Wir können den Fehler zwar nicht beheben, aber wir haben ihn unschädlich gemacht.

17.07.2012
Bug 2935 - Produkte des Dokumentes neu laden via cScript

Ein Skript fügt mit productlist::establish Produkte in ein Dokument ein. Danach ist natürlich die Liste der Prod. des Dokumentes nicht mehr aktuell. Häufig vergessen Benutzer aber, die Liste neu zu laden - und wundern sich dann, was beim nächsten Reorganisieren passiert. Kann man die Liste vielleicht automatisch aktualisieren?

Aus Preformance-Gründen habe ich die Aktualisierung nicht in den Befehl productlist::establish eingebaut. Es gibt aber einen eigenen Befehl dafür, den man vorzugsweise am Ende des Skripte ausführen lassen kann :

    productlist::reload_products_of_document

17.07.2012
Bug 2934 - textmodel:: clear_placeholders geht nur für den aktuellen Skriptrahmen

Wir haben eine Menge Dokumente, bei denen leider einige Textplatzhalter so aufgebaut sind :

    [Text Tabelle]

D.h., die Tabelle ist direkter Teil des Platzhalters. Inzwischen werden die Tabellen mit einem Tabellenplatzhalter angelegt. Leider gehen jetzt beim Aktualisieren der alten Platzhalter die Tabellen verloren. Wenn man den Platzhalter um die Tabellen entfernen könnte, wären die alten Dokumente gerettet. Leider arbeitet textmodel::clear_placeholder aber nur auf dem aktuellen Skripttext. Kann man da was machen?

textmodel::clear_placeholders hat jetzt einen zusätzlichen optionalen Parameter, in dem der gewünschte Textrahmen angegeben werden kann. Dann kann man das Problem mit folg. Skript leicht lösen :

int main ()
{
	ItemList       frames	= itemlist::allframes (1);
	ItemRef        fr 		= item::alloc ();
	Table          T   		= table::alloc ();
	int            f, t;
	int            a, b;

	for (f = 0; f < itemlist::length (frames); f++)
	{
		itemlist::get (frames, fr, f);
		for (t = 0; t < table::count (fr); t++)
		{
			table::get (T, fr, t);
			a = table::get_anchorpos (T, &b);
			if (a >= 0)
			{
				textmodel::clear_placeholders (a, b, fr);
			}
		}
	}
	return 0;
}
17.07.2012
Bug 2933 - (Stabile) Listenauswahl in der Produktrecherche

In der Produktrecherche kann man einstellen, ob sich die Listenauswahl an die Dokumentauswahl anpassen soll oder nicht. (Menü Palette->Listenauswahl->Stabile Listenauswahl oder das Button "Stabile Listenauswahl" unten in der Palette).

Hat man KEINE stabile Listenauswahl, wird die Auswahl in der Liste immer der Auswahl im Dokument angepasst. Ist die Dokumentauswahl leer wird in der Liste der Eintrag [Kein Objekt] ausgewählt. Könnte man das so ändern, dass in diesem Fall die Listenauswahl erhalten bleibt?

Das Button hat jetzt drei Einstellmöglichkeiten :

  • : Auswahl anpassen
  • : Auswahl anpassen, aber leere Auswahl ignorieren
  • : Auswahl nicht verändern

Buttonklick (oder das Menü Palette->Listenauswahl->StabileListenauswahl) kreisen durch diese Möglichkeiten. Das oben beschriebene Verhalten erhält man, wenn "Rot-Blau" eingestellt ist.

16.07.2012
R3083

Hotfix

04.07.2012

Bug 2930 - priint:adjust - Verbotene Ränder oben können nicht gesetzt werden

In der Palette "priint:adjust" können die verbotenen Ränder eines Bildes eingestellt werden. Das funktioniert auch - aber nicht für den Wert "oben".

Das geht jetzt.

03.07.2012
Bug 2929 - priint:adjust - Rahmenpreview in der Palette fehlt

In der Palette "priint:adjust" wurde bisher immer ein Preview des aktuell ausgewählten Rahmens gezeigt. Seit CS5 ist dort immer nur ein weisses Rechteck zu sehen.

Der Fehler ist gefixt. Das Preview ist jetzt auch unter CS5 und höher zu sehen.

03.07.2012
Bug 2918 - Standard-Gestaltungesregel "Bildgröße anpassen" skaliert über 100%

Wenn ich die Regel "Bildgröße anpassen" auswähle, dann skaliert das Bild knallhart auf die Rahmengröße. Dummerweise stört es ihn hierbei nicht, ein Bild z.B. mit 250% zu Lasten der Qualität einzubauen.

Gab es nicht mal die (sinnvolle) Einschränkung, dass Bilder niemals vergrößert eingebaut werden, sondern maximal verkleinert werden?

Die Option gibts jetzt. Zusätzlich gibts als dritte Option "Vektorformate". Dort kann eine Liste von Dateiendungen angegeben werden für alle Formate, die trotzdem beliebig vergrössert werden dürfen (z.B. "ps eps"). "alle" ist der Short cut für "ai ps eps pdf".

    

02.07.2012
Bug 2927 - frame::fit in mehrspaltigen Texten

InDesign® kann es gar nicht, fit::frame aber schon - das Anpassen von Rahmen mehrspaltiger Texte. Aber leider ist auch fit::frame nicht sehr genau in der Anpassung. Die Rahmen sind immer irgendwie zu hoch.

Ja, das ist wahr. Es muss ein Kompromiss zwischen Genauigkeit der Rahmenhöhe und Geschwindigkeit der Anpassung gefunden werden. Der war ein bisschen sehr einseitig zugunsten der Geschwindigkeit ausgefallen. Jetzt ist die Berechnung genauer - dafür ein bisschen langsamer.

02.07.2012
R3077

Hotfix

01.07.2012

svn 3073

Bug 2926 - Spaltenweiser Aufbau beginnt keine neue "Spalte"

In einem 1:N-Seitenelement mit spaltenweisem Aufbau sollen Produkte aufgebaut werden. Leider wird aber keine neue Spalte begonnen und das letzte Produkt ragt nach unten über das Seitenelement hinaus.

Der Fehler tritt nur dann auf, wenn das Produkttemplate vor dem Laden noch ins Element passt, nach dem Laden aber höher geworden ist.

Das gleiche Problem tritt auch im zeilenweisen Aufbau auf, wenn dort das Produkt beim Laden breiter wird. Dann ragt es halt rechts über das Seitenelement hinaus.

Gar nicht so einfach, dafür Testfälle zu bauen. Der Fehler ist gefixt.

29.06.2012
Bug 2919 - Rahmenplatzhalter nach Reorganisieren zeigt: nicht synchron

Winziger Schönheitsfehler: Wenn eine Cometgruppe bei der Reorganisation neu aufgebaut werden muss (z.B. bei Seitenwechsel) zeigen die Rahmenplatzhalter an, dass sie nicht synchron wären (roter Haken). (Sync-Scripte sind vorhanden!)

Einmal mit der Aufgabenpalette gesucht und alles ist wieder grün.

Die Textplatzhalter zeigen das Verhalten nicht.

Rahmen gleicher Kennung befreundeter Templates (also die Rahmen, die bei Reorganisationen Inhalte übernehmen können) übernehmen jetzt auch SyncState und Modified-Date aus dem Original.

29.06.2012
Bug 2925 - Musterseitenelemente werden nach Seiten ohne Musterseiten nicht gelöst

Das Freistellen von Musterseiten-Elementen hört immer auf, wenn eine Seite keine Musterseite hat. Alle Seiten hinter dieser Seite wurde nicht mehr bearbeitet.

Dieser Fehler ist gefixt.

29.06.2012
R3070

Hotfix

28.06.2012

FB 6119 - Probleme beim Arbeiten mit mehreren Dokumenten

Wir haben ein großes Problem beim Arbeiten mit mehreren Dokumenten auf dem Comer Server (Rev. 3.3 3044). Im Anhang finden Sie ein Paket, welches das Problem reproduzierbar macht.

Wenn file2 vor dem Platzieren geöffnet wird, dann geht das Auslesen der Gruppe nach dem Platzieren im ersten Dokument mit "Cometgroup not found" schief, da das Produkt im zweiten Dokument platziert wird.

Wenn man file2 nach dem Platzieren öffnet, dann kann mit zwei parallelen Dokumenten gearbeitet werden :

    app.comet.documentOpen(file1, true, options1);
    app.comet.documentOpen(file2, true, options2);

    app.comet.placeTemplate(file1, ...);

Bug 2725 (R2808, 21.02.2012). Der Fehler ist gefixt.

Achtung : Alle Serverversionen seit R2808, 21.02.2012 bis R3069 können jeweils nur mit einer einzigen geöffneten Datei pro Skript arbeiten und müssen diese am Skriptende auch wieder schliessen.

28.08.2012
Bug 645 - Vorlagen-Skript wird nicht ausgeführt

Die Drag and Drop - Option "Shift-Taste halten" zum Unterdrücken des PageItemID-Skriptes für Produkte wird nicht mehr unterstützt. Das Skript wird jetzt immer ausgeführt.

26.06.2012
Bug 2923 - Drag and Drop von Produkten auf Seitenelemente

Es wird gewünscht, dass Produkte bei Drag and Drop automatisch an der linken oberen Ecke des Seitenelementes platziert werden, über dem sie fallengelassen werden.

Dabei soll keine Prüfung gegen bereits bestehende Seiteninhalte und/oder Seitengrössen gemacht werden. Auch die in den Seitenelementen eingestellten Ausrichtungen sollen ignoriert werden.

Drag and Drop mit den gehaltenen Tasten

    Shift + Command

macht das Gewünschte jetzt. Der Cursor bekommt dann dieses Aussehen :

26.06.2012
Bug 2921 - Musterseitenelemente auf der ersten, rechten Seite werden nicht gelöst

Die Sache mit den Musterseitenelementen ist anscheinend noch nicht ganz ausgestanden:

Man nehme einen Standard-Produktaufbau (Mauer) über mehrere Seiten, beginnend mit einer rechten Seite. (Standard)

Wenn ich anschließend "page::masteritems_load(-1, 0);" ausführe, werden alle Musterseitenelemente gelöst und geladen, bis auf den Rahmen auf der ersten, rechten Seite. Den ignoriert er quasi.

Mit der neuen Option "Musterseiteneinträge freistellen und laden" ergibt sich übrigens der gleiche Fehler.

Das ist gefixt

26.06.2012
Bug 2922 - syncID -1 wird nicht von der Datenbank ins Dokument übernommen

In der Datenbank hat Platzhalter die syncID -1. Bei der Verlinkung von Text/Rahmen mit diesem Platzhalter erhält der Platzhalter aber immer die Sync-ID 0. Der Fehler tritt nur bei ODBC-Verbindungen auf. XML und SOAP funktionieren.

Der Fehler ist gefixt.

26.06.2012
R3063

Hotfix

21.06.2012

Bug 2917 - frame:: override_masteritem gibt bei bereits freigestellten Musterseitenrahmen den Musterseitenrahmen zurück

Besser wäre es sicher, dann den freigestellten Rahmen zurückzugeben, oder?

Das wird jetzt gemacht.

21.06.2012
Bug 2916 - frame::fit mit kRefPointBottomRight funktioniert nicht richtig

Wenn ich einen Rahmen mit kRefPointBottomRight an seinen Inhalt anpassen will, ändert der zwar seine Höhe - aber nicht auf das erwünschte Minimum. Der Rahmen wird viel zu hoch. Das Gleiche passiert auch mit anderen Referenzpunkten unterhalb der oberen Rahmenkante.

Auffällig an dem Fehler ist : Wenn ich das Template, in dem der Rahmen enthalten ist, genügend weit unten auf einer Seite platziere, funktioniert es, nur im oberen Seitenbereich nicht.

Damit frame::fit richtig funktioniert, muss der Rahmen zunächst so groß gemacht werden, dass kein Übersatz mehr besteht (In 90% der Fälle funktioniert frame::fit zwar auch ohne diesen Schritt, aber zumindest durch den Filter der API ist nicht zu erkennen, woran das liegt - also machen wir es immer.) Wird der Rahmen jetzt unten festgehalten, wächst er natürlich nach oben. Und weil wir aus Performance-Gründen großzügig vergrößern, landet die obere Rahmenkante ausserhalb des Arbeitsbereiches.

Und dann passiert folgendes : InDesign® verkleinert den Rahmen zwar. Aber nicht auf das gewünschte Minimum, sondern nur soweit, dass er nicht ganz von der Arbeitsfläche fällt - irgendwie auch verständlich.

Diese Verhalten wird jetzt dadurch gelöst, dass VOR dem eigentlichen Anpassen des Rahmens die Arbeitsfläche vergrössert wird. Und zwar so, dass der Rahmen in keinem Fall von der Arbeitsfläche fallen kann. Dann wird der Rahmen angepasst. Danach kann die Arbeitsfläche wieder auf ihre alte Grösse gebracht werden.

Damit ist der Fehler gefixt.

21.06.2012
R3056

Hotfix

20.06.2012

Bug 2915 - Gestaltungsregel "Bildplatzierung anpassen" ist falsch für Bilder mit Freistellpfaden

Wendet man die Gestaltungsregel "Bildplatzierung anpassen" auf Bildrahmen an, die einen Beschneidungspfad verwenden, kommt nicht das erwartete Ergebnis raus. Das Bild wird so platziert, als würde der Beschneidungspfad gar nicht verwendet.

Die Gestaltungsregel funktioniert jetzt auch bei Bildern mit aktivem Beschneidungspfad.

20.06.2012
Bug 2914 - frame:: image_getpath_bbox liefert die BoundingBox immer am Punkt (0, 0)

Fragt man mit frame::image_getpath_bbox nach der BoundingBox um den verwendeten Biidpfad, erhält man zwar ein richtiges Ergebnis. Aber der linke obere Punkt ist immer (0.0, 0.0). Schöner (und brauchbarer) wäre natürlich, wenn dieser Punkt die Abstände zur linken oberen Ecke des gesamten Bildes liefern würde.

Das wird jetzt gemacht.

20.06.2012
Bug 2909 - Produktaufbau / Probleme mit Musterseitenelementen

Wenn ich den Standardproduktaufbau mache (Mauer), dann wird spätestens ab der zweiten Seite die Musterseitenelemente gelöst, die einen leeren Rahmenplatzhalter haben, obwohl an keiner Stelle masteritems_load ausgeführt wird.

Beginnt man den Produktaufbau auf einer linken Seite, landen die Musterseitenelementen der linken UND rechten Seite gelöst auf der Folgeseite. Das führt dann bei einem Produktaufbau inkl. masteritems_load im Panelscript, dass die Rahmen doppet und dreifach auf der Seite stehen.

Normalweise sollte doch kein Musterseitenelement gelöst werden, wenn nicht masteritems_load aufgerufen wird, oder?

Für Bug 2903 musste ich einige änderungen machen. Dabei verwende ich eine InDesign®-API-Funktion zum Ermitteln der Musterseiteneinträge. Die Funktion will die UID einer Musterseite und gibt dann eine Liste von Musterseiten-Rahmen zurück. Eigentlich ganz okay - was nicht so okay ist. Die Funktion gibt viel mehr zurück  Nämlich auch alle Musterseiten-Rahmen der Seiten, die links der gewünschten Seite im Masterspread liegen.

Diese Rahmen werden jetzt (ziemlich aufwendig) ausgefiltert und der Bug damit gelöst.

Zu den Musterseitenelementen siehe auch Bug 2903, Bug 2910, Bug 2911, Bug 2912 und Bug 2913,

20.06.2012
Bug 2913 - Musterseiteneinträge nach Reorganisationen aktualisieren

Es gibt bisher kein Verfahren, nach Seiten-Reorganisationen die Musterseiteneinträge  automatisch freizustellen und/oder neu zu laden. Man muss dazu immer den Befehl

    Produktrecherche > Verschiedenes > Musterseiteneinträge aktualisieren

Mit der neuen Aufbau-Option "Musterseiteneinträge freistellen und laden" geht das jetzt automatisch : War beim letzten Produktaufbau die Option gesetzt, werden nach jedem Aufräumen die Musterseiteneinträge aktualisiert, sonst nicht.

Darüber hinaus wertet auch der Skriptbefehl productlist::reorganize das Flag aus : Ist hier das Flag gesetzt, werden in jedem Fall nach dem Aufräumen die Musterseiteneinträge aktualisiert. Ist das Flag nicht gesetzt, wird die Einstellung des letzten Produktaufbaus verwendet.

Da man vielleicht nicht immer gleich Produkte einfügen will, um die automatische Musterseitenrahmen-Aktualisierung ein- oder auszuschalten gibt es zusätzlich ein neues Menü zum ändern der Einstellung :

    Produktrecherche > Verschiedenes > Nach Reorganisationen Musterseiteneinträge aktualisieren

20.06.2012
Bug 2912 - Musterseiteneinträge beim Produktaufbau laden

Der Produktaufbau lädt ja offenbar die Musterseiten-Rahmen aller Seiten, die neu angelegt werden müssen. Aber der Zeitpunkt ist natürlich ein bisschen doof : Nämlich dann, wenn die Seite noch leer ist.

Irgendwie inkonsequent ist ausserdem, die Musterelemente bestehender Seiten völlig unberührt zu lassen.

Der Produktaufbau hat jetzt eine weitere Option : Musterseiteneinträge freistellen und laden (in Skripten das Flag kLoadMasteritems). Ist diese Option aktiviert, werden nach dem Aufbau der Produkte die Musterseiteneinträge (mit Platzhalter) ALLER Dokumentseiten freigestellt und/oder neu geladen.

FYI : Es ist nötig, das mit allen Seiten zu machen, da Musterseiteneinträge beim Laden ihrer Inhalte auch auf Inhalte anderer Seiten zugreifen können und sich daher auch Musterseiten-Rahmen auf Seiten ändern können, die der aktuellen Aufbau gar nicht verändert hat.

20.06.2012
Bug 2911 - Aktualisieren der Musterseiteneinträge ALLER Seiten

Das geht bisher nur mit dem Befehl page::masteritems_load. Einen Menübefehl gibt es dazu nicht, oder? Über den Befehl

    Produktrecherche > Verschiedenes > Musterseiteneinträge aktualisieren

kann ja immer nur die aktuelle Seite bearbeitet werden.

Das geht mit gleichzeitig gehaltener Shift-Taste.

Weil es aber eigentlich ziemlich blöd ist, Menüs mit Modifier-Taste zu versehen (die ALT-Taste zum Editieren von Skripten reicht) hab ich ein weiteres Menü eingefügt, mit dem alle Seiten bearbeitet werden können :

    Produktrecherche > Verschiedenes > Musterseiteneinträge der Seite aktualisieren
    Produktrecherche > Verschiedenes > Alle Musterseiteneinträge des Dokumentes aktualisieren

20.06.2012
Bug 2910 - Musterseiten-Einträge werden nicht aktualisiert

In der neuesten Version R3030 werden Musterseiten-Rahmen nicht mehrt vollständig aktualisiert. Ich verwende den Befehl

    Produktrecherche > Verschiedenes > Musterseiteneinträge aktualisieren

Auch page::masteritems_load funktioniert nicht mehr richtig.

In beiden Fällen werden zwar alle noch nicht freigestellten Musterseitenrahmen (die einen Platzhalter haben) freigestellt und geladen. ABER : Rahmen, die bereits freigestellt waren, werden nicht neu geladen.

Das ist eine Folge des Fixes von Bug 2903 und funktioniert jetzt wieder.

20.06.2012
Bug 2895 - Adjust plugin für CS 5.5 Server arbeiten nicht korrekt

Die Release für CS5.5 R2575 und latest Release R3024 sind beide nicht fehlerfrei auf dem CS5.5 Server.

Der Fehler ist gefixt

19.06.2012
Bug 2867 - 1:N-Seitenelemente mit spaltenweisem Aufbau führen zu falscher Reihenfolge in "Produkte des Dokumentes"

1:N-Seitenelemente, die ihren Inhalt spaltenweise anordnen sollen, machen das auch sehr schön und richtig. Leider werden die aufgebauten Produkte aber in der Palette "Produkte des Dokumentes" in falscher Reihenfolge gezeigt (nämlich zeilenweise). Was dann natürlich zu Fehlern bei der Reorganisation führt.

Der Fehler war leider noch nicht vollständig gefixt. Aber jetzt ist alles okay.

15.06.2012
R3044

Hotfix

15.06.2012

svn 3041

Bug 2904 - Tabellenumbruch und Verbinden gleicher Zellen

In einer mit dem Tabellenmodul aufgebauten Tabelle verwende ich die Methode "Gleiche Zellen verbinden". Dadurch entstehen zum Teil recht hohe Zellen über viele Zeilen. In diesen Zeilen kann InDesign® keine Rahmenumbrüche machen - und mein Produktaufbau schlägt fehl oder erzeugt unnötig viel Weißraum.

Ich habe einen neuen Skriptbefehl gemacht :

    table::merge_equal

Der hat einen Parameter, mit dem man steuern kann, ob Merges über Rahmenumbrüche gehen können oder nicht.

    

15.06.2012
R3030

Hotfix

14.06.2012

svn 3034

Bug 2905 - Einfügen von Templates ohne Laden

Kann app.comet.placeTemplate so erweitert werden, dass das Template nach dem Platzieren NICHT automatisch geladen wird?

Mit der Option "auto-load:false" kann das Laden jetzt unterdrückt werden :

var gDocument 	= "/Users/paul/Desktop/place_template.indd";
var gOptions 	= app.comet.ping() + ";-1;";

app.comet.placeTemplate (
		gDocument,
		Scope.SPREAD,
		0, 486,
		"500, 10, 0, \"\"",
		10.0, 10.0,
		ReorganizeLevel.NONE,
		gOptions+"auto-load:true;");
14.06.2012
Bug 2903 - "Musterseiteneinträge aktualisieren" erzeugt zusätzliche Musterseiten-Rahmen

Durch den Menüfehl

    Produktrecherche > Verschiedenes > Musterseiteneinträge aktualisieren

werden zwar die Musterseiten-Einträge der Seite aktualisiert. Leider erscheint aber auch ein Musterrahmen der Folgeseite auf meiner Seite. Das gleiche passiert mit dem Skriptbefehl

    page::masteritems_load(seitennummer, 3);

Das stimmt so nicht ganz. Man hat zwei Musterseiten :

  • Musterseite A : Mit den Rahmen ma1 und ma2
  • Musterseite B : (von A abgeleitet) mit dem Rahmen mb1. Zusätzlich wurde auf dieser Musterseite der Rahmen ma2 freigestellt und entfernt. Auf der Seite sind also ma1 und mb1 zu sehen.

Aktualisiert man jetzt die Musterseiten-Rahmen einer Dokumentseite, die B als Musterseite verwendet, dann erhält man DREI freigestellte Rahmen : ma1', ma2' und mb1'. Klar, ma2' sollte hier nicht erscheinen.

Knifflig, knifflig - aber gelöst. Beides, Menü und Skriptbefehl machen jetzt das Richtige : ma1 und mb1 werden freigestellt und aktualisiert, ma2 erscheint nicht auf der Seite.

13.06.2012
Bug 2882 - Tooltip für StringIDs

Leider erfordern manche Projekte sehr sehr ausführliche StringIDs. In der Platzhalterwerte-Palette kann ich die, wenn sie zu lang zum Anzeigen sind, per Mouseover ansehen. Schön wäre, wenn das auch in der Tabellenaufbau-Palette ginge.

Phantastisch wäre, wenn ich die Werte per Kontextmenü rauskopieren könnte - aber ich weiss nicht, ob die API das problemlos hergibt.

In der Tabellenmodul-Palette und in Platzhalterwerte sind die einzelnen ID-Felder jetzt ersetzt durch jeweils ein Multiline-Edit, das die IDs anzeigt.

    

In Platzhalterwerte werden zusätzlich noch die zwei Infos-Felder angefügt.

    

Die Edits sind scrollbar und man kann die Text rauskopieren. (Man kann die Werte auch ändern, aber das zieht natürlich keine Dokument-änderiungen nach sich. Aber wenn die Felder disabled sind, sind sie so grau und unleserlich. Kopieren könnte man trotzdem.)

13.06.2012
Bug 2902 - Einige Produkte werden beim Aufräumen neu geladen

Alle Produkte verwende das gleiche seitenabhängige Template. Alle Rahmenkennungen sind richtig gesetzt. Trotzdem werden einige, aber nicht alle Produkte, beim Aufräumen neu geladen, wenn sie auf eine neue Seite verschoben werden müssen (also das Template getauscht werden muss).

Produkte werden vor und nach dem Füllen mit Daten auf ihre Grösse geprüft - klar. Wenn sie zu groß sind, führt das zu einem Wechsel des Seitenelementes (und mglw. zu einem Seitenwechsel).

Wenn das Produkt schon der ersten Prüfung nicht standgehalten hat, war alles okay. Wenn die erste Prüfung okay war, aber die zweite nicht, dann wurde das Produkt neu geladen. Ein klarer Fehler - der jetzt gefixt ist. Sie sollten das an einem schnelleren Produkt-Aufräumen auch deutlich merken.

13.06.2012
Bug 2901 - Unerklärliche Seitenwechsel beim Reorganisieren (II)

Obwohl ein Produkt noch auf eine Seite passen würde, wird es beim Reorganisieren auf eine neue Seite verschoben. Woran könnte das liegen?

Hat das Produkt Fortsetzungen? Wenn ja - prüfen Sie mal die Gestaltungsregeln der Rahmen, die fortgesetzt werden sollen : Gibt es da bei den Regeln für Reorga ein Fitframe oder andere Methoden, die die Rahmenhöhe ändern?

Dann ist das das Problem. Die Höhe der Rahmen mit Textfortsetzung wird vom Produktaufbau gesteuert! Wenn Sie die Rahmen hinterrücks wieder höher machen, kann das natürlich nicht funktionieren.

Höhenänderungen an Rahmen mit Fortsetzungen in den Reorg-Regeln werden jetzt automatisch wieder zurückgesetzt.

13.06.2012
Bug 2900 - Unerklärliche Seitenwechsel beim Reorganisieren (I)

Ein Produkt, das auf eine Seite gepasst hat, wird nach dem Aufräumen auf einer neuen Seite platziert. Auf der alten Seite bleibt ein großer weisser Fleck.

Gibt es Fortsertzungen und legt das Template im BuildSupportScript in der Situation kBeforeCreateContinue zusätzliche Rahmen im Dokument an? Dann könnte das Problem dadurch entstehen : Im BuildSupportSkript angelegte Rahmen werden automatisch als Fortsetzungsrahmen gekennzeichnet und bei Reorganisationen weggeschmissen. Fortsetzungen werden von 1 beginnend gezählt. Aber leider ist der Zähler beim ersten kBeforeCreateContinue-Call noch 0 - diese Rahmen werden also gar keine Fortsetzung.

Der abgebildete Rahmen müsste an der linke Seite eigentlich ein kleines graues Dreieck zeigen - die Markerierung, dass der eine Fortsetzung ist :

    

Das ist jetzt gefixt. Die Rahmen werden automatisch der ersten Fortsetzungsgruppe zugeordnet.

Erklärung

Und wieso entstand dadurch Weiss-Raum? Ganz einfach - vor dem Aufräumen werden Rahmen, die eine Fortsetzung haben, wieder auf ihre Grösse, wie sie im Template definiert ist, zurückgesetzt. Das funktioniert auch. Aber die Position des zusätzlichen Rahmens ändert sich natürlich dadurch nicht. Das Produkt wird also gar nicht kleiner - und der Zielplatz im Seitenelement muss nur geringfügig kleiner sein, damit das Produkt nicht passt.

12.06.2012
Bug 2899 - server:: get_placeholders macht falsche Angaben für Platzhalter in Initialen der Absätze

server::get_placeholders erzeugt einen XML-Export der Platzhalter eines Dokumentes. Für Textplatzhalter wird dabei deren Position und Fläche ausgegeben :

  • node psc:placeholderlist.placeholders.placeholder.frames.frame.bbox.rect
  • node psc:placeholderlist.placeholders.placeholder.frames.frame.area.polygon

Platzhalter, die in den Initialen eines Absatzes beginnen, bekommen dabei falsche Y-Koordinaten. Die Y-Positionen liegen immer bei der vorletzten Zeile der Höhe der Initialen.

Mit so was kann mal sich mal locker einen Tag beschäftigen. Die Höhe stimmt jetzt auch in Initialen.

12.06.2012
Bug 2898 - "Clash of informations" der Koordinaten von server::get_placeholdern bei Platzhaltern, die teilweise im Übersatz liegen

server::get_placeholders erzeugt einen XML-Export der Platzhalter eines Dokumentes. Für Textplatzhalter wird dabei deren Position und Fläche ausgegeben :

  • node psc:placeholderlist.placeholders.placeholder.frames.frame.bbox.rect
  • node psc:placeholderlist.placeholders.placeholder.frames.frame.area.polygon

Platzhalter, die teilweise im Übersatz liegen, enthalten dabei widersprüchliche Angaben : In bbox steht der umgebende Textrahmen aber mit Breite 0.000. Im Polygon steht die Beschreibung der sichtbaren Fläche.

In bbox steht jetzt die Bounding-Box der sichtbaren Fläche des Platzhalters.

12.06.2012
Bug 2897 - server::get_placeholders macht falsche Angaben für Platzhalter, die vollständig im Übersatz liegen

server::get_placeholders erzeugt einen XML-Export der Platzhalter eines Dokumentes. Für Textplatzhalter wird dabei deren Position und Fläche ausgegeben :

  • node psc:placeholderlist.placeholders.placeholder.frames.frame.bbox.rect
  • node psc:placeholderlist.placeholders.placeholder.frames.frame.area.polygon

Liegt der Platzhalter vollständig im Übersatz, hat er ja eigentlich keine Fläche mehr. Trotzdem stehen in den Exporten Werte drin.

Ich habe das geändert. In den Koordinaten-Angaben von Platzhaltern, die VOLLSTäNDIG im Übersatz liegen, stehen jetzt überall Nullen (0.0000).

12.06.2012
Bug 2842 - textmodel::gettext und frame::gettext exportieren keine InDesign®-Variablen

Seitennummern werden zwar jetzt richtig ersetzt. Die eingestellten Nummerierungs- und Abschnittsoptionen werden dabei aber leider ignoriert.

Auch das geht jetzt.

11.06.2012
Bug 2894 - app. comet. cometGroupMoveTo zerstört Cometgruppen

Bewegt man eine Cometgruppe mit app.comet.cometGroupMoveTo von einem Spread auf einen anderen, werden dabei die Cometgruppen zerstört bzw. verändert.

Der Fehler ist gefixt.

08.06.2012
Bug 2893 - Flächenberechnung von Bildern mit komplexen Freistellpfaden dauert sehr lange

Für Bilder, die komplexere Freistellpfade haben, dauert die Berechnung der Fläche mit frame::get_visible_area sehr lange. Wir haben hier ein Bild, bei dem dauert die Berechnung etwa 3 1/2 Minuten.

Lässt man sich mit dem Javascript-Befehl app.comet.getCometGroups die Cometgruppen eines Dokumentes ausgeben und verwendet dabei die Option size-useclips:true dauert dann natürlich auch dieser Befehl entsprechend länger.

Testscript :

var gOptions 	= app.comet.ping() + ";-1;";
var gDocument 	= "/Users/paul/Desktop/testCS55.indd"

app.comet.documentOpen(gDocument, true, gOptions);
var groupXml = new XML(app.comet.getCometGroups(
	gDocument,
	Scope.PAGE,
	1,
	'',
	gOptions +
	"calc-sizes:true;size-checkmargins:true;"));

var xmlGroups = groupXml.descendants('group');
// app.comet.documentClose(gDocument, gOptions);

var pt2mm = 1.0;

function rnd (str)
{
return parseFloat (str)*pt2mm*pt2mm;
}

for(var i = 0; i < xmlGroups.length(); i++)
{
	var xmlGroup = xmlGroups.length() == 1 
			? xmlGroups
			: xmlGroups.child(i);

	alert('Fläche (sichtbar / gesamt)\t: '
			+ rnd (xmlGroup.attribute('visible-size-absolute'))
			+ "\t\t/ " + rnd (xmlGroup.attribute('size-absolute')));
}

Der Freistellpfad des Bildes im Testdokument besteht aus 125 Einzelpfaden mit jeweils bis zu 1740 Stützpunkten. Die Flächenberechnung wird (mal ganz grob gesprochen) in drei Schritten gemacht :

  1. Jeder der Einzelpfade des Freistellpfades muss in ein genügend nahes Polygon umgewandelt werden. Es ergeben sich die Polygone p1, ..., pn.
  2. Bestimmen der Schnittmenge ps der Polygone p1, ..., pn. Das ist natürlich keine zusammenhängende Fläche, sondern ein Gebilde, das wieder aus vielen Polygonen ps1, ..., psm besteht.
  3. Berechnen der Flächen von ps1, ..., psm. Die Summe dieser Flächen ergibt dann die Bildfläche.

Das sind genügend komplexe und insbesondere viele Rechenschritte, um selbst einen sehr schnellen Prozessor eine ganze Weile zu beschäftigen.

Ich habe das Ganze mal etwas näher untersucht und festgestellt, dass die Hauptrechenzeit für Schritt zwei benötigt wird. Und dass man diese Rechenzeit extrem verkürzen kann, wenn man die Polygone in Schritt 1 etwas großzügiger annähert. Und unter der Annahme, dass genügend komplexe Flächen (mehr als 20 Stützpunkte) im Durchschnitt gleich viele konvexe und konkave Randstücke haben, heben sich die Fehler bei der Annäherung durch Polygone nahezu auf.

Damit konnte ich die Rechenzeit von 220 Sekunden auf etwa 1 Sekunde drücken.

ACHTUNG : Rahmenüberdeckungen führen zu einem exponentiellen Anwachsen des Rechenaufwandes. Linearer Aufwandsanstieg wäre möglich, aber aufwendig zu realisieren. Wir würden das als Feature-Request (erste Schätzung 5 Tage) ansehen.

08.06.2012
Bug 1707 - & im Produktpanel wird verdoppelt/fehlt

Alle & in der Produktrecherche werden verschluckt. Wenn ich die im Panelstatement verdopple: SELECT a.ID, ... REPLACE(a.Name, '&', '&&'), ... geht's. Alles andere (&amp;, <0x0026>, auch ein CAST zu varchar(max)) bringt nix.

Comet 3.3, CS5, Rev 3000 auf nem Mac. Verbindet sich mit SQL Server 2005, über OpenLink-Teriber, Unicode, login Unicode. Datentyp der Spalte nvarchar.

Bis einschliesslich CS3 hat Adobe das &-Zeichen in Textfeldern als Unterstreichungs-Markierung verwendet (die aber offenbar auch nicht funktioniert hat). Ab CS4 ist dieses etwas merkwürdige Verhalten geändert worden. Bei den dazu nötigen fast 200 Anpassungen im Comet-Quelltext habe ich an einer Stelle (nämlich der ersten Spalte der Produktrecherche) einen kleinen Fehler gemacht.

Das Problem ist gefixt.

08.06.2012
Bug 2891 - Absturz nach Doppelklick in Aufgabenpalette mit Ziel Tabelle

Nach einer Weile Arbeit mit der Aufgaben-Palette friert InDesign® beim öffnen eines neuen Dokumentes ein.

  1. Aufgabenpalette öffnen in den Vordergrund holen, und die Optionen=> Platzhalter, Liste anpassen, Übersatz prüfen und Gesperrte Ebene überprüfen aktivieren
  2. Seite öffnen(dadurch das die Aufgabenpalette aktiv ist werden die Überlauf-Fehler auch gleich angezeigt)
  3. Doppelklick auf einen Eintrag in der Aufgabenpalette damit ins Dokument zu den Platzhalter gesprungen wird
  4. Seite schliessen
  5. Seite wieder öffnen(Ich bin immer über den InDesign® Menü-Punkt "Zuletzt verwendete Datei öffnen" gegangen)

Nach der 6-ten Wiederholung habe ich dann unser altes Problem wieder das InDesign® einfriert und ein Prozessor auf 100% läuft. Das ganze habe ich auf 2 Rechnern bei uns im Haus getestet mit den Versionen 3.3 R2840 und R3000.

Wenn ich allerdings den Schritt 3 überspringe und die Überlauf-Fehler ignoriere tritt das Problem nicht auf dann kann ich die Seite auch ohne Probleme öfters öffnen(nach den 50 mal abgebrochen).

Der Fehler ist gefixt.

FYI : Das Problem ist immer dann aufgetreten, wenn man zu Textplatzhaltern springen wollte und der Text hat Tabellen enthalten. Springen zu Rahmen und springen zu Textplatzhaltern in Texten ohne Tabelle(n) war okay.

05.06.2012
Bug 2892 - Manche Rahmen können nicht zu Cometgruppen hinzugefügt werden

Bei einem Produktaufbau werden bei einigen Produkte nicht alle Rahmen des Produktes zu einer Cometgruppe zusammengefügt. In "Produkte des Dokumentes" erscheinen dann mehrere Einträge des Produktes (und spätestens beim Aufräumen passieren dann böse Dinge).

Ich habe versucht, die Produktrahmen manuell zu einer Cometgruppe zusammenzufügen. Das geht auch nicht. Der Rahmen, der vorher nicht in der Cometgruppe war, geht auch manuell nicht hinzuzufügen.

    

Auffällig daran ist : Das passiert immer dann, wenn man Rahmenketten hat, bei denen einige Rahmen keinen Text anzeigen können (weil sie zu klein für die Schrift oder das Wort sind oder so flach, dass ein Tabellenheader gleich in den nächsten Rahmen geschoben wird (siehe Anlage 1) : Immer nur der erste Rahmen, der den Text anzeigen KöNNTE (wenn er nicht zu klein wäre), kann zur Cometgruppe hinzugefügt werden, die folgenden Rahmen bis einschlisslich dem Rahmen, in dem der Text oder die Tabelle dann erscheinen, können nicht zur Cometgruppe hinzugefügt werden.

Und hier die Erklärung : Beim Erzeugen/Erweitern von Cometgruppen müssen immer erst alle Rahmenhierarchien aufgelöst werden (Weil InDesign®-Gruppen nicht Mitglieder von Cometgruppen sein können.) Dazu wird rekursiv in die Rahmenstruktur eingetaucht. Unglücklicherweise trifft man dabei aber auf ähnlich ungeeignete Objekte wie die InDesign®-Gruppen, z.B. auf Textspalten. Interessiert ist man am Textrahmen, nicht an der Spalte. Deshalb wird die Spalte nach der ersten Textposition gefragt, die sie anzeigt - dann kann man sich den dazugehörigen Textrahmen holen. Könnte man - in dem oben beschriebenen Fall wären das aber mind. ZWEI Rahmen und den zweiten erhält man also nie.

Viele Wege führen nach Rom. Und mind. zwei von der Textspalte zum Textrahmen. Der Fehler ist gefixt.

05.06.2012
R3024

Hotfix

25.05.2012

Bug 2888 - Produktaufbau bricht ab... (R3010)

Muss der Produktaufbau von einer linken auf eine rechte Seite wechseln, wird er mit dem Fehler -11100 abgebrochen :

#    Die Seite 3 konnte nicht erzeugt oder neu eingefügt werden.
#    
#    Unbekannter Fehler -111000
#    
#    9. Produkt, ID = [1, 108, 2, '182|11453']
#    
#    Das Template ist zu groß für das Seitenelement gewesen.
#    Es wurde aber kein weiteres Seitenelement mehr gefunden.

Das Problem ist wieder behoben.

01.06.2012
Bug 2881 - Reorganisieren mit Fortsetzungen: Tabellenplatzhalter wird nicht geladen

Man nehme 3 Produkte, lasse sie aufbauen und zwar so, dass das zweite Produkt aufgetrennt und auf der nächsten Seite fortgesetzt wird.

    A
    B-B
    C

Man schiebe Produkt C über Produkt B und reorganisiere. B landet dann auf der zweiten Seite, aber der Tabellenplatzhalter wird nicht mehr geladen!?

Dass Problem tritt nur dann auf, wenn der Rahmen, der fortgesetzt wird, direkt mit einer Tabelle beginnt, die (will man ja so) in der Fortsetzung weiter geht. Die InDesign®-API-Funktion, die berechnet, welcher Rahmen einer Textkette welche Textposition enthält, gibt hier die (falsche) Antwort, es sei der Rahmen der Fortsetzung.

In textmodel::get_frame_containing hatte ich das bemerkt und extra behandelt. Beim Produktaufbau nicht. Jetzt gehts.

01.06.2012
Bug 2885 - Shortcuts von Palettenskripten funktionieren nicht immer

Palettenskripten können bei ihrer Definition in actions Shortcuts zugewiesen werden. Manchmal funktionieren die aber nicht auf Anhieb. Wenn man das Menü, das die Einträge enthält, einmal aufklappt, funktionieren die Shortcuts.

Das Problem ist sehr einfach zu beschreiben :

  1. Die Shortcuts benötigen die Menüs
  2. Die Menüs benötigen die Datenverbindung
  3. Die Datenverbindung benötigt die Menüs

Aber ärgerlich ist es trotzdem irgendwie. Ich hab deshalb ein bisschen in die C++-Trickkiste gegriffen (also eigentlich ziemlich tief) und konnte das Problem entscheidend verbessern : Ist beim Start von InDesign® mindestens eine der Paletten Produktrecherche oder Front Row geöffnet (nicht unbedingt sichtbar), funktioniert alles auf Anhieb. Ist keine dieser Paletten offen, funktioniert es, nachdem eine der Palette geöffnet wurde.

ACHTUNG : Das geht aktuell nur für Palettenskripte der Produktrecherche (classid 3). Aber wer benutzt schon andere?

Welche Shortcuts können nicht verwendet werden?

  • Bereits von InDesign® belegte Shortcuts können nicht überschrieben werden.
  • Viele der Funktionstasten sind vom Betriebssystem belegt.
  • Shift+Ctrl+Buchstabe u.ä. funktionieren natürlich nicht, wenn eine Texteingabe aktiv ist (InDesign®-Dokument oder Paletten-Controls)
  • Der Modifier Opt (die Alt-Taste) wird i.d.R. verwendet, um Skripte zu editieren. Wenn Sie diesen Modifier verweden, werden Sie also immer der Skripteditior sehen (oder eine Warnung, dass Sie zum Editieren der Skripte eine Partner-Lizenz benötigen.)
31.05.2012
Bug 2884 - page::crop berücksichtigt ausschließlich die erste Dokumentseite

Alle anderen Seiten des Dokumentes bekommen die gleiche Grösse wie die erste Seite. Könnte man das nicht auch so machen, dass man eine andere Seite als Basis nehmen kann?

Die Funktion page::crop hat jetzt einen weiteren Parameter : die Seite.

Bis CS4 kann man natürlich nur einheitliche Seitengrössen verwenden. Die wird aber jetzt aus den Rahmen der angegebenen Seite ermittelt und gesetzt.

Ab CS5 wird AUSSCHIESSLICH die Grösse der angegebenen Seite verändert. Alle anderen Seiten bleiben (bis auf die in Bug 2883 beschriebene Ausnahme mit dem Anschnitt) unverändert. Mit der Angabe von -1 werden alle Dokumentseiten, die mind. einen Rahmen haben, an ihren Inhalt angepasst.

Zusätzlich hat die Funktion noch den weiteren Parameter keepMargins (Default 1). Ist der 0, werden bei allen Seiten, die angepasst werden, die Anschnitte auf (0, 0, 0, 0) gesetzt - und die Seiten dann entsprechend kleiner.entes bekommen die gleiche Grösse wie die erste Seite. Könnte man das nicht auch so machen, dass man eine andere Seite als Basis nehmen kann?

    

30.05.2012
Bug 2883 - page::crop erzeugt Fehler bei sehr kleinen Rahmen

page::crop soll ja die erste Dokumentseite so verkleinern, dass sie genau um die Seitenrahmen passt. Das klappt auch sehr gut.

Leider meldet InDesign® ab sehr kleinen Rahmen den Fehler, dass die gewünschte Seitengrösse im Bereich 1-15552 Punkte sein muss - was sie ja eigentlich wäre.

Der Fehler tritt dann auf, wenn der Seitenanschnitt kleiner als der Seitenanschnitt der zugehörigen Musterseite ist.

Beispiel

Die Seite hat oben und unten einen Beschnitt von 10 mm und einen Rahmen von 4 mm, müsste dann also 24 mm hoch werden. ABER die zugehörige Musterseite hat einen Beschnitt von jeweils 12,7 mm. Die Musterseite erlaubt der Seite also als Minimalhöhe 25,4 mm (plus 1 Punkt). Und so gesehen ist die Fehlermeldung richtig, die eigentliche Seitehhöhe wäre dann kleiner als 1 Punkt.

Lösung

Missliches Problem. Es wird jetzt dadurch gelöst, dass, wenn nötig, der Musterseitenanschnitt auf (0, 0, 0, 0) gesetzt wird. Dann geht natürlich alles wieder (mit der kleinen Einschränkung, dass alle Seiten, die ihren Anschnitt aus der Musterseite nehmen, dann auch keinen Anschnitt mehr haben. Das kann man verhindern, indem zuvor auf alle Seiten ein page::set_margins gemacht wird.)

30.05.2012
Bug 2880 - document::open und Default-Parameter

Öffne ich ein Dokument so, klappt die Abfrage auf die Anzahl der Seiten :

    doc = document::open(BaseFile, doc, 1.0, 0, 0, 0, 0, 1, 1, kSuppressUI);

öffne ich es ohne die zusätzlichen Parameter, funktioniert alles :

    doc = document::open(BaseFile, doc); 

Dummerweise ist die lange Parameterliste oben jedoch laut Doku der default und sollte somit das gleiche bewirken?

Ja, ein kleiner Fehler in den Plugins. Es wird nur geprüft, ob die Default-Parameter da sind oder nicht, aber nicht deren Wert. Die vier Nullen (0, 0, 0, 0) geben aber die Grösse das Dokument-Fensters an - in diesem Fall also eine unsinnige Grösse.

Der gleiche Fehler tritt auch bei document::open_copy und document::create auf.

Die Angaben zur Fenstergrösse werden jetzt nur verwendet, wenn das Fenster eine Höhe und Breite grösser 0 hat. Damit ist der Fehler gefixt.

29.05.2012
Bug 2878 - Falsches Verhalten von page::get_margins / set_margins für linken und rechten Beschnitt

Hat man ein Dokument mit verschiedenem Anschnitt für links und rechts gibt page::get_margins bei linken Seiten die Werte für linken und rechten Beschnitt falsch zurück : Die Variable für den linken Beschnitt gibt den rechten Beschnitt zurück und umgekehrt.

Analog verhält sich page::set_margins : Der Wert des neuen linken Beschnitts wird rechts gesetzt und umgekehrt.

Das Ganze passiert nur linken Seiten. Rechte Seiten, innere Seiten und Seiten von Spreads mit nur einer Seite werden richtig behandelt.

Das Verhalten ist einfach erklärt : Bei doppelseitigen Spreads sind die Beschnittangaben nicht der Abstand von der linken/rechten Seitenkante sondern der Abstand von der inneren bzw. äußeren Seitenkante. Ich habe das in der Doku korrigiert.

Zusätzlich haben beide Funktionen einen neuen optionalen Parameter, mit dem gesteuert werden kann, ob man das alte Verhalten (innen bzw. links und rechts bzw. außen) haben will, oder ob man tatsächlich den Abstand von der linken bzw. rechten Seitenkante meint.

29.05.2012
R3020

Hotfix

25.05.2012

Bug 2877 - Lange Texte in der Preview-Palette

Kann man in der Preview-Palette für lange Texte nicht solche gelben Hilfezettel mit dem vollständigen Text machen?

Man kann. Die Texte der Previewpalette haben jetzt gelbe Zettel mit dem vollständigen Text (oder jeweils soviel Text, wie die gelben Zettel anzeigen können).

25.05.2012
Bug 2876 - UTF-8 als Standard im Login-Dialog

Könnten wir nicht die Zeichensatz-Einstellung "UTF-8" zum Default des Login-Dialoges machen (statt Systemzeichensatz)?

Das ist jetzt so.

25.05.2012
Bug 2503 - Fehlermeldung beim Starten des Servers

Wenn ich den InDesign®-Server mit sudo starte, kommt eine Fehlermeldung über die Rechte des iorfiles:

    Wed Jul 20 07:11:33 2011 WARN    [server] WARNING!
        Please check file permissions for '/var/comet/ids1.ior'.
        Most probably you cannot use this file as a corba communication endpoint.

Auch wenn ich die Datei lösche, wird sie vom Cometen mit anscheinend seltsamen Rechten wieder angelegt.

Funktioniert trotzdem, könnte aber Hasenherzige verunsichern...

Startparameter:

    sudo ./InDesignServer
        -iorfile /var/comet/ids1.ior
        -cometlog /var/comet/log/comet1.log
        -cometcache /var/comet/cache1/
        -cometapilog /var/comet/log/api1.log
        -previews

Das Problem scheinen nicht die Permissions der Datei zu sein sondern die eines Ordners des angegebenen Pfades. Wie auch immer, ich habe die Fehlermeldung jetzt anders gestaltet : Ich schreibe (irgend)etwas in die Datei. Wenn das gut geht, kommt keine Meldung, geht das schief, wird die Meldung gezeigt.

Etwas später überschreibt das Plugin "Corba Support" die Datei mit den aktuellen Werten und gibt darüber Auskunft im Terminal-Fenster :

  • erfolgreich : Writing IOR to 'your ior'
  • Fehler : Cannot open IOR file 'your ior' for writing, check permissions. Und erst bei diesem Fehler muss man was tun.
25.05.2012
Bug 2850 - frame::place_pdf -> PDFbox / Beschnittrahmen definieren

Wenn man PDFs platziert, so hat man im InDesign® ja die Wahl, welche PDF-Box als Beschnittrahmen herangezogen wird. (Objekt-Box, Medien-Box, Trim-Box etc.).Soweit schon mal nichts schlimmes. Problematisch ist, dass InDesign® sich die zuletzt ausgewählte Import-Methode merkt und von nun an immer wieder auf die gleiche Art importiert. (Leider merkt ID sich das als Programmvorgabe und nicht als Einstellung im Musterdokument.)

Jetzt führt das zu sehr netten Sideeffekts:

  1. Am Montag mache ich eine Comet-Ausleitung -> alles ist gut.
  2. Am Dienstag platziere ich irgend ein PDF mit anderen Importoptionen manuell für irgend was anderes -> auch gut.
  3. Am Mittwoch leite ich den Kram vom Montag nochmal aus und alle PDFs stehen anders in den Frames.

Was ist passiert? Montag hatte ich noch die Importoption zum Beschnitt auf das Objekt stehen und ab Dienstag steht die Voreinstellung auf "Beschnittrahmen".

Das ist natürlich tödlich und man sucht sich schon mal den Wolf, um den Fehler zu finden.

Kann man irgendeine Möglichkeit schaffen, die PDF-Importoptionen in C-Script direkt beim Import als Parameter festzunageln, damit ein PDF immer gleich platziert wird?

Es gibt einen neuen Befehl :

    frame::place_pdf_with_crop

Dort kann die Art des Beschnitts angegeben werden. Der Befehl ist exakt wir frame::place_pdf mit dem neuen sechsten Parameter cropTo. (Ein neuer Befehl war nötig, weil frame::place_pdf eine beliebige Anzahl von Parameter hat und die Parameter-Liste deshalb nicht erweitern werden kann.)

25.05.2012
Bug 2852 - Wechsel auf Palette Produktrecherche dauert bei XML-Plugins sehr lange

Bei einem XML-Projekt dauert es neuerdings recht lange, wenn man von einer beliebigen Palette in die Produktrecherche wechselt. Während der Wartezeit (können durchaus bus zu 5s sein) ist die CPU-Last bei 100%.

Es lag nicht an einer neueren Version der Plugins, es lag an der großen Anzahl von Templates : Wenn die Palette sichtbar wird, muss das Popup mit den Templates neu aufgebaut werden. Das ist etwas aufwendig (z.B. werden bei Templates mit gleichem Namen die IDs an den Namen angefügt.) aber geht nach ein bisschen Optimierung jetzt ganz schnell.

25.05.2012
Bug 2873 - Doppelter Umbruch wenn kNewPage gesetzt

In manchen Produkten wird in der productlist die preRule auf kNewPage gesetzt. Wenn die Liste mti pageTemplates aufgebaut wird dann auch eine neue Seite erzeugt, wenn das Produkt aber so groß ist, das es durch den Umbruch sowieso auf eine neue Seite gesetzt wird, wird nochmal eine Seite erzeugt. Das heisst ich habe eine leere Seite zwischen den Produkten.

Statt der preRuleID, die Comet 2.1 ist, sollte in die Produktliste ein weiterer Eintrag eingefügt werden, der vom Produkt-Typ Pagetemplate (=4) ist, dann wird das funktionieren.

Hier ein kleines Beispiel :

int  	stPageTemplateID	= ?;
int  	stNewPageType		= ?;        // 0 links, 1 beliebig, 2 rechts

int main ()
{
	ProductList            pl        = productlist::get ("selected");
	int                    result;
	Product                p;
	Product                q;
	int                    i;

	for (i = 0; i < productlist::length (pl); i++)
	{
		p = productlist::get (pl, i);
		if (Hier Bedingung einfügen)
		{
			q = product::alloc (kScriptStack);

			product::set (q, kProductType, 		4);
			product::set (q, kID,				stPageTemplateID);
			product::set (q, kProductPageType,	stNewPageType); 

			productlist::insert (pl, q, i, 1);
			i = i + 1;
		}
	}

	result = productlist::establish (
		pl,
		0,                		// front document
		-1,                		// current page
		"",        				// front layer
		stPageTemplateID,    	// page template
		0,         				// default page item
		kShowProgress,         	// + kPreferDefaultPageItem
		0,           			// pre script
		0,         				// no single sequences
		"",      				// sequence name not used
		0                		// errmess
		);

		productlist::release (pl, 1);
		
		return 0;
}
24.05.2012
Bug 2875 - Seitentemplate mit ID 0 in der Liste der Produkte des Dokumentes

Meine Liste der Produkte des Dokumentes enthält Seitentemplate-Einträge mit der ID 0. Damit geht dann natürlich die Reorganisation nicht.

Der Fehler ist gefixt. In diesem Fall wird, wenn verfügbar, das aktuell in der Seite gesetzte Seitentemplate verwendet (und nicht das in den Produkten hinterlegte).

FYI : Das war gar kein Fehler. Das Ding hat nur genau gemacht, was es sollte : Nämlich die Produkte des Dokumentes und die in den Produkten hinterlegten Seitentemplates sammeln. Die Produkte hatten aber überhaupt keine Info über ein Seitentemplate. Das ist immer dann so, wenn Produkte manuell (also nicht über den Seitenaufbau) platziert werden - also eigentlich ziemlich häufig.

Dass trotzdem oft ein gültiges Seitentemplate in der Liste auftauchte, lag an einem - und jetzt wirklich - Fehler in den Plugins : Spätestens, wenn ein Template eingesetzt wird, sollten dort die Seitentemplate-Infos entfernt werden. Das wurde bisher nicht gemacht. Und da man meist mit den gleichen Seitentemplates arbeitet, sah alles irgendwie richtig aus, war es aber nicht.

24.05.2012
Bug 2874 - Tabellenaufbau - Reihenfolge von Aufbau neuer Spalten/Zeilen

Die Reihenfolge, in der eine Tabellenzelle neue Spalten und Zeilen anlegt, scheint intern festgelegt zu sein : Zuerst werden die Spalten aufgebaut, dann die Zeilen. Leider kann es passieren, dass man mit dieser Reihenfolge nicht zurecht kommt. Dann müssen erst die Zeilen und danach die Spalten generiert werden, weil erst aus den Zeilen hervorgeht, welche Spalten benötigt werden.

Im ersten Block der Palette "Tabellenmodul" (das ist der Block "Spalte kopieren") ist jetzt ein kleiner blauer Pfeil. Damit können die Blöcke "Spalte kopieren" und "Zeile kopieren" vertauscht werden. Diese Reihenfolge wird dann beim Aufbau der Tabelle verwendet.

    

Kleines Achtung : Der blaue Pfeil ist nicht sichtbar, wenn einer der Blöcke geschlossen ist.

24.05.2012
Bug 2872 - Können Seitentemplates auch für einen Spread definiert werden?

Produkte sollen in der Reihenfolge

    1 | 2
    3 | 4

auf einem Spread platziert werden. Geht das mit Seitentemplates?

Ja, das geht mit Einschränkungen. Dazu steht jetzt folg. in der Doku :

Seitentemplates können über einen ganzen Spread gehen. Wählen Sie dazu den Seitentyp Druckbogen in der Seitenelemente-Palette.

Für Spread-Templates gelten folgende Einschränkungen :

  • Es werden nur zweiseitige Spreads unterstützt.
  • Der Seitenaufbau muss auf einer linken Seite beginnen.
  • Elemente mit mehreren Produkten (1:N-Elemente) werden nicht unterstützt.
  • Zur Zeit können keine Fortsetzungstemplates verwendet werden.
23.05.2012
Bug 2871 - Seitentemplates über den Spread zeigen keine Elemente auf den Dokumentseiten

Hat mein ein Seitentemplate vom Typ "Doppelseite", werden in Seiten, die mit diesem Seitentemplate verknüpft sind, keine Elemente im Hintergrund gezeigt (Menü "Seitentemplate zeigen").

Das ist gefixt. Die Elemente werden jetzt gezeigt.

23.05.2012
Bug 2869 - Bild der Previewpalette einer InDesign®-Gruppe zuzuweisen führt zum Absturz von InDesign®

Wenn man (aus Versehen) eine Gruppe statt eines Bildes in der Gruppe selektiert hat und dann auf den orangenen Pfeil der Previewpalette klickt, um das Bild zuzuweisen, stürzt InDesign® ab. Es sollte statt dessen eine Fehlermeldung oder ein Hinweis kommen.

Bei dem Versuch, einer InDesign®-Gruppe ein Bild zuzuweisen, erscheint jetzt eine Warnung.

22.05.2012
Bug 2868 - Shift-Klick in der Produktrecherche verlinkt nicht alle Unterrahmen einer InDesign®-Gruppe

Ich habe ein Produkt als InDesign®-Gruppe aufgebaut. Wähle ich diese Gruppe aus, um sie mit Shift-Klick in ein Produkt mit einem anderen Produkt zu verlinken, werden nicht alle Unterrahmen neu verlinkt.

Man sieht den Effekt auch daran, dass in der Produktrecherche danach ZWEI Einträge ausgewählt sind, das alte UND das neue Produkt.

Merkwürdig daran ist, dass trotzdem alle Inhalte und Bilder richtig verknüpft und geladen werden.

Ja, das "Problem" tritt nur bei Rahmen auf, die keinen Platzhalter gesetzt haben. Wird so ein Rahmen ausgewählt, kann die Produktrecherche meist trotzdem das zugehörige Produkt auswählen - es wird einfach statt der Platzhalter-Info des Rahmens dessen Aufbau-Info ausgewertet. Und genau diese Info wurde bei Unterrahmen von InDesign®-Gruppen bisher nicht aktualisiert, wenn das Produkt neu verlinkt wurde.

Der Fehler wäre ein reines Anzeige-Problem, wenn diese Info nicht auch bei Seitenreorganisationen verwendet werden würde.

Das Problem ist jetzt gefixt.

22.05.2012
Bug 2867 - 1:N-Seitenelemente mit spaltenweisem Aufbau führen zu falscher Reihenfolge in "Produkte des Dokumentes"

1:N-Seitenelemente, die ihren Inhalt spaltenweise anordnen sollen, machen das auch sehr schön und richtig. Leider werden die aufgebauten Produkte aber in der Palette "Produkte des Dokumentes" in falscher Reihenfolge gezeigt (nämlich zeilenweise). Was dann natürlich zu Fehlern bei der Reorganisation führt.

Der Fehler ist gefixt.

22.05.2012
Bug 2851 - InDesign® stürzt bei table::merge() ab

Wenn durch den merge-Aufruf eine Zelle aus dem Tabellenkopf mit einer aus dem Tabellenkörper verbunden werden soll, dann stürzt InDesign® einfach ab.

Wäre schön, wenn das geprüft werden könnte und die Methode dann einen Fehlercode zurückgibt.

table::merge testet jetzt, ob die Bereiche ganz innerhalb der Kopf-, Körper-, oder Fusszeilen der Tabelle liegen. Ist das nicht der Fall wird der Fehler tableTextModelErr (= 3) zurückgegeben.

22.05.2012
Bug 2866 - frame::duplicate und Cometgruppen

Rahmen die mit frame::duplicate erzeugt werden, bilden merkwürdige Comet-Untergruppen wenn der Originalrahmen einer Cometgruppe angehört hat.

Die Funktion hat jetzt einen weiteren Parameter mit dem gesteuert werden kann, ob der neue Rahmen automatisch der gleichen Cometgruppe zugewiesen werden soll, zu der auch das Original gehört oder nicht. Wird der Rahmen in ein anderes Dokument dupliziert, geht die Cometgruppen-Zugehörigkeit unabhängig von dieser Einstellung verloren.

22.05.2012
Bug 2857 - Cometgruppen über das Indesign Interface

Beim Auflösen von Cometgruppen über das Kontextmenü werden nur die Hauptgruppen aufgelöst. Untergruppen bleiben erhalten.

Das Menü

    Kontextmenü > Comet-Gruppen > Auflösen

löst jetzt auch alle Untergruppen auf. Das neue Menü

    Kontextmenü > Comet-Gruppen > Auflösen der Hauptgruppe

löst nur die Hauptgruppe auf.

22.05.2012
Bug 2865 - frame::duplicate mit page=0 führt zum Absturz von InDesign®

Das ist in der Doku falsch beschrieben : Nicht die 0 als Seitennummer, sondern die -1 bewirkt, dass der Rahmen auf die gleiche Seite dupliziert wird.

Ich habe zusätzlich geändert, dass ab v3.3 R3005 alle Seitennummern <= 0 den Rahmen auf die gleiche Seite wie das Original duplizieren.

22.05.2012
Bug 2859 - Alt-Reorganisation räumt nicht das gesamte Dokument auf

Im gelben Zettel des Reorg-Buttons steht

    ALT : Reorganize the complete document

Das wird aber nicht getan. Es wird offenbar nur die erste Seite aufgeräumt.

Der gelbe Zettel der englischen Version ist leider falsch. Richtig muss es heissen :

  • ALT : Reorganize current page only
  • SHIFT : Reorganize complete document
  • CTRL : (Press key right before releasing the mouse!) Load contents of close friends too
  • CMD : Use the page templates stored in the products resp. document pages

Das ist jetzt gefixt.

Bug 2858 - Aufräumen der aktuellen Seite (ALT+Aufräumen) erzeugt doppelte Produkte

Wenn ich mit gehaltener Alt-Taste das Aufräumen-Button drücke, werden Produkte verdoppelt.

Ja, das passiert immer dann, wenn auf der aktuellen Seite noch Platz für Produkte ist. Wenn für diese Verschiebung das Template getauscht werden muss, entsteht eine zweite Produktgruppe. Dieses Produkt hat, weil Cometgruppen-IDs aufräum-resistent sein müssen, zudem die gleiche Cometgruppen-ID wie die Originale. Die Originale bleiben im Dokument erhalten, weil deren Seiten gar nicht aufgeräumt werden sollen.

Ein doofes Verhalten. Ich habe das geändert : Jetzt werden beim Aufräumen einer Seite nur noch Produkte aufgeräumt, die auch vorher schon auf dieser Seite lagen.

16.05.2012
Bug 2856 - FrontRow zeigt sich unbeeindruckt von "Aktionen und Palettenscripte zurücksetzen"

Nur ne Kleinigkeit, die man aber so nicht erwartet: Wenn ich einen Button für ein Palettenscript in FrontRow anlege, setzt der Befehl "Aktionen und Palettenscripte zurücksetzen" den Cache zwar für das Palettenscript zurück. Ein Klick auf FrontRow führt aber noch immer den alten Stand des Palettenscriptes aus, während der Aufruf über die Produktrecherche den neuen Stand ausführt.

Geht jetzt. Umgedreht hat es schon funktioniert. Das Zurücksetzen-Button muss man dabei nicht anwenden. Die änderung wird direkt beim Sichern im Editor-Fenster gemacht.

15.05.2012
Bug 2842 - textmodel::gettext und frame::gettext exportieren keine InDesign®-Variablen

Leider funktioniert das Ersetzen von Variablen im Text nicht für Seitennummern und Abschnittsmarken, die mit dem Menü

    Schrift > Sonderzeichen einfügen > Marken

eingefügt werden.

Das geht jetzt. Auch Fussnoten-Nummern werden jetzt richtig weitergegeben.

15.05.2012
R3000

Final

11.05.2012

Bug 2854 - frame::size Doku fehlt?

Die Dokumentation der Funktion frame::size scheint zu fehlen?

Ist gemacht : frame::size

11.05.2012
Bug 2853 - TaggedText, der aussschliesslich aus Inlines besteht, führt zum Absturz von InDesign®

Fügt man (z.B. mit textmodel::replace) einen TaggedText in Dokument ein, der ausschlieeslich aus Inlines besteht und keinen direkten Text enthält, stürzt InDesign® ab.

Der Fehler ist gefixt.

WORKAROUND : Abschalten der Option "Zusatzmodule > Comet > Platzhalter aus TaggedText anlegen" verhindert den Absturz.

11.05.2012
R2909

Hotfix

08.05.2012

Bug 2731 - broaden_to_tablecell? // allg. Fit-Frame-Verwirrung

table::broaden_to_frame verbreitert Tabellen so, dass sie genau die Breite des umgebenden Textrahmens bekommen. Ist die Tabelle aber Untertabelle einer anderen Tabelle, ist das ja nicht richtig. In diesem Fall sollte die Tabelle eigentlich auf die Breite der umgebenden Zelle gebraicht werden, oder?

Eine Funktion table::broaden_to_cell oder so ist dafür nicht nötig. table::broaden_to_frame schaut jetzt, ob die Tabelle eine Untertabelle einer anderen Tabelle ist. Ist das so, wird statt des Textrahmens die Tabellenzelle (minus den Zell-Inset) als Begrenzung verwendet. Damit ist das Problem gelöst.

Hier ein Beispielskript. Die Schleife über die Tabellen funktioniert, weil die Tabellen für table::get nach ihren Textpositionen sortiert sind :

int main ()
{
	Table		T		= table::alloc ();
	int			t		= 0;
	
	for (t = 0; t < table::count (gFrame); t++)
	{
		table::get (T, gFrame, t);
		table::broaden_to_frame (T, -1);
	}
	
	return 0;
}

    

08.05.2012

Bug 2849 - frame:: remove_masteritem_override führt zum Absturz

Der Fehler ist gefix, Beschreibung siehe Kommentar 42 von Bug 2733 (oder hier eine Zeile weiter unten).

08.05.2012
Bug 2733 (die Zweite) - Aufbau über Seitentemplates: Musterseitenelemente werden übernommen

Der Aufbau stürzt immer noch in dem Moment ab, in dem eine neue Seite generiert werden soll.

Ja, leider. Ich kann es reproduzieren. Der Unterschied zwischen meinem bisherigen Test und dem aktuellen Test ist : Bisher hatte ich auf Seite 1 mit dem Aufbau begonnen. Das funktioniert. Beginnt man den Aufbau auf Seite 2 - Crash.

Ich hab den Fehler gefunden!

Es ist das gleiche Problem wie in Bug 2829 : Ein Funktion der InDesign®-API benötigt eine Rahmenreferenz. Aber der Aufruf der Funktion will eine LISTE von Rahmenreferenzen - und von der dann die ADRESSE. Ist ja machbar :

    api_function (&UIDList (frameRef));

Das wirklich Hinterhältige ist : Adobe löscht die übergebene Liste am Ende der Funktion. Das ist natürlich mit dem obigen Aufruf fatal. Er muss so lauten :

    api_function (new UIDList (frameRef));

Bei Bug 2829 war (zwar versteckt, aber vorhanden) ein Hinweis in den API-Headern. Bei der hier verwendeten Funktion ist noch nicht mal beschrieben, welche Daten der interne Aufruf überhaupt braucht. Na gut, jetzt gehts jedenfalls.

Ich hab das "Critical" gestellt, weil die fehlerhafte Stelle bei jeder neuen Seite des Produktaufbaus aufgerufen wird, also ziemlich häufig. Ein Wunder, dass der Fehler nicht häufiger zugeschlagen hat. So ist das halt mit Fehler, die den Arbeitsspeicher kaputt schreiben.

08.05.2012
Bug 2848 - Funktion zum Beseitigen von Übersatz

Es ist sicher nicht schwer, ein Skript zu machen, das Textübersatz durch anlegen weiterer Rahmen auf neuen Seiten beseitigt. Schwieriger wird es aber, wenn ich dafür die Textrahmen des definierten Seitentemplates verwenden will.

Dafür gibt es jetzt die Funktion textmodel::solve_overset. Sie beseitigt den Übersatz jeweils durch Anlegen weiterer Textrahmen und (mglw.) neuen Seiten. Drei Methoden sind verfügbar :

  1. Kopiere den letzten Rahmen der Textkette seitenfüllend auf eine neue Seite und verlinke den neuen Rahmen mit der Textkette.
  2. Kopiere den letzten Rahmen der Textkette mit gleicher Grösse und Position auf eine neue Seite und verlinke den neuen Rahmen mit der Textkette.
  3. Lege neue Textrahmen gemäss dem definierten Seitentemplate an Enthält das Seitentemplate keine Textelemente, bricht die Funktion mit Fehler pageTemplateEmptyErr (= 1271) ab. Ist kein Seitentemplate definiert, wird der Text mit Kopienen des letzten Rahmens der Textkette forgesetzt.
07.05.2012
R2890

Hotfix

03.05.2012

Bug 2847 - Skriptvariable gLen falsch

Offenbar enthält die Skriptvariable gLen einen falschen Wert. gLen hat immer den Wert von gStart.

Der Fehler ist seit Hotfix R2856 (13.04.2012) in den Plugins. Merkwürdig, dass das noch keiner gemerkt hat. Der Fehler ist jetzt gefixt.

03.05.2012
Bug 2846 - Vom BuildHelper-Skript eingefügte Rahmen werden bei Reorganisationen überdeckt

Fügt ein Buildhelper-Skript bei Reorganisationen zusätzliche Rahmen ins Dokument ein, werden diese Rahmen von den nachfolgenden Produkten nicht "gesehen" und überlagert. Das tritt nur innerhalb von 1:N-Elementen auf.

Der Fehler ist gefixt.

03.05.2012
Bug 2710 - DigitalPublishingSuite: Platzhalteraktualisierung in Multistateobjekten

Mir ist gerade aufgefallen, dass man Platzhalter, die in einem MSO sitzen nur dann aktualisieren kann (Aufgaben-Palette), wenn der entsprechende Status ausgewählt ist. Nehmen wir an, wir haben eine kleine Montageanleitung, also eine MSO mit drei Anleitungsschritten. (Bildplatzhalter + Textplatzhalter)

Wenn sich jetzt im 2. und 3. Objektstatus etwas gegenüber der Datenquelle ändern würde und der Rahmen aktuell nur den 1. Objektstatus aktiv hat, so sieht der Comet die änderung nicht. Das Plugin kennt wahrscheinlich so erstmal keine MSOs und zieht nur den aktiven Status heran.

Gerade noch mal ausprobiert und es funktioniert doch schon! Comet verhält sich genau so, wie ich es mir gewünscht habe.

Allerdings nur bei den klassischen Multistateobjekten. Bei Schaltflächen - die ja durchaus auch per Platzhalter befüllt werden könnten - funktioniert es leider nicht. Zugegeben: Jetzt ist der FeatureRequest um einiges spezieller geworden, aber immer noch nicht abwägig. :-)

Das funktioniert jetzt auch.

03.05.2012
Bug 2845 - Einfügen von Produkten mit placeTemplate ignoriert die Gestaltungsregeln

Werden mit dem Javascript-Befehl placeTemplate Produkte platziert, werden die Gestaltungsregeln der Templates nicht ausgeführt.

Das war bis R2856 (13.04.2012) okay und ist beim Fix von Bug 2791 passiert. Der Fehler ist korrigiert.

02.05.2012
Bug 2844 - Tauschen von Produkt-Templates funktioniert nicht, wenn Produkte über mehrere Seiten eines Spreads gehen

Liegen die Rahmen eines Produktes auf mehreren Seiten eines Spreads, funktioniert der Template-Tausch (Shift-Alt-Klick in das Link-Button der Produktrecherche) nicht. Das Produkt verschwindet einfach.

Auch wenn das Produkt ganz ausserhalb aller Seiten im Arbeitsbereich liegt, kann das Template nicht getauscht werden.

Im Logfile sollte dazu eigentlich eine Nachricht der Form

    # Pageitem 523 will leave the page and cannot insert into the document : 
    # --> Page (left, top, right, bottom) = 0.000000, 0.000000, 595.275574, 841.889771
    # --> Pageitem (left, top) = -68.976379, 337.072845

stehen. Hintergrund ist, dass der Template-Tausch als Unterfunktion des Seitenaufbaus testet, ob ein Produkt (noch) auf die aktuelle Seite passt. Schneidet die Cometgruppe zwei Seiten eines Spreads oder liegt ganz ausserhalb der Seiten, tut sie das nicht.

Das ist natürlich nicht das Verhalten, das man vom Template-Tausch erwartet. Ich habe das deshalb so geändert, dass in diesem Fall die Prüfung gegen die aktuelle Seite entfällt. Damit sollte der Template-Tausch auch in den Grauzonen funktionieren.

ACHTUNG : Als Einfügepunkt wird immer die linke obere Ecke der BoundingBox um die Rahmen der gesamten Cometgruppe verwendet.

02.05.2012
Bug 2843 - app.comet.getCometGroups liefert kein Ergebnis, das Javascript bleibt stehen

Mit der Javascript-Anweisung

    app.comet.getCometGroups

sollen die Cometgruppen der Spreads eines Dokumentes geholt werden. Das klapptin den meisten Fällen, bei einigen Spreads bleibt das Skript aber stehen.

Das sind die Spreads, mit vielen Inhalten. Hier wird ein Ergebis, das grösser als 32kB ist.

Leider ist es so, dass InDesign® abstürzen kann, wenn Funkionen, die über die CORBA-Schnittstelle gerufen werden können, lange Ergebnisse liefern. Wir können da so nichts machen und haben die Ergebnis-Länge deshalb auf 32 kB beschränkt. Sie benutzen die CORBA-Schnittstelle gar nicht? Bei Ihnen könnte der Fehler also gar nicht auftreten? Leider ist es aber zweitens so, dass wir innerhalb der Plugins gar nicht mehr sehen können, woher der Aufruf kam - so dass die Einschränkung also leider für alle InDesign® Server gelten muss.

Lösung

  1. Wenn Sie statt Scope.SPREAD Scope.PAGE verwenden, werden die Ausgaben natürlich kleiner. Aber das hilft wahrscheinlich nicht lange.
  2. Funktionen wie getCometGroups haben alle den Parameter tmpPath. Der Parameter ist genau für diese Situation gedacht. Sie können hier den Pfad einer temporären Datei angegeben. Ist das Ergebnis länger als 32kB, wird es automatisch in diese Datei geschrieben. Ist das Ergebnis des Aufrufes undefined, muss die XML aus der angegebenen temporären Datei gelesen werden. So machen wir das innerhalb unserer Komponenten.

Zusätzlich kann jetzt die Threashold-Grösse beeinflusst werden.

ACHTUNG : Das sollte nur dann gemacht werden, wenn sichergestellt ist, dass die Aufrufe nicht per CORBA-Schnittstelle weitergegeben werden (wie das z.B. im CometServer gemacht werden muss.).

  1. Statt eines Pfades auf eine temp. Datei kann der Parameter tmpPath auch die Angabe threshold=your_local_threshold enthalten. (-1 für beliebige Länge).
  2. InDesign® Server kann mit der Option -cometthreshold your_global_threshold (-1 für beliebig) gestartet werden.
02.05.2012
Bug 2842 - textmodel::gettext und frame::gettext exportieren keine InDesign®-Variablen

Enthält ein Text InDesign®-Variablen, werden diese nicht mit exportiert, wenn man den reinen Text (z.B. mit kExportPlain) exportiert. Statt dessen enthält der exportierte String an der Stelle der Variable ein komisches unsichtbares Zeichen.

Das ist so gesehen auch völlig richtig. Die Variablen werden ja erst zur Render-Zeit berechnet und dann angezeigt. Ihre aktuellen Werte sind NICHT Teil des Textes.

Damit die aktuellen Werte trotzdem mit exportiert werden können, gibt es eine Reihe neuer Exportformate :

kExportPlusPlain
kExportPlusUnitext
kExportPlusXUnitext
kExportPlusXMLUnitext
kExportPlusPlainNoTypografics
kExportPlusHTML

Die ~Plus~-Formate ersetzen Variablen im Text automatisch durch deren aktuelle Werte.

02.05.2012
Bug 2840 - Paletten Front row und Produkte des Dokuments zeigen kein Palettenmenü

Die Paletten Front row und Produkte des Dokuments zeigen kein Palettenmenü; wenn oben rechts auf das Icon geklickt wird, passiert nichts. Es sollte doch zumindest der About... -Eintrag angezeigt werden, oder?

Die Paletten haben auch keine zuätzlichen Menüs, die hier gezeigt werden müssten. Und das About ist auch nicht InDesign®-Standard. Ich habs trotzdem reingemacht.

02.05.2012
Bug 2841 - LICENSE GRACE PERIOD ... 27 168916116 remaining

Sind das Tage? Dann wären wir in der Tat sehr großzügig. Das sind mehr als 460.000 Jahre.

Ist gefixt.

02.05.2012

R2882

Hotfix

25.04.2012

Bug 2828 - Tabellenmodul: beim selektiven Aufbau werden IDs nicht an Platzhalter übergeben

Mit Begeisterung habe ich festgestellt, dass es mit dem Befehl "table::build(T,0,1)" auch möglich ist, selektiv Teile einer Tabelle neu aufzubauen, z.B. nur die Artikel, oder nur die dynamischen Attribute, oder nur die Staffelspalten. Leider scheint in dieser Funktion noch ein Bug zu stecken: beim Neuzeichnen werden die IDs zwar an die Zellen geschrieben, aber nicht an die Platzhalter, so dass die einzelnen neuen Zeilen/Spalten nur den kopierten Inhalt der ersten Zeile/Spalte enthalten.

Ist gefixt.

Aber Achtung

Wie beim vollständigen Aufbau werden auch hier die von der Zelle eingefügten Zeilen u/o Spalten gelöscht und danach neu eingefügt. Danach werden die Cell-IDs neuberechnet und ALLE Zellen der neuen Zeilen/Spalten neu geladen.

Wird bspw. die Zelle [Zeile 2, Spalte 4] neu aufgebaut, werden auch die Zellen [Zeile 2, Spalte 1], [Zeile 2, Spalte 2] und [Zeile 2, Spalte 3] neu geladen.

TIPP

Man kan den teilweisen Aufbau auch in der Palette testen. Dazu die Zelle auswählen, die aufgebaut werden und dann das Aufbau-Button mit gehaltener ALT-Taste drücken.

25.04.2012
Bug 2838 - Verlust von Arbeitsspeicher

Beim Aufbau großer Tabellen oder allgemein beim Laden vieler Platzhalt scheint Arbeitsspeicher verloren zu gehen.

Durch die Dokumentänderungen verbraucht InDesign® natürlich selbst schon mal etwas mehr Speicher. Weiterer Speicher wird für die Undos benötigt - alle änderungen können ja wieder rückgängig gemacht werden.

Auffällig ist aber, dass der Speicherverbrauch auch dann nicht wieder (vollständig) zurückgeht, wenn das geänderte Dokument geschlossen wird.

Nach einigen änderungen im Quellcode konnten wir den Speicherverbrauch jetzt drastisch senken.

25.04.2012
Bug 2837 - Reorganisations-Fehler "Es wurde kein Seitenelement gefunden, dass groß genug für das Produkt ist."

Die Reorganisation eines Dokumentes wird immer mit der Fehlermeldung :

    Es wurde kein Seitenelement gefunden, dass groß genug für das Produkt ist.

abgebrochen. Die Produkte konnten aber einwandfrei aufgebaut werden. Was geht da schief?

Dieser Fehler tritt immer dann auf, wenn die den Gestaltungsregeln zur Reorganisation eines Textrahmens mit Fortsetzung der Rahmen zu groß gemacht wird - z.B. mit dem allseits beliebten frame::fit. Dann wird dieser Textrahmen mglw. seehr hoch - und passt dann natürlich tatsächlich nicht.

Lösung (projektseitig)

Die entsprechende Regel entfernen. Oder, wenn das nicht möglich ist, die Grössenänderung entfernen. Oder, wenn auch das nicht möglich ist, die Grössenänderung rückgängig machen.

Fakt ist jedenfalls, mit dem Setzen der Eigenschaft "Rahmen fortsetzen" wird die Aufsicht über die Rahmenhöhe an die Reorganistaion übergeben.

Beim Produktaufbau darf die Rahmenhöhe geändert werden. Hier muss sie das u.U. auch - wenn nämlich das Produkt mit Drag and Drop einfach platziert wird (ohne Produktaufbau oder gehaltener Cmd-Taste). In diesem Fall gibt es ja gar keineFortsetzung - und Übersatz soll es auch nicht geben. (Beim ProduktAUFBAU werden Höhenänderungen durch Ladenskripte und/oder Gestaltungsreglen automatisch wieder zurückgesetzt auf die Höhe des Rahmens wie sie im Template definiert ist.)

Lösung (Plug-In-seitig)

Auch bei Reorganisationen werden änderungen der Rahmenhöhe, die in Ladenskripten u/o Gestaltungsregeln gemacht werden, wieder zurückgesetzt auf die im Template definierte Rahmenhöhe.

25.04.2012
Bug 2836 - Rahmen von Fortsetzungstemplates werden nicht geladen

Nicht alle Rahmen von Fortsetzungstemplates werden beim Produktaufbau geladen. Alle Rahmen, zu denen ein Rahmen gleicher Kennung im Haupttemplate existiert, werden mit einer Meldung wie

    # Suppress loading frame 325, got a promise by label 'B'.

vom Laden ausgeschlossen.

Bis R2842 hat das funktioniert. Releases danach funktionieren nicht mehr richtig.

Ooh Schreck. Das Problem ist behoben.

24.04.2012
Bug 2835 - Absturz bei Reorganisation in "# Executing layout rule 'Apply magnets'"

Die Reorganisation stürzt ab nach der Zeile "# Executing layout rule 'Apply magnets'". Die Meldung mit "... done" kommt nicht mehr.

Der Fehler konnte bei der automatischen Reparatur von Magnetverweisen entstehen und jetzt gefixt.

23.04.2012
Bug 2834 - Ausgewählte Einträge der Palette "Gestaltungsregeln" unter Windows schlecht lesbar

Unter Windows ist die Hintergrundfarbe der aktuellen Auswahl meist dunkelblau. Den schwarzen Text in der Palette "Gestaltungsregeln" kann man dann praktisch nicht mehr lesen.

Unter Windows wird für die ausgewählten Einträge der Palette "Gestaltungsregeln" jetzt weisse Schrift verwendet.

23.04.2012
Bug 2833 - Ausgewählte Einträge der Palette "Template-Verhalten" unter Windows schlecht lesbar

Unter Windows ist die Hintergrundfarbe der aktuellen Auswahl meist dunkelblau. Den schwarzen Text in der Palette "Template-Verhalten" kann man dann praktisch nicht mehr lesen.

Unter Windows wird für die ausgewählten Einträge der Palette "Template-Verhalten" jetzt weisse Schrift verwendet.

23.04.2012
Bug 2832 - Einfügen in 1:N-Elemente erzeugt großen Reorganisations-Aufwand

Fügt man (z.B. durch Drag and Drop) neue Produkte in ein 1:N-Seitenelement ein, wird, obwohl man sich ziemlich weit hinten im Dokument befindent, unter Umständen das gesamte Dokument reorganisert. Was geht da vor?

Das Problem besteht darin, dass das Seitenelement mit der Fortsetzung eines Produktes beginnen kann. Diese Rahmen müssen natürlich auch mit aufgeräumt werden. In diesem Fall wird dann rückwärts im nächsten Seitenelement gesucht, ob dieses Element vielleicht mit einem Produkt BEGINNT. Usw., und schnell ist man am Anfang des Dokumentes. Das passiert da.

Natürlich ist das ein bisschen viel Aufwand. Die Rahmen der Fortsetzung können auch ohne Neuladen richtig platziert werden. Für uns ein bisschen aufwendig - für alle anderen jetzt weniger.

ACHTUNG

Das ist eine grössere änderung. Die Fortsetzungsrahmen, mit denen ein Element beginnt, werden jetzt lediglich neu positioniert. Danach wird das Element wie bisher weiter gefüllt bis es voll ist. Danach werden die Produktrahmen im Element justiert, wie es das Element will (linksbündig, zentriert, Keil, ...).

Hier eine kurze Erläuterung von altem und neuem Verfahren :

Grüne Rahmen sind Haupttemplates. Der orange Rahmen ist eine Fortsetzung.

    

Wird jetzt zwischen beide Produkte ein neues Produkt platziert, geschieht folgendes :

  1. (ALT) : Gehe zurück bis einem Seitenelement, das mit einem Produkt beginnt. Im ungünstigsten Fall ist das das erste Seitenelement der ersten Seite. Ab hier wird aufgeräumt. Für Fortsetzungen heisst das : Diese Rahmen werden gelöscht und die Fortsetzungen neu erzeugt.
  2. (NEU) :
    1. Platziere den orangen Rahmen links oben im Seitenelement. 
    2. Füge das neue Produkt (mit dem im Seitenelement festgelegten Minimalabstand) ein.
    3. Passt der grüne Rahmen der rechten Seite noch ins Element?
      • Nein : Produktrahmen des Elementes justieren (Hier zentrieren)
      • Ja : Produkt verschieben bis Minimalabstand.
    1. WEITER MIT DER REORGANISATION

Das neue Verfahren ist also mit viel weniger Aufwand zum Laden der Produkte verbunden.

23.04.2012
Bug 2733 - Aufbau über Seitentemplates: Musterseitenelemente werden übernommen

Der Fix von Bug 2733 (2012-02-21 08:16:24) führt jetzt leider unter Windows zum Absturz.

Das ist gefixt.

23.04.2012
Bug 2831 - Fehler beim Produktaufbau mit der Option "Bestende Seitentemplates bevorzugen"

Macht man einen Produktaufbau der neue Seiten anlegen soll und hat dabei die Option "Bestehende Seiten und Seitentemplates bevorzugen", wird ein falsches Seitentemplate gewählt, wenn

  1. der Aufbau einen Seitentemplate-Wechsel enthält
  2. und die neue Seite noch kein Seitentemplate hat.

Dann wird für die erste Seite nach dem Seitentemplate-Wechsel immer noch das alte Seitentemplate verwendet. Erst ab der zweiten Seite nach dem Wechsel wird dann das richtige Seitentemplate verwendet.

Alles klar? Wie auch immer, wenn mans braucht ist der Fehler natürlich misslich. Er ist behoben.

23.04.2012
Bug 2830 - Fehlerhafte Flächenberechnung von frame::get_visible_area, wenn der Seitenanschnitt ignoriert werden soll

Soll die Funktion frame::get_visible_area den Seitenanschnitt ignorieren (das Flag kCheckMargins ist nicht gesetzt), wird bei Rahmen, die über mehrere Seiten eines Spread gehen, eine falsche Fläche berechnet. Es werde immer die Flächenteile der Seite des Rahmens verwendet.

Der Fehler betrifft auch die folg. Funktionen :

    document::get_visible_areas
    frame::get_fill_level
    Die Werte der Elemente size-absolute und size_relative der Placeholder-XML

Der Fehler ist gefixt.

23.04.2012
Bug 2829 - Absturz bei Reorganisationen nach "Fullfill promise : Copy image of frame x into frame y"

Dokumentreorganisationen stürzen häufig ab. Die letzte Meldung im Logfile :

# Fullfill promise : Copy image of frame x into frame y

Der Fehler tritt nur unter Windows auf. Auf dem Mac wird das selbe Dokument fehlerfrei reorganisiert.

Der Fehler ist gefixt.

FYI

Das Problem wurde durch den fehlerhaften Aufruf einer Funktion der InDesign®-API verursacht. Intern werden dort letztlich alle Dokument-änderungen durch sogenannte Commands ausgeführt. Diese Commands müssen natürlich vorher mit den nötigen Eingaben versorgt werden. Und dabei ist Adobe ziemlich inkonsequent. Rahmen müssen meist, aber nicht immer, über eine Rahmenliste übergeben werden. Die Liste kann manchmal direkt übergeben werden. Manchmal wird aber auch ein Zeiger auf eine Liste gefordert. Und in einigen Fällen (aber wiederum nicht in allen), löscht das Command nach der Ausführung dann diesen Zeiger. Dann ist es natürlich doof, wenn man die ADRESSE einer Liste übergeben hat. Man muss an dieser schon erstmal ein neues Listenobjekt allokieren, das dann weitergegeben wird. Aber das muss man erst mal rausfinden. In der "Doku" zur API steht das selbstverständlich nicht.

23.04.2012

R2856

Hotfix

13.04.2012

Bug 2827 - Textformat kExportRTF funktioniert nicht unter Windows

Der Export von Text im RTF-Format (kExportRTF) funktioniert unter Windows leider nicht.

Der Fehler ist gefixt.

13.04.2012
Bug 2826 - textmodel::get_fontsize() setzt attrLen immer auf 1

Egal, wie lang der Abschnitt in der Größe auch sein mag: der Parameter liefert immer 1.

Der Fehler ist gefixt.

13.04.2012
Bug 2825 - document::save tut nichts

Ein Palettenskript öffnet ein Dokument und fügt dort einige Rahmen ein. Danach wird das Dokument gesichert und wieder geschlossen. Aber leider sind die änderungen danach nicht im Dokument enthalten.

Das Problem wurde durch den Fix von Bug 2510 ausgelöst und ist jetzt behoben. Das Problem bestand seit v3.3 R2636 (6. Sep 2011) und hat nichts mit der CS-Version zu tun. Es tritt in allen CS-Versionen auf.

FYI

Für Bug 2510 wurden die Aktionen, die ein Palettenskript auslöst in eine sog. CommandSequence eingeschlossen. Die ist dann beim Sichern innerhalb des Skriptes offen und verhindert das Sichern des Dokumentes. Der gleiche Fehler trat auch bei document::close mit automatischem Sichern auf.

13.04.2012
Bug 2824 - Transformation von Rahmenlisten

Kann ich Rahmenlisten skalieren, drehen und verzerren. Das mit den einzelnen Rahmen ist sehr aufwendig.

Das glaub ich, dass das aufwendig ist. Mit den Befehlen

   itemlist::scale
   itemlist::rotate
   itemlist::skew

dagegen ist es ganz einfach.

12.04.2012
Bug 2823 - Duplizieren von Rahmenlisten Kann ich, analog zu frame::duplicate auch ganze Rahmenlisten duplizieren - und das möglichst zwischen verschiedenen Dokumenten?

Ja, das geht jetzt:

    itemlist::duplicate
12.04.2012
Bug 2822 - Erzeugen einer Dokument-Referenz auf ein geöffnetes Dokument

Eine Reihe von Funktionen erwarten Parameter, die eine Dokumentreferenz enthalten. Wie bekomme ich denn so eine ohne document::front oder document::current?

Mit

    document::alloc (path)

kann jetzt zu jedem geöffneten Dokument dessen Referenz geholt werden.

12.04.2012
Bug 2821 - Funktion zum Ermitteln der geöffneten Dokumente

Kann man irgendwie rauskriegen, welche Dokumente gerade geöffnet sind?

Mit den neuen Skriptbefehlen

    document::count
    document::get_nth

geht das jetzt.

12.04.2012
Bug 2820 - Funktion zum Skalieren von Rahmen fehlt

Es gibt Funktionen zum Drehen, Verschieben, Zerren von Rahmen. Aber zum Skalieren gibt es keine?

Doch gibt es. Nur die Doku hat gefehlt. Ist jetzt gemacht.

12.04.2012
Bug 2819 - val (str) kann nur Dezimalzahlen-Strings in Zahlen umwandeln

Schön wäre es ja, wenn auch Hexzahlen gingen, z.B. val ("0xFF").

Das geht jetzt. Es werden Hex- und Oktalzahlen unterstützt. Hexzahlen werden am führenden "0x" erkannt, Oktalzahlen beginnen mit einer 0. Die Aufrufe

    val ("255");
    val ("0xff");
    val ("0xFF");
    val ("0xFFpaul");
    val ("0377");

geben allesamt den int-Wert 255 zurück.

12.04.2012
Bug 2818 - Neu gedropte Produkte haben falsche Rahmenauswahl

Lässt man ein Produkt mit Drag and Drop in ein Dokument fallen, werden danach die neu angelegten Produktrahmen ausgewählt. Das funktioniert. Aber wenn das Prudukt Multistate-Objekte enthält, sind statt des Multistates die einzelnen Stati ausgewählt. Wenn man jetzt die Rahmen noch ein wenig verschieben will, schlägt InDesign® Krach.

Der Fehler ist gefixt.

12.04.2012
Bug 2817 - Alt-Drop von Produkten fügt das komplette Produkt ein (und nicht nur das Template)

An dem gelben Hilfezettel der Produkte steht, dass beim Drag and Drop bei gehaltener Alt-Taste nur das Template eingefügt wird (und nicht geladen wird.) Das scheint nicht so zu sein. Die Produkte werden auch jedesmal geladen.

Ist gefixt.

11.04.2012
Bug 2816 - Reader-Plugins können Platzhalter nicht sichtbar machen

Mit den Reader-Plugins kann leider die Sichtbarkeit von Platzhaltern nicht geändert werden - die entsprechenden Menüs fehlen (Kontextmenü, Menü "Ansicht").

Platzhalter sind prinzipiell aber sichtbar. Sie müssen nur vorher in einer Vollversion sichtbar gemacht worden sein, dann sind sie auch im Reader sichtbar.

Der Fehler ist gefixt.

11.04.2012
Bug 2804 - <placeholderID> in wiederholenden Elementen

Bei der Action zum Laden der Objekte eines Multiframe-Platzhalters kann man anscheinend nicht die Tags mit dem Hinweis "Nur in Platzhalteraktionen", z.B. "placeholderID" und "modified" verwenden.

Du hast Recht, unter ODBC/SOAP ging es nicht. Das ist gefixt. Ein Hotfix kommt demnächst.

10.04.2012
Bug 2815 - Platzhalterexport lässt nicht erkennen, ob ein Platzhalter im Übersatz ist

Beim Export der Platzhalter eines Dokumentes mit server::get_placeholders werden die Platzhalter des Dokumentes in eine XML-Struktur geschrieben. In dieser Struktur ist leider keine Information enthalten aus der ersichtlich ist, ob der Platzhalter (ganz oder teilweise) im Übersatz liegt. Diese Information wäre für das Whiteboard aber wichtig.

Die XML-Struktur enthält dazu jetzt das neue Attribut

    psc:placeholderlist.placeholders.placeholder.overset

Das Attribut kann folgende Werte haben

    no
    partiell
    yes

Achtung : Das Attribut ist auch bei Rahmenplatzhaltern definiert und kann auch dort die Werte yes/no haben. Rahmen mit overset="yes" sind auf alle Fälle Inlines (entweder direkt im Text oder in einer Tabellenzelle).

10.04.2012
Bug 2814 - Textplatzhalter in Rahmen mit Inset bekommen eine falsche X-Position im Platzhalterexport

Werden Platzhalter mit server::get_placeholders exportiert, bekommen alle Text-Platzhalter in Rahmen mit einem Textinset falsche X-Koordinaten. Die Koordinaten werden exakt um den Betrag des linken Insets nach links verschoben. Merkwürdigerweise werden die Y-Koordinaten aber nicht ebenfalls um den entsprechenden oberen Inset verschoben.

Es waren sowohl die Boundingboxes als auch die SVG-Koordinaten der Polygone um die Textplatzhalter verschoben. Der Fehler ist gefixt.

10.04.2012
Bug 2812 - Rahmen mit Magneten auf sich selbst führen zum Absturz von InDesig®n

Auf (bisher noch) ungeklärte Weise haben Rahmen des Dokumentes Magnete bekommen, die auf den gleichen Rahmen zeigen. Wenn jetzt Magnetabstände aktualisiert werden sollen, stürzt InDesign® ab. Im Logfile erscheinen ganz viele

    # Changing paste board size for move
    #    Frame bbox        (56.694047, 736180.57, 566.93027, 736292.32)
    #    Old paste board bbox    (-1247.2441, -733808.27, 1247.2441, 736078.82)
    #    New paste board size    (2494, 1.47e+06)
    #    New paste board (R)    (-1247.2441, -734031.77, 1247.2441, 736302.32)

Der Fehler ist gefixt.

ACHTUNG : Mglw. handelt es sich bei den fehlerhaften Magneten nicht um zusätzliche Verbindungen sondern um falsch restaurierte bestehende Verbindungen. Die originalen Verbindungen können aus den verfügbaren Daten der Magneten nicht wiederhergestellt werden. Im reparierten Dokument können also Magnetverbindungen fehlen.

ACHTUNG II : Das Problem der fehlerhaften Verbindungen (wenn es denn daran liegt) ist nur zeitaufwendig zu finden und kann erst im nächsten Release (3.3.1) gelöst werden.

10.04.2012
Bug 2813 - Platzhalter mehrfach im Whiteboard

Im Whiteboard werden Platzhalter doppelt angezeigt : Einmal an der richtigen Position und einmal um eine Seitenbreite verschoben. Die Platzhalter werden bei der Anzeige mit server::get_placeholders aus dem InDesign®-Dokument exportiert.

Das passiert immer dann, wenn die Rahmen einer Textverkettung über verscheidene Seiten eines Spreads verteilt sind. Dann werden die Platzhalter jeweils einmal pro Seite des Spreads exporiert - und dann im Whiteboard mehrfach angezeigt.

Der Fehler ist gefixt.

10.04.2012
Bug 2810 - Augen in der Aufgabenpalette werden nicht mitsortiert

Wenn ich eine oder mehrere Aufgaben in der Aufgabenpalette mit einem Auge versehe und dann neu sortiere, bleiben die Augen an ihrem Platz (statt an ihrer Aufgabe).

Lustig. Ist gefixt.

03.04.2012
Bug 2808 - probleme bei der Formatzuweisung in tagged text

Seit der indesign version 7.0.4 (bei 7.0 war das anders) wird beim aufruf eines absatzformats anstelle der korrekten zuweisung des bereits im dokument vorhandenen formats ein zusätzliches, gleichen namens mit dem zusatz -1 angelegt und zugewiesen. Das maskieren von sonderzeichen in den formatpfaden hat nichts gebracht.

Platzhalter liegt auf textrahmen, "%!TT<Parastyle:ABC><w2...>dummy</w2>..."

Nein, es ist alles okay, Du hast nur zeitgleich an den Importoptionen für Tagged-Text rumgespielt. Mach doch sowas nicht :-)

Wie kann man das wieder retten :

  1. Exportiere ein Stück Text als TaggedText in (z.B.) aaa.txt
  2. Apfel-D
  3. Im Dialog "Importoptionen zeigen" klicken
  4. aaa.txt auswählen
  5. ! Jetzt kommt der Dialog mit den Import-Optionen. Dort
        Textformatkonflikte lösen mit : Satzdateidefinition
        (Und NICHT : Tag-Dateidefinition)
  6. Okay
  7. ! Wichtig ! Nochmal Apfel-D
  8. Im Dialog "Importoptionen zeigen" wieder ausschalten
  9. Auswahl aaa.txt
  10. Okay
  11. Zweimal Undo
  12. Mir Einen ausgeben
03.04.2012
Bug 2809 - Template-Tausch funktioniert nicht, wenn das Produkt zu nah am unteren/rechten Seitenrand liegt

Liegt ein Produkt zu nah am rechten und/oder unteren Seitenrand funktioniert leider der Template-Tausch (z.B. mit Shift-Alt-Klick in die ersten Spalte eines Produktes) nicht. Man erhält stattdessen die Fehlermeldung

    # Pageitem N will leave the page and cannot insert into the document

Der Fehler ist gefixt.

03.04.2012
Bug 2807 - Rahmennummern zeigen" muss für jeden Rahmen einzeln rückgängig gemacht werden

Über das Kontext-Menü "Nägel und Magneten" kann man die Option "Rahmennummern anzeigen" einschalten. Fein. Aber wenn ich später mal Undo mache, werden auch diese Rahmennummern wieder ausgeblendet. Ist okay - aber dann wäre es schön, wenn das in EINEM Schritt geschehen würde.

Ist gefixt. Die Anzeige der Rahmennummern kann jetzt in einem Schritt rückgängig gemacht werden.

03.04.2012
Bug 2806 - Absturz bei getElements und Inline-Rahmen

Ich habe einen Text, der aus vier Inlines besteht, die jeweils durch ein Leerzeichen getrennt sind. Beim Erstellen der Elemente-XML (server::get_elements) stürzt InDesign® wiederholbar und sofort ab. Wenn der Rahmen aus dem Dokument entfernt wird, klappt alles.

Der Fehler ist behoben. (Ein kleiner aber wirkungsvoller Schreibfehler (Achtung Quelltext)) :

    skip = ownedList[i].fAt + ++numFrames;

Hier muss statt des '+' ein Semikolon stehen, schon gehts.

03.04.2012
Bug 2803 - Unsichtbare Notizen enthalten nach Reorganisationen falsche Seiten- und Spreadangaben

Nach Reorganisationen werden die Notizen des Dokumentes neu zugeordnet. Dabei gilt :

  • Gruppennotizen werden an die (mglw.) neue Gruppe gesetzt
  • Rahmennotizen, wenn nötig und möglich an den befreundeten Rahmen (Rahmen gleicher Kennung im neuen Template) angehangen

Das funktioniert mit sichtbaren Notizen. In Notizen, die bei der Reorganisation unsichtbar waren, stehen aber falsche Verweise auf Seiten und Spread, wenn sich die zugehörigen Rahmen oder Gruppen verschoben haben oder ausgetauscht wurden.

Nach der Reorganisation werden jetzt für alle Notizen des Dokumentes die RahmenUIDs, Seiten-, und Spread-Angaben aktualisiert. Der Fehler ist damit behoben.

30.03.2012
Bug 2802 - Nach Reorganisationen sind alle Comet-Notizen doppelt im Dokument

... und zwar einmal als sichtbare Notizen und einmal als unsichtbare Notizen. Versucht man dann, eine der unsichtbaren Notizen sichtbar zu machen, wird dieser Eintrag gelöscht.

Das ist immer dann passiert, wenn das Dokument vor der Reorganisation keine unsichtbaren Notizen enthielt und ist jetzt gefixt.

30.03.2012
Bug 2801 - Inhalte befreundeter Rahmen werden nicht immer übernommen

Wenn ich ein Dokument reorganisiere und ein Produkt muss dabei auf einer neuen Seite platziert werden und benötigt dafür ein anderes Template, können ja die Inhalte befreundeter Rahmen (Rahmen gleicher Kennung in altem und neuem Template) direkt übernommen werden. Das wird aber irgendwie nicht gemacht. Jedenfalls nicht immer.

Ja, und zwar immer dann nicht, wenn man die Palette "Templates" noch nie geöffnet hatte. Hat man die Palette einmal in den Vordergrund geholt, funktioniert alles.

Auch unter InDesign® Server hat es nicht mehr funktioniert, wenn man die Datenbankverbindung geändert hat.

Der Fehler ist gefixt. Die Palette muss jetzt nicht mehr extra geöffnet werden und unter InDesign® Server darf selbstverständlich die Verbindung geändert werden.

29.03.2012
Bug 2792 - Neue Standardfunktion zum Ermitteln aller Templates bei den Parameterlisten der Gestaltungsregeln

Ein Funktion zur Auswahl einer Vorlage wäre schön. Wie haben eine Gestaltungsregel, die so lange neue Seiten platziert wie ein Rahmen einen Übersatz hat. Der Regel muss man mitgeben, welche Vorlage auf den neuen Seiten platziert werden soll und im Moment geben wir dort die ID ein, schön wäre eine grafische Auswahl.

    @LOADLIST templates

Das gibt es jetzt. Alle aktivierten und in der Produktrecherche sichtbaren Templates werden ins Popup eingetragen. Die Einträge haben jeweils die folgende Form :

    ID  | Name

ID und '|' sind dabei durch einen Tabulator getrennt.

29.03.2012
Bug 2800 - Beim Aktualisieren von Platzhaltern werden die Magnetabstände auf die Einstellung im Template zurückgesetzt

Werden die Platzhalter eines Rahmens aktualisiert werden dabei auch die nötigen Magnete ausgeführt. Das ist nötig, weil Ladenskripte und/oder Gestaltungsregeln Rahmengrössen verändern können.

Leider passiert dabei aber etwas Merkwürdiges : Die Magnetabstände werden auf die im Template eingestellten Werte zurückgesetzt. Manuelle Rahmenverschiebungen gehen verloren.

Beispiel

  • Rahmen A und B sind mit einem Magneten verbunden und haben de Abstand 10. So wird das dann auch ins Dokument geladen.
  • Jetzt wird der Rahmen B (manuell) so verschoben, dass der Abstand zu B 50 beträgt.
  • Dann wird A aktualisiert. Dadurch wird leider jetzt auch B wieder auf den Abstand 10 an A gezogen.

Um Magnetabstände wiederherstellen zu können, müssen sie natürlich irgendwo im Rahmen hinterlegt sein. Aus Performance-Gründen werden diese Abstände aber bisher nur in einigen (seltenen) Fällen gesichert (z.B. beim Sichern eines Templates). Manuelle änderungen an den Rahmen "sieht" die Magnet-Wiederherstellung nicht.

Es ist möglich, die Plugins so zu gestalten, dass Geometrie-änderungen automatisch zum Sichern der Magnetabstände führen. Das führt freilich zu neuen Problemen wie folg. Beispiel illustriert :

Template X

  • besteht aus den Rahmen A und B
  • A und B sind durch einen Magneten verbunden

Einfügen eines Produktes mit Template X

  • A wird geladen und macht ein frame::fit
  • Dder Magnetabstand zwischen A und B neu berechnet
  • Ein nachfolgendes Wiederherstellen des Abstandes zwischen A und B macht nichts mehr. Der Abstand ist ja bereits okay.

Das Einzige, was man machen kann, ist, JEDE Stelle, die den Rahmen durch ein Skript verändern kann (Laden, Aufbau, Gestaltungsregeln, frame::move, ...) zu markieren und die änderungen der Abstände in diesen Fällen nicht zu machen. Das sind ungefähr 50 Stellen. Mit dem automatischen Aktualisieren und den nötigen Notifiern sind das ungefähr 100 Stellen im Quellcode, die angepasst werden müssen.

Lösung

Das ist jetzt gemacht. Manuelle änderungen an Rahmen-Geometrien führen jetzt automatisch zum Sichern der Magnetabstände in den Rahmen. Alle anderen Rahmenänderungen werden an dieser Stelle übergangen.

ACHTUNG

Das betrifft auch Funktionen wie frame::move, frame::resize, ... . Diese änderungen führen nach wie vor NICHT zum Neuberechnen der Magnetabstände. Hintergrund ist folgender :

Produkt P bestehend aus den Rahmen A und B

  • Zwischen A und B gibt es einen Magneten

Ein Paletten-Skript macht folg.

  • Verschieben von A
  • Wiederherstellen der Magnetabstände

In diesem Fall soll natürlich der alte Abstand vor der Rahmenverschiebung verwendet werden.

Damit Rahmenänderungen von Skripten dauerhaft gesichert werden, muss in solchen Situationen einer der neuen Skriptbefehle

    itemlist::store_magnet_distances
    frame::store_magnet_distances

hinterhergeschickt werden.

29.03.2012
Bug 2799 - Beim Aktualisieren einer Platzhalter- oder Produktauswahl werden auch die Magnetabstände aller anderer Rahmen aktualisiert

Hat man in der Produktrecherche oder der Platzhalterpalette einige Augen gesetzt, werden beim Aktualisieren von Platzhaltern im Dokument nur die betroffenen Rahmen- und Textplatzhalter neu geladen.

Danach werden auch die Gestaltungsregeln und Magnete der betroffenen Rahmen ausgeführt. Leider werden aber auch die Gestaltungsregeln und Magnete aller anderen Rahmen ausgeführt.

Es ist ein enormer Rechenaufwand, für jeden Rahmen zu testen, ob er ein mit einem Auge markiertes Objekt (Platzhalter oder Produkt) enthält. Beim Fix von Bug 2177 wurde diese Berechnung deshalb nur für einige Spezialfälle gemacht. Diese Prüfung wird jetzt bei JEDEM Aktualisieren von Platzhaltern gemacht. Einzige Bedingung ist, dass mind. ein Auge (Platzhalter od. Produkt) gesetzt ist.

Die Magnete wurden ausserdem unabhängig von der o.g. Prüfung tatsächlich für alle Rahmen ausgeführt. Das war natürlich nicht richtig. Deshalb wird hier jetzt nur gehandelt, wenn der Platzhalter des Rahmens zu einer der Augen-Listen passt oder wenn der Rahmen solch einen Textplatzhalter enthält.

29.03.2012
Bug 2791 - system:: suppress_layout_rules funktioniert nicht bei gruppierten Rahmen

Im Kundenprojekt liegen haufenweise generierte Dokumente vor, die blöderweise Gestaltungsregeln auf diversen Rahmen hatten, die beim Aktualisieren der Platzhalter gefeuert werden. Das führt beim Aktualisieren der Preisplatzhalter zum Verspringen vieler, vieler Rahmen.

  1. Ja, ich habe das Event in den Templates entfernt, das hilft nur den bereits fertig gefinishten Dokumenten nichts, in die nur noch die neuen Preise geladen werden sollen.
  2. Ich habe system::suppress_layout_rules gefunden und zu Testzwecken Palettenskripte gebaut, die system::suppress_layout_rules(0) und system::wakeup_layout_rules(0) ausführen.

Dies hat leider im Gegensatz zu Ticket Bug 2177 bei mir nicht funktioniert, da die Rahmen gruppiert sind. Aber auch wenn man die Rahmen vorher entgruppiert, scheint es nicht zuverlässig zu gehen. Ich habe eine Handvoll kleiner Screencasts gemacht, die das Thema veranschaulichen. Das Dokument zum Spielen liegt ebenfalls bei. Hänge ich gleich ans Ticket an.

Verstehe ich suppress_layout_rules falsch? Meine Erwartung wäre, dass es global *alle* per Parameter spezifizierten Gestaltungsregeln scharf- oder abschaltet. Das scheint nicht der Fall zu sein. Der Versuch, per Parameter (2) nur das spezifische Event abzuschalten (Platzhalteraktualisierung), hat zu identischen Ergebnissen geführt.

Derzeit müssen die User alle Rahmen von Hand anfassen, entgruppieren und die Gestaltungsregeln anfassen. Das Projekt ist aber schon prekär in Verzug, so dass wir eine schnelle Lösung bräuchten, daher auf "critical" gesetzt.

Die Probleme mit dem Aktualisieren der Magnet-Abstände sind mit Bug 2799 gelöst.

Die Probleme mit den falschen Magnetabständen sind mit Bug 2800 gelöst.

suppress_layout_rules hat nichts damit zu tun, ob Rahmen gruppiert sind oder nicht. Falsch war es trotzdem. Zumindest dann, wenn man einen Wert ungleich 0 angegeben hat. Das ist jetzt gefixt.

Ansonsten hat suppress_layout_rules funktioniert - nur leider im gegebenen Fall nichts geholfen, weil die Magnetabstände automatisch nach dem Laden aktualisiert wurden.

Lösungsvorschläge

Für die Aktualisierung der bereits erstellten Dokumente gibt es zwei Möglichkeiten :

  1. Die Plugins PageAdapterModel und PageAdapterUI entfernen und InDesign® neu starten. Danach können Magnetabstände nicht mehr verändert werden (weil das diese beiden Plugins tun.).
  2. Ab v3.3 R2850 gibt es den Befehl itemlist::store_magnet_distances. Mit dem können VOR dem Aktualisieren der Preise die Magnetabstände gesichert werden. Hier ein Skript (das pro Dokument einmal ausgeführt werden muss.)
int main ()
{
	int            pg        = document::pages ();
	int            p;
	ItemList       frames    = 0;

	for (p = 1; p <= pg; p++)
	{
		frames    = itemlist::pageframes (p, 1);
		itemlist::store_magnet_distances (frames);
		itemlist::release (frames);
		frames    = 0;
	}

	return 0;
}
29.03.2012
Bug 2798 - textmodel::get_frame versagt in Gestaltungsregeln

... und das völlig zu Recht. Eine Anfrage an

    textmodel::available

hätte das bestätigt. Es gibt kein Textmodel. Gestaltungsregeln werden nicht mit einem Textmodel sondern mit einem Rahmen gerufen. Auch wenn der Rahmen ein Textrahmen ist - das Skript lehnt das ab (wie übrigens fast alle textmodel-Funktionen, die nicht noch zusätzlich den Rahmen übergeben.

Es wäre ein leichtes, das so zu ändern, dass das Textmodel automatisch aus dem Rahmen geholt wird - ich bin bloss nicht sicher, was das für Seiteneffekte haben könnte.

Ist auch nicht schlimm. Mit

    textmodel::get_frame_containing

kann man einen Rahmen übergeben und alles ist gut.

ACHTUNG : Auch hier gilt : Ist die Textstelle im Overset, wird der erste Rahmen zurückgegeben.

29.03.2012
Bug 2027 - Workbench entfernt Zeilenschaltungen aus XML-Elementen

.. was blöd ist, weil die zumindest in der actions.xml für priint:adjust gebraucht werden (siehe Bug 1999)

Zumindest für die Parameter-Listen (Popup-Menüs) von Gestaltungsregeln bieten die Plugins jetzt einen Workaround : Statt der Zeilentrenner dürfen die einzelnen Werte auch mit :I: getrennt werden (Der Strich ist ein großes i.)

Mit der Angabe

   Vergleich:I:kleiner:I:gleich:I:größer

wird ein Popup mit dem Titel Vergleich und den Einträgen kleiner, gleich und größer erzeugt.

27.03.2011
Bug 2792 - Neue Standardfunktion bei den Parameterlisten der Gestaltungsregeln

Ein Funktion zur Auswahl einer Vorlage wäre schön. Wie haben eine Gestaltungsregel, die so lange neue Seiten platziert wie ein Rahmen einen Übersatz hat. Der Regel muss man mitgeben, welche Vorlage auf den neuen Seiten platziert werden soll und im Moment geben wir dort die ID ein, schön wäre eine grafische Auswahl.

    z.B.: @LOADLIST templates

Genauso heisst die Formel jetzt auch.

    @LOADLIST templates

Alle aktivierten und in der Produktrecherche sichtbaren Templates. Die Einträge haben jeweils die folgende Form :

    1  | Name

ID und '|' sind dabei durch einen Tabulator getrennt.

27.03.2011
Bug 2794 - Höhe von Tabellenzellen auf "Genau" stellen

Bereits in R2840 umgesetzt!

Mit dem Skriptbefehl tabel::resize_rows kann ja die Höhe von Tabellenzeilen geändert werden. Die Höhenänderungen funtionieren. Es wird aber immer die Einstellung "Minimal" gewählt. Kann man die Zeilenhöhe auch auf "Genau" stellen?

Das Feature ist umgesetzt : Sind min- und maxHeight gleich (und grösser 0.0) wird die Zeilenhöhe auf "Genau" gestellt (und die Angabe der aktuellen Höhe im ersten Höhenparameter ignoriert). Fehlen die Angaben oder sind ungleich, wird die Einstellung "Mindestens" gesetzt.

ACHTUNG : Es ist (auch mit Bordmitteln) nicht möglich, eine aktuelle Zeilenhöhe zu setzen, ohne dabei die Minimal-Höhe zu ändern. Die Funktion könnte so gesehen auf eine der Höhenangaben (Höhe, minimale Höhe, maximale Höhe) verzichten. Aus Gründen der Rückwärtskompatibilität ändere ich aber an den Parametern nichts.

27.03.2011
Bug 2793 - Bei leerer Dokumentauswahl kann über die Linkbuttons der Produktrechecherche nichts ausgewählt werden

Mit dem ersten Button in den Produkten kann man ja zum ersten/nächsten Dokumentobjekt (Platzhalter, Rahmen, Cometgruppe) springen, das mit dem Produkt verknüpft ist. Das klappt prima - man muss aber bereits irgendwas im Dokument ausgewählt haben. Ist die Dokumentauswahl leer, ertönt lediglich ein Piep.

Das ist jetzt gefixt. Die Dokumentauswahl darf jetzt auch leer sein, um ein Produkt im Dokument zu finden.

Workaround

Einfach irgendeinen Rahmen oder Text wählen, und dann suchen.

27.03.2011
Bug 2787 - SOAP Interoperabilität

Die Anbindung von Comet über SOAP macht in einigen Umgebungen Probleme (namentlich .Net / WFC WebServices). Grund sind geringe Unterschiede in den HTTP Headern, vor allem bei multipart/related Nachrichten, die je nach Implementierung mehr oder weniger von den W3C Recommendations abweichen bzw. mehr oder weniger großzügig interpretiert werden. Theoretisch sind die PlugIns mit nahezu jeder SOAP Implementierung interoperabel, in der Praxis sind oft Anpassungen auf WebService-Seite notwendig.

Ab R2842 ist Folgendes geändert:

  • (Bugfix) multipart/related Nachrichten werden nur noch bei Bedarf generiert, also bei putBinaryFile. Die meisten SOAP Services können beides verarbeiten, bei .Net machen multipart Nachrichten bei "normalen" Requests Probleme
  • SOAP Version und Header lassen sich über eine Konfigurationsdatei anpassen.
26.03.2012
Bug 2788 - SOAP frisst Speicher

Bei getBinaryFile allokierter Speicher wird nicht wieder freigegeben.

In R2842 gefixt.

26.03.2012
Bug 2789 - SOAP / XML: panelstatements.xml wird laufend angefordert

Die panelstatements.xml Datei wird unter SOAP / XML unter Umständen sehr häufig angefordert. Ursache ist, dass diese Datei beim Einlesen der Dokument-Event Statements nicht gepuffert wird.

Der Fehler ist in R2842 behoben. In SOAP Projekten, die per system:set_docwatch () die Dokumentbeobachtung EINgeschaltet haben, dürfte das einen deutlichen Performance-Gewinn bringen.

26.03.2012
Bug 2790 - TaggedText und w2-Tag in Tabellenzellen

Beim Einfügen von TaggedText in Tabelle sind mir folgende Phänomene aufgefallen:

  1. Wenn ich direkt nach dem w2-Tag mit einem ParaStyle das Absatzformat setze, dann erhalte ich immer einen Umbruch bevor der Inhalt kommt. Da wird anscheinend ein "leerer" Absatz für das w2-Tag erstellt und dann kommt der eigentliche Inhalt. Beispiel:

    %!TT<w2:100, 500, 10, 1, '><ParaStyle:XXX>1</w2>
  2. Wenn ich den Parastyle vor dem w2-Tag habe, dann ist die Leerzeile weg. Ist das das definierte Verhalten oder ein Bug?

In beiden Fällen bekomme ich in der Tabelle keine Platzhalter (ist evtl. Bug #2715 doch noch nicht final korrigiert?) Mit der vorherigen Hotfix-Version waren die Platzhalter vorhanden, es wurde nur manchmal ein leerer Platzhalter erstellt und der Inhalt stand dann hinter dem per w2-Tag definierten Platzhalter.

Das Verhalten ist jetzt in beiden Fällen gleich und die Platzhalter werden richtig angelegt. Der Fehler ist entstanden beim Fix von Bug Bug 2782, sorry.

26.03.2012

R2842

svn 2838

22.03.2012

Bug 2789 - SOAP / XML: panelstatements.xml wird laufend angefordert

Die panelstatements.xml Datei wird unter SOAP / XML unter Umständen sehr häufig angefordert. Ursache ist, dass diese Datei beim Einlesen der Dokument-Event Statements nicht gepuffert wird.

Der Fehler ist in R2842 behoben. In SOAP Projekten, die per system:set_docwatch () die Dokumentbeobachtung EINgeschaltet haben, dürfte das einen deutlichen Performance-Gewinn bringen.

22.03.2012
Bug 2788 - SOAP frisst Speicher

Bei getBinaryFile allokierter Speicher wird nicht wieder freigegeben. Der Fehler ist in R2842 gefixt.

22.03.2012
Bug 2787 - SOAP Interoperabilität

Die Anbindung von Comet über SOAP macht in einigen Umgebungen Probleme (namentlich .Net / WFC WebServices). Grund sind geringe Unterschiede in den HTTP Headern, vor allem bei multipart/related Nachrichten, die je nach Implementierung mehr oder weniger von den W3C Recommendations abweichen bzw. mehr oder weniger großzügig interpretiert werden. Theoretisch sind die PlugIns mit nahezu jeder SOAP Implementierung interoperabel, in der Praxis sind oft Anpassungen auf WebService-Seite notwendig.

Ab R2842 ist Folgendes geändert:

  • (Bugfix) multipart/related Nachrichten werden nur noch bei Bedarf generiert, also bei putBinaryFile. Die meisten SOAP Services können beides verarbeiten, bei .Net machen multipart Nachrichten bei "normalen" Requests Probleme
  • SOAP Version und Header lassen sich über eine Konfigurationsdatei anpassen, Beispiel siehe unten. Die Datei muss im PlugIns Verzeichnis liegen und wird vor dem Login eingelesen. Empfohlene Einstellung: leer
  • das href Attribut des Xop:include Element wird nun auch nach dem cid: Schema erzeugt, auch das konnte für Interoperabilitätsprobleme sorgen.

Hier farblich hervorgehoben der Zusammenhang zwischen HTTP Headern und Einstellungen in der soapflags.ini-Datei:

1. Request:

POST /soap/ HTTP/1.1
Host: localhost:81
User-Agent: gSOAP/2.7
Content-Type: application/xop+xml; charset=utf-8
Content-Length: 934
Connection: keep-alive
SOAPAction: "login"

soapflags.ini:
http-type=application/xop+xml; charset=utf-8

2. Multipart-Request


POST /soap/ HTTP/1.1
Host: localhost:81
User-Agent: gSOAP/2.7
Content-Type: multipart/related; boundary="==rHFpLm5WNXWc7RWYzqkrFbwSAf+VegOxrBJEkEcsnn4zEcmeVdHqMB4ekxvR=="; type="application/xop+xml"; start="<SOAP-ENV:Envelope>"; start-info="application/soop+xml; charset=utf-8"
Content-Length: 4487
Connection: keep-alive
SOAPAction: "putBinaryFile"

--==rHFpLm5WNXWc7RWYzqkrFbwSAf+VegOxrBJEkEcsnn4zEcmeVdHqMB4ekxvR==
Content-Type: application/xop+xml; charset=utf-8; type="application/soap+xml"
Content-Transfer-Encoding: binary
Content-ID: <SOAP-ENV:Envelope>

soapflags.ini:
http-multipart-type=application/xop+xml; charset=utf-8
http-multipart-start-info=application/soop+xml; charset=utf-8
soap-multipart-type=application/xop+xml; charset=utf-8; type="application/soap+xml"
http-type=application/xop+xml; charset=utf-8
soap-type=application/soap+xml; charset=utf-8

Eine vollständige Konfigurationsdatei mit allen möglichen Einstellungen findet sich hier

22.03.2012
R2840

svn 2837

Hotfix

20.03.2012

Bug 2785 - kSkipEmptyTemplates in productlist::establish führt zum Übergehen der PageTemplates in der Produktiste

Zum Erzwingen von Seitenwechseln kann die Produktliste für productlist::establish auch Seitentemplates enthalten. Wird establish aber mit dem Flag kSkipEmptyTemplates aufgerufen, werden diese Seitentemplates leider übergangen.

Der Fehler ist gefixt.

19.03.2012
Bug 2784 - InDesign® reagiert sehr langsam auf Rahmenverschiebungen, wenn der Seitenadapter installiert ist

Wir haben Dokumente mit sehr vielen kleinen Rahmen. Wenn der Seiteadapter installiert ist, wird das Verschieben von Rahmen sehr langsam.

Das Problem wird dadurch verursacht, dass InDesign® versucht, die Nägel und Magneten zu zeichnen. Oder genauer, die Nägel und Magneten werden nicht gezeichnet, aber es wird ausgerechnet, wie groß die Fläche ist, die gezeichnet werden soll. Das dauert natürlich seine Zeit, alle Magneten zu prüfen.

Das berechnen der nötigen Fläche wird jetzt nicht mehr gemacht, wenn sowieso keine Nägel und Magneten gezeichnet werden sollen.

Wenn das Zeichnen aktiviert ist, muss das natürlich trotzdem gemacht werden - und das Arbeiten wird etwas langsamer. Aber mit ein paar kleinen Tricks konnten wir auch hier einiges rausholen, so dass auch in diesem Fall die Verzögerung kaum mehr spürbar ist.

16.03.2012
Bug 2766 - Methode zum Aktualisieren der Findstatements, siehe auch hier

Habe das gerade mal mit 3.3 R2829 aus dem Hotfix-Ordner des FTP-Servers ausprobiert und anscheinend wird bei einer SOAP-Verbindung die Datei nicht erneut vom Server geladen.

Habe das ganze mit den Parametern (0, -1, 0) und (1, -1, 1) probiert.

Hast recht, in diesem Fall müsste der interne XML-Baum zuvor weggeschmissen werden.

Die Datei findstaments.xml wird jetzt neu geladen, wenn reloadStatements = 1 ist.

15.03.2012
Bug 2782 - Mit <in:..>-Tags angelegte Inlines erscheinen an falscher Textposition oder gar nicht

Die Inlines, die ein %!TT-Text mit in-Tags anlegen soll, erscheinen an falschen Textpositionen oder gar nicht. Bis v3.2.3 hat der gleiche TaggedText funktioniert, seit v3.3 funktioniert es nicht mehr.

Das liegt an der mit Fix von Bug 2506 geänderten Verarbeitung der Comet-Tags zusammen. Comet-Tags müssen jetzt bei Importen nicht mehr extra behandelt werden. Sie sind jetzt integraler Bestandteil des Import/Exportmechanismus für TaggedText.

Leider benötigen die in-Tags trotzdem eine sorgfältige (und aufwendige) Extrabehandlung. (Das liegt daran, dass TaggedText eigentlich überhaupt keine Inline-Rahmen enthalten kann.) Dabei wurde an einer Stelle des neuen Verfahrens ein Zähler falsch behandelt.

WORKAROUND

Das alte Verfahren kann mit den Menüs

wieder hergestellt werden. Dazu das Häkchen aus diesen Menüs entfernen.

Wenn das nicht an allen Arbeitsplätzen manuell gemacht werden kann oder soll, können diese Eigenschaften alternativ z.B. im Loginskript (Panelstatement 92) gesetzt werden :

    prefs::set_tags_readable
    prefs::set_tags_writeable

Ab v3.3 R2830 ist der Fehler gefixt. Sowohl altes als auch neues Verfahren für die Comet-Tags behandeln Inlines jetzt richtig.

14.03.2012
Bug 781 - Typecasts von int auf float und umgekehrt funktionieren nicht (Genau 2000 Bugs zurück)

Leider liefern Typecasts der Form (int)99.9 oder (float)123 nicht die richtigen Ergebnisse.

Typecasts von int in float und umgekehrt sollten immer mit den neuen Funktionen

    toint
    tofloat

gemacht werden.

Allerdings liefert toint(99.9) nicht die erwarteten 100, sondern 99. Sollten wir dafür nicht ne eigene Funktion haben ("trunc" oder "floor"?)

Es gibt dazu auch eine Forums-Diskussion : Rounding floating point numbers in cscript.

Und ss gibt jetzt die neue Funktion

    round

Ein Funktionsparameter steuert, ob Sie unverzerrtes (mathematiches) oder kaufmännisches Runden verwenden wollen. Hier einige Ergebnisse :

Wert unverzerrt gerundet kaufmännisch gerundet
14,499990 14,0000 14,0000
14,500000 14,0000 15,0000
14,500010 15,0000 15,0000
15,499990 15,0000 15,0000
15,500000 16,0000 15,0000
15,500010 16,0000 16,0000
Summe
90,000000 90,0000 91,0000

So also machts der Kaufmann. Jetzt wissen wirs.

14.03.2012
Bug 2781 - Aufgabenpalette Stringunterschiede zeigen

In der Aufgabenpalette werden unten aktueller und Datenbankwert der Platzhalter gezeigt. Häufig kann man die Unterschiede beider Strings gar nicht so gut sehen.

Unter den beiden Werten steht jetzt eine weitere Angabe mit dem ersten Unterschied beider Strings (Textposition und, wenn verfügbar, der Text, der sich unterscheidet).

    

14.03.2012
Bug 2768 - Endlosschleife durch Aufgaben-Palette nach Dokumentwechsel, siehe auch hier

Durch den Fix von Bug 2498 ist ein weiterer Fehler in der Aufgabenpalette zutage getreten, der zum Absturz von InDesign® geführt hat, wenn Dokumente mehrfach geschlossen und wieder geöffnet wurden.

Dieser Fehler ist ebenfalls gefixt.

14.03.2012
Bug 2498 - Alte Werte bleiben nach Korrektur in Aufgabenpalette

In der Aufgabenpalette werden ja für jede Aufgabe die Vergleichswerte für "Dokument" und "Datenquelle" angezeigt. Die bleiben auch stehen, wenn in der Aufgabenpalette nichts selektiert ist - so weit, so gut.

Aber auch nach dem Erledigen aller Aufgaben und sogar nach dem Neuladen der Palette bleiben die Werte des zuletzt ausgewählten Eintrags stehen - wenn die Palette leer ist, bleiben die da ewig.

Das ist jetzt gefixt.

Ach ja, könnt ich ja noch hinschreiben : Die Angaben werden jetzt sogar dann neu geschrieben, wenn man im Dokument einen Textplatzhalter ändert.

14.03.2012
Bug 2780 - Aufgaben-Palette zeigt Textübersatz (rotes +) für Platzhalter, die gar nicht im Overset sind

Obwohl nach dem Aktualisieren der Platzhalter kein Übersatz im Text besteht, werden einige Platzhalter mit einem roten + (im Overset) markiert. Irgendwas scheint da falsch zu sein.

Das rote + gibt ja an, ob der gesamte TEXT oder die TABELLENZELLE, in der der Platzhalter liegt, einen Übersatz haben. Das rote + gibt NICHT an, ob der Platzhalter oder Teile davon im Übersatz liegen. Das macht das weisse +. Dazu habe ich mal den gelben Hilfezettel für das Statusfeld ein bisschen besser beschriftet.

Trotzdem bleibt das Problem bestehen : Der Text hat keinen Übersatz, aber einige Platzhalter haben nach dem Aktualisieren ein rotes Plus.Schaut man genauer hin, sieht man, dass "einige" immer nur Textplatzhalter in normalem Text sind. Platzhalter in Tabellenzellen zeigen den richtigen Status.

Und hier die Erklärung : Die Platzhalter werden der Reihe nach aktualisiert und ihr Status neu berechnet. Entsteht nun durch die Aktualisierung eines Platzhalters ein Übersatz, bekommt dieser Platzhalter eine rotes Plus. Dann kommt der nächste Platzhalter, der lädt sich so, dass der Übersatz jetzt wieder weg, er bekommt einen grünen Haken. Davon geht aber das rote Plus des vorigen Platzhalters nicht mehr weg.

Der Übersatz-Status des roten Plus' wird jetzt in einer weiteren Schleife NACH dem Aktualisieren ALLER Platzhalter gemacht. Dann stimmt alles.

14.03.2012
Bug 2779 - Rahmen einer Produktgruppe ohne Rahmen-Platzhalter zeigen in der Produktrecherche "[Kein Objekt]"]

Enthält die Dokumentauswahl einen Rahmen oder Textplatzhalter eines Produktes, wird dieses Produkt in der Produktrecherche ausgewählt (wenn es dort gerade angezeigt wird). Das klappt für Rahmen aber nur, wenn die einen Platzhalter haben.

Häufig ist es aber so, dass die Cometgruppen von Produkten auch Rahmen ohne Platzhalter enthalten. Eigentlich sollten diese Rahmen doch aus zu einer Auswahl in der Produktrecherche führen, oder?

Das geht jetzt. Zusätzlich wird Mehrfachselektion unterstützt.

13.03.2012
Bug 2778 - Auswahl der gesamten Cometgruppe eines Produktes

Mit dem Button der ersten Spalte der Produktrecherche kann man zu den Platzhaltern im Dokument springen, die mit diesem Produkt verknüpft sind. Dabei werden immer nur einzelne Platzhalter ausgewählt. Kann man auch die gesamte Cometgruppe eines Produktes auswählen?

Über dieser ersten Spalte gibt es jetzt ein kleines Button. Mit diesem Button kann eingestellt werden, ob (wie bisher) die einzelnen Platzhalter ausgewählt werden oder (neu) gesamte Cometgruppen. Platzhalter, die nicht Teil einer Cometgruppe sind, werden wie bisher einzeln ausgewählt.

    

13.03.2012
Bug 2777 - Platzhalter eines Produktes im Dokument werden in falscher Reihenfolge ausgewählt

Mit dem Button der ersten Spalte der Produktrecherche kann man zu den Platzhaltern im Dokument springen, die mit diesem Produkt verknüpft sind. Ist bereits ein Platzhalter ausgewählt, wird zum nächsten Platzhalter gesprungen. In geschachtelten Inline-Rahmen funktioniert das nicht - hier werden Platzhalter übersprungen.

Wer macht denn so was? Egal, ist gefixt.

13.03.2012
R2829

Hotfix

08.03.2012

Bug 2775 - Fehler bei Produktplatzierung wenn Buildsupport-Skript bei kAfterBuild Rahmen anlegt

Verwendet man den Aufbau mit einem BuildSupportSkript und legt dort in der Situation kAfterBuild zusätzliche Rahmen an, werden diese Rahmen vom nachfolgenden Produkt überdeckt.

Das ist gefixt, siehe auch hier.

08.03.2012
Bug 2773 - Reorganisation verliert Produkte, wenn im BuildSupportScript Produktrahmen gelöscht werden

Wir verwenden für einen Produktaufbau das BuildSupportSkript. Das Skript legt einen zusätzlichen Rahmen mit dem Text "Fortsetzung auf Seite ..." an. Bei der Reorganisation wird dieser Rahmen in der BuildSupportScript-Situation kCheckSizeBefore zuerst gelöscht. Das funktioniert alles.

Leider kann jetzt unter bestimmten Umständen das Produkt gar nicht mehr platziert werden. Der Aufbau generiert den Fehler 1219 (Seite konnte nicht gefunden werden). In unserem Fall wäre das die Seite 4. Diese Seite wird kurz vorher angelegt - steht zumindest im Logfile.

Es passiert folg.:

Im BuildSupport können natürlich Rahmen gelöscht und/oder angelegt werden. Vor dem BuildSupport merkt sich der Produktaufbau deshalb alle Rahmen der Seite und vergleicht diese Liste mit den Rahmen, die NACH dem Skript vorhanden sind. Damit wird die interne Rahmenliste des aktuellen Produktes angepasst.

Leider war die Reorganisation aber bereits einige Seiten weiter - dort hat sich gar nichts verändert, hier auf Seite 4, der Rahmen mit dem Text "Fortsetzung auf Seite ..." liegt aber noch auf Seite 2.

Naja, der Rest ist klar : Der BuildSupport löscht den Rahmen, der Aufbau merkt das nicht. Und etwas später will der Aufbau/die Reorganisation die Rahmen des Produktes dann endlich auf Seite 4 verschieben. Und das geht mit dem Rahmen "Fortsetzung auf Seite ..." nicht, weil es den ja nicht mehr gibt. Fehler 1219 (Seite nicht gefunden) wird generiert, weil vor dem Verschieben auf eine neue Seite erst die alte Seite gefunden werden muss - und die gibts ja dann auch wirklich nicht.

Nach dem BuildSupport wird jetzt zusätzlich für jeden Rahmen des Produktes getestet, ob er auch wirklich noch im Dokument existiert. Wenn nicht, wird er aus der Liste entfernt - und kann dann auch nicht mehr falsch behandelt werden.

Damit ist der Bug gefixt.

07.03.2012
Bug 2774 - Cometgruppen falsch? Oder doch nur die Anzeige in der Palette 'Platzhalterwerte'

In der Palette Platzhalterwerte wird ja unter Gruppen-ID die Cometgruppe eines Rahmens gezeigt. Diese Anzeige stimmt häufig nicht mit dem überein, was im Dokument angezeigt wird (und wie sich das Dokument verhält).

    

Der Rahmen 300 sei Mitglied der Cometgruppe 197. (Die 197 wird jedenfalls in dem schrägen Label der Cometgruppen-Darstellung angezeigt.) Bewegt man den Rahmen, ändert sich die Grösse der Cometgruppe (die farbige Hinterlegung im Dokument). Bei

werden auch richtig alle anderen Rahmen der Cometgruppe ausgewählt. Usw.. Aber in Platzhalterwerte steht unter Gruppen-ID nicht, wie man erwartet hätte, eine 197, sondern 250. Da ist doch was nicht richtig?

Doch, doch, alles stimmt. Nur in Platzhalterwerte wird etwas angezeigt, das nicht ganz richtig ist :

Reorganisationen können ja Templatewechsel erfordern. Dann werden alle Rahmen eines Produktes ausgetauscht und eine neue Cometgruppe erzeugt. Als Cometgruppen-ID wird die UID (irgend)eines Rahmens der Gruppe verwendet. Die sieht man zur Zeit in Platzhalterwerte.

Da Cometgruppen sich aber (zumindest nach aussen) bei Reorganisationen nicht ändern dürfen, führt das Dokument eine Übersetzungstabelle "Neue -> Alte Gruppen-ID". Diese Liste wird jedesmal befragt, wenn mit Cometgruppen-IDs umgegangen wird. So wird eben auch für die Anzeige im Dokument diese Liste befragt und der neue Wert in seinen alten (Original)wert umgerechnet.

Im obigen Beispiel die Übersetzungstabellen also einen Eintrag 250 -> 197.

Das wird jetzt auch in der Palette Platzhalterwerte gemacht. Damit ist der Fehler gefixt.

07.03.2012
Bug 2766 - Methode zum Aktualisieren der Findstatements

Bei einer SOAP-Anbindung wollen wir verschiedene Datenquellen (die vom SOAP-Server verwaltet werden) über die Auswahl eines Findstatements ansprechen, d.h. für jede Datenquelle gibt es ein Findstatement. Die Datei findstatements.xml wird dafür dynamisch vom Server generiert.

Wenn jetzt eine neue Datenquelle hinzugefügt wird, dann muss sich der InDesign®-Benutzer komplett abmelden und neue anmelden, damit die neue Datenquelle sichtbar wird. Schön wäre ein Skript-Befehl zum Aktualisieren der Auswahlbox mit den Findstatements. Habe in der Doku gesucht, aber nichts gefunden ... intern müsste es sowas ähnliches ja schon geben, da man die Auswahlbox ja über die Oberfläche erweitern kann.

Ziel wäre es ein Panelstatement (Action) zu schreiben über das der Benutzer dann ohne erneutes Login die aktuellen Datenquelle zur Auswahl hat.

Ist implementiert :

    productlist::update_findstatements (
        int reloadStatements = 0, 
        int selectThis = -1,
        int reloadList = 0);

z.B.

    productlist::update_findstatements (1, 300, 1);
06.03.2012
Bug 2771 - Fehler bei der Berechnung der Produkte des Dokumentes

Die Liste der Produkte des Dokumentes wird falsch berechnet. In der Palette "Produkte des Dokumentes" werden falsche Produkte angezeigt. Beim Reorganisieren werden falsche Produkte ins Dokument eingefügt.

Der Fehler ist als Seiteneffekt des Fixes von Bug 2746 entstanden und gefixt.

Der Fehler ist in allen Releases

    R2775 - R2818

aller Comet-Plugins enthalten.

Erklärung

Das Problem ist, aus den Rahmen der Cometgruppe eines Produktes die ID herauszufinden, mit der das Produkt aufgebaut wurde. Das ist nicht ganz einfach:

  1. Wiederholende Elemente haben mglw. andere Produkt-IDs.
  2. Beim Aufbau können zusätzliche Rahmen angelegt worden sein, die ebenfalls andere Produkt-IDs haben.

Die Produkt-IDs müssen also keineswegs eindeutig sein.

Der erste Fall konnte dadurch gelöst, dass Rahmen, die durch wiederholende Elemente entstanden sind, eine eigene Markierung erhalten. Rahmen mit dieser Markierung werden beim Ermitteln der Produkt-ID ignoriert.

Der zweite Fall wurde wie folgt gelöst : Alle Rahmen der Cometgruppe werden zuvor nach ihrer Kennung sortiert. Rahmen ohne Kennung landen am Ende der Liste. Der erste Rahmen der Liste, der kein wiederholendes Element ist und eine Produkt-ID hat (ID1 > 0), liefert die (jetzt eindeutige) Produkt-ID. Um Mehrdeutigkeiten auszuschliessen, sollten also mind. ein Rahmen des Templates eine kleinere Kennung haben als alle Rahmen, die sonst noch (z.B. mit place_items) in Laden- oder anderen -skripten angelegt werden.

Für die Sortierung der Kennung wird der Unicode-Wert der Kennung verwendet. Also

    ... 0 < 1 < 2 < ...< 9 < ...< A < B < ...< Z < ...< a < b < ...< z < ...

06.03.2012
R2818

05.03.2012

Bug 2770 - Flächen von Cometgruppen

Die Javascript-Funktion app.comet.getCometGroups

    visible-size-absolute
    
visible-size-relative
    size-absolute
    
size-relative

Was enthalten denn diese Werte? In den Werten ohne visible steht immer der gleiche Wert wie im Element mit visible drin. Was mach ich falsch?

Die Werte hängen von den folgenden (weiteren) Optionen des Aufrufes ab :

size-checktrans

Der Rahmenhintergrund von Bildern kann selbst undurchsichtig sein. Nicht-transparente Bildhintergründe werden im Normalfall ignoriert und nicht zur Rahmenfläche hinzugerechnet. Soll bei nicht-transparenten Bildhintergründen der gesamte Rahmen als Fläche verwendet werden, setzen Sie dieses Flag. Rahmenhintergründe sind transparent, wenn eine der folgenden Eigenschaften gesetzt ist :

  • Keine Hintergrundfarbe
  • Effekte : Füllmethode ungleich "Normal"
  • Effekte : Deckkraft < 100.0

size-checkmargins

Soll die Seitengrösse jeweils auf den Beschnitt verringert werden anstatt auf die gesamte Seite?

size-allowholes

Löcher im Bild werden normalerweise zur Bildfläche hinzugerechnet. Mit dieser Option werden Löcher im Bild nicht zur Bildfläche hinzugerechnet. Die Option ist nur aktiv, wenn kUseClippath (size_useclips) verwendet wird.

size-useclips

Verwende bei Bildern den Bildinhalt. Wird das Bild mit einem Beschneidungspfad angezeigt, wird dieser Pfad verwendet. Der Pfad darf beliebig komplex sein und wird immer mit der Form des Rahmens geschnitten.

Elementwerte

In den Werten mit und ohne visible stand bisher tatsächlich immer der gleiche Wert drin. Das ist gefixt. Folgende Werte werden jetzt in die Elemente eingetragen:

Element Wert Beschreibung
visible-size-absolute Punkte2

Grösse der Cometgruppe. Die Verdeckungen durch darüberliegende Rahmen werden automatisch von der Grösse abgezogen.

Die Grösse wird mit den Einstellungen des Aufrufes berechnet (size-checktrans, ...)

visible-size-relative % zur Seite/Druckseite
size-absolute Punkte2

Tatsäcliche Grösse der Cometgruppe. Rahmenüberdeckungen werden bei der Berechnung ignoriert.

Die Grösse wird mit den Einstellungen des Aufrufes berechnet (size-checktrans, ...)

size-relative % zur Seite/Druckseite

Beispiel. Der Ordner gExampleBasePath muss eine gültige connections.xml Datei mit Ihren Verbindungsdaten (hier "yourConnection") und eine Testdatei (hier temp:cs55.indd) enthalten

var gExampleBasepath = "/Users/paul/Desktop/brutto/";

// Connect
app.comet.setEnvironment (gExampleBasepath + "CometEnvironment", 0,,"", "");
app.comet.use ("yourConnection", "", "", false, "");

// set document and options
var gOptions = app.comet.ping() + ";-1;";
var gDocument = gExampleBasepath + 'temp_cs55.indd';

// open document
app.comet.documentOpen(gDocument, true, gOptions);

// retrieve groups xml from document
var groupXml = new XML(app.comet.getCometGroups(gDocument, Scope.PAGE, 0, '', gOptions + "calc-sizes:true;"));

var xmlGroups = groupXml.descendants('group');

// close document as it is not needed any more
app.comet.documentClose(gDocument, gOptions);

function rnd (str)
{
	return eval (Math.round (parseFloat (str)));	
}

// iterate through the contained groups and alert the size values
for(var i = 0; i < xmlGroups.length(); i++)
{
	alert('-------------  '+ eval (i+1) + '  ------------');
	
	alert('Fläche (sichtbar / gesamt)\t: ' 
		+ rnd (xmlGroup.attribute('visible-size-absolute')) 
		+ "\t\t/ "
		+ rnd (xmlGroup.attribute('size-absolute')));
	
	alert('Fläche in % zur Seite\t\t: '
		+ xmlGroup.attribute('visible-size-relative')
		+ "\t\t/ "
		+ xmlGroup.attribute('size-relative'));

	alert('Verdeckte Fläche\t\t: '
		+ rnd (eval (parseFloat (xmlGroup.attribute('size-absolute'))
		- parseFloat (xmlGroup.attribute('visible-size-absolute')))));
	alert('');
}
05.03.2012
Bug 2769 - Notizen drucken mit InDesign® Server

Kann man die Comet-Notizen eines Dokumentes auch unter InDesign® Server drucken (bzw. in PDFs exportieren)?

In der Desktop-Variante kann man das machen, in dem man ein Preset (für Druck bzw, PDF-Export) mit der Einstellung "Unsichtbare Elemente drucken" erstellt und dieses Preset für die Ausgabe verwendet.

Das geht unter InDesign® Server deshalb nicht, weil Notizen dort beim öffnen eines Dokumentes immer automatisch unsichtbar gemacht werden. Ebenso werden neue Notitzen (document::import_notes) automatisch unsichtbar gemacht.

Mit document::show_notes können Notizen jetzt auch unter InDesign® Server sichtbar gemacht werden. Ausserdem werden die für Notizen nötigen Adornments (Notizenbeschriftung, Pfeile, ...) auch bei InDesign® Server dargestellt.

Hier ein Skript :

#include "internal/types.h"

int main ()
{
	document::import_notes (0, "$DESKTOP/foo.xml",);
	document::show_notes ();
	document::pdf_export(0, 0, "Druckbare Notizen");
	document::hide_notes ();

	return 0;
}

Das Skript setzt voraus, dass Sie in InDesign® das PDF-Preset "Druckbare Notizen" mit der Einstellung "Unsichtbare Elemente drucken" angelegt haben.

ACHTUNG : Nach dem Export der Datei sollten die Notizen unbedingt wieder unsichtbar gemacht werden. Notizen (oder Teile von Notizen) werden sonst in allen Anwendungen (z.B. Whiteboard) sichtbar, die das Dokument (oder Teile davon) extern anzeigen.

TIPP : Mit Hilfe der Funktion document::set_notes_printable können Notizen auch ohne spezielles Preset gedruckt und in PDFs exportiert werden.

05.03.2012
Bug 2768 - Endlosschleife durch Aufgaben-Palette nach Dokumentwechsel

Die Aufgabenpalette (ToDos) bringen InDesign® mit folg. Szenario leicht in eine Endlosschleife :

  1. Seite öffnen
  2. Aufgabenmanagement ausführen
  3. Aufgaben ausführen lassen durch das Aufgabenmanagement
  4. Seite schliessen ohne sichern
  5. Seite wieder öffnen

Wiederholt man diese Schritte 3-4 mal, bleibt InDesign® beim nächsten öffnen hängen.

Das passiert jetzt nicht mehr. Ich kann diese Schritte mit einer Datei, die vorher reproduzierbar beim vierten Mal zur Endlosschleife führte, jetzt über 30 Mal machen.

02.03.2012
Bug 2764 - InDesign® stürzt ab bei Produktaufbau

Habe gerade mal den aktuellen Hotfix getestet (R2808 MAC CS5.5). Mit den neuen Plugins stürzt mir InDesign® beim Produktaufbau mit Seitentemplates aus irgendwelchen Gründen ab. Mit älteren Plugins ist alles Bueno.

Ja, beim Fix von Bug 2733 ist ein kleiner Fehler unterlaufen - ist gefixt.

02.03.2012
Bug 2742 - frame::image_getpath liefert keinen Pfad zurück

Im InDesign® wird ein Bild platziert. Danach wird der Rahmen mit dem Objektwerkzeug kopiert und in einen anderen Rahmen eingefügt(Kontext-Menü=> Bild einfügen). Bei diesen Objekten bekomme ich über die Funktion frame::image_getpath keinen Pfad!

Getestet mit Comet 3.2.3 und 3.3 unter CS 5.5

Unter unserer alten Version Comet 3.1 und CS 3 funktioniert das vorgehen noch!

Ich schreib mal auf, wie ich das verstanden hab :

  1. Es gibt einen Bildrahmen mit einem Bild. Bei diesem Rahmen funktioniert frame::image_getpath.
  2. Mit Cmd-Copy wird dieser Rahmen (nicht das Bild!) in die Zwischenablage kopiert. Das ist wichtig : Der schwarze Auswahl-Pfeil ist aktiv und der BLAUE Rahmen ist ausgewählt, nicht der braune Rahmen des eigentlichen Bildes.
  3. Jetzt wird ein anderer Bildrahmen ausgewählt (auch wieder der blaue) und mit dem Kontext-Menü "Bild einfügen" die Zwischenablage in den Rahmen eingesetzt.

   

InDesign® macht dann Folgendes : In den blauen Rahmen wird ein weiterer blauer Rahmen eingesetzt, der dann das Bild enthält.

Leider hat Adobe mit CS5 die interne Verwaltung der Bildlinks im InDesign-eigenen SDK geändert und Konstrukte wie oben werden dort gar nicht mehr unterstützt.

Die Funktion

    frame::image_getpath

hat deshalb jetzt den (optionalen) Parameter deepDive. In diesem Fall wird die gesamte Rahmenhierarchy rekursiv nach einem Bild durchsucht.

Abgrenzung

In InDesign®-Gruppen und Textrahmen wird natürlich nicht eingetaucht.

Der "Bug“fix betrifft darüber hinaus LEDIGLICH das Verhalten der o.g. Funktion frame::image_getpath. Andere intern verwendete Comet-Funktionen und insbesondere die Funktionen zum Sammeln von Platzhaltern, Aufgaben (ToDos), Export von Dokumentstrukturen (placeholders.xml, elements.xml, groups.xml, ...) können abweichende Pfadangaben ermitteln.

01.03.2012
Bug 2715 - TaggedText mit w2-Platzhaltern und <CharStyle> legt keine Platzhalter an

Das gleiche Problem tritt auf, wenn innerhalb von w2-Tags ParaStyle-Tags stehen.

Das ist jetzt auch behoben.

25.02.2012
Bug 2763 - %!TT-Texte erzeugen intern Doppler der Stildefinitionen

Sieht man nach aussen nicht, ist aber so : Für %!TT-Texte wird der für TaggedText nötige Vorspann mit den verwendeten Stilen automatisch erzeugt :

Ein

    <ParaStyle:Textfahne>

im %!TT-Text ergibt ein

    <DefineParaStyle:Textfahne=>

im intern erzeugten Vorspann. Leider gibt ein zweites "<ParaStyle:Textfahne>" auch einen zweites "<DefineParaStyle:Textfahne=>".

Intern ist das egal, ausser dass beim Import des TaggedText für jede (leere) Stilinformation einmal in der entsprechenden Stiltabelle nachgeschaut werden muss. Diese Zeit kann man ja eigentlich sparen.

Die Stil-Definitionen werden jetzt jeweils nur einmal gemacht.

25.02.2012
Bug 2762 - Falsche Rahmenplatzierung in 1:1-Elementen bei Fortsetzungen

Der Fehler tritt immer dann auf, wenn das Seitenelement die Rahmen in der Mitte oder unten platzieren soll. Dann passiert folgendes :

Die Rahmen werden platziert und justiert. Danach werden die Fortsetzungen erzeugt - aber dazu sollten die Rahmen wieder oben im Element stehen.

    

Dr Fehler ist gefixt.

24.02.2012
Bug 2738 - Absturz beim Platzieren von TIFF-Bildern

Beim Platzieren von defekten TIFF-Bildern per frame::image() stürzt der Comet ab. Anscheinend nicht direkt beim frame::image(), weil ich das in einem Palettenscript nicht reproduzieren kann. Dort liefert's nur "unbekannter Fehler -6" zurück. Im Platzhalter stürzt es ab.

Das Problem ist leider ein bisschen anders : Bei defekten TIFFs zeigt InDesign® eine fest eingebaute Warnung, dass das TIFF kaputt oder inkompatibel ist. Diese Meldung muss man wegklicken. Kann man aber gar nicht, wenn man in zwei Rahmen gleichzeitig ein falsches Bild einsetzen will. Und wenn InDesign® dann vor dem zweiten Bild waren will, stellt es sich selbst ein Bein.

Nun gibt es einige Möglichkeiten, Dialoge und Warnungen zu unterdrücken. Die helfen nur leider alle nichts : Die Warnung wird offenbar zeitversetzt gezeigt. Da hab ich das Zeigen von Warnungen längst wieder an - kann ich ja nicht einfach mal global abschalten.

Ich hab jetzt ewig gesucht - und eine andere Möglichkeit gefunden. Das ganze funktioniert jetzt - ich meine, die fehlerhaften Bilder können zwar nicht importiert werden - aber es stürzt auch nicht.

Zusätzlich wird ins Logfile folg. Meldung geschrieben :

# Error while reading the TIFF image : 
  The image may damaged or incompatible.
  Save the image using different settings, and try again.
# Error -6 while importing image
  '/Users/paul/Desktop/Defekte Bilder/12026350.tif'
22.02.2012
Bug 2760 - Textflowprefix eines Templates wird zwischen JEDEM Rahmen des Templates eingesetzt

Hat man für ein Template einen Textflowprefix eingestellt, wird dieser Prefix zwischen die einzlenen Texte/Inlines der Rahmen des Templates eingefügt. Ich hätte ja eher gedacht, dass der Text verwendet wird, um EINMAL vor dem Template eingefügt zu werden, oder?

Stimmt, das war etwas übereifrig. Der Prefix wird jetzt nur noch EINMAL am Beginn des Textes, der durch das Template erzeugt wird, eingefügt.

22.02.2012
Bug 2758 - igenschaft "Textfluß-Präfix" der Templates wird bei erneutem öffnen des Templates nicht mehr angezeigt

In der Palette zur Einstellung der Template-Eigenschaften (Button der Palette "Templates") gibt es Einstellungen zum Textfluß-Präfix des Templates. Die dort eingestellten Werte werden beim erneuten öffnen des Templates nicht mehr angezeigt.

Das tritt nur unter XML und SOAP auf. Mit SQL funktioniert es.

Das ist gefixt. (Es wurde ein fehlerhaftes select zum Abfragen der Daten für den Dialog gesendet.)

22.02.2012
Bug 2757 - Eigenschaft "Textfluß-Präfix" der Templates kann nicht aktiviert werden

In der Palette zur Einstellung der Template-Eigenschaften (Button der Palette "Templates") gibt es Einstellungen zum Textfluß-Präfix des Templates. Diese Felder sind immer deaktiviert.

In der Doku (extensions.html) steht, dass diese Eigenschaft aktivert wird, wenn man in pageitems die Felder textflowPrefix1, ... anlegt. Hab ich gemacht, geht trotzdem nicht.

In den Plugins wird beim Login die aktuelle Konfiguration geprüft. Da wird auch gefragt, ob die o.g. Felder verfügbar sind. Leider mit einem Rechtschreibefehler : Es wird nach textflowPrefix (ohne 1) gesucht anstatt nach textflowPrefix1. Das ist jetzt gefixt.

    

Workaround : Das Attribut textflowPrefix (Typ int) anlegen. Dann wird das Feature freigeschaltet.

22.02.2012
R2808

Hotrelease

svn 2805

21212

Bug 2756 - Unerklärliche Abstürze bei Aufbau und Reorganisation

Immer wieder kommt es vor, dass InDesign® bzw. InDesign® Server plötzlich abstürzen. Der gleiche Aufbau kann heute oder 10 mal funktionieren aber morgen abstürzen oder gleich beim ersten mal.

Immer wieder kommt es vor, dass InDesign® bzw. InDesign® Server plötzlich abstürzen. Der gleiche Aufbau kann heute oder 10 mal funktionieren aber morgen abstürzen oder gleich beim ersten mal. Inzwischen ist es uns gelungen, einen reproduzierbaren Testfall zu erhalten, der etwa bei jedem

    2. - 10.

mal zum Absturz geführt hat. 

Mit viel Debug-Aufwand konnte ich in den Fehler in der Maschine finden, die für das Ersetzen der <Tags> (z.B. <ID>, <document>, <path>) in Panelstatements und Actions zuständig ist. Diese Maschine basiert auf einer gebräuchlichen, öffentlich verfügbaren Implementierung - und dort war auch der Fehler. Klar, es handelt sich um nicht selbst allokierten Speicher - das ist es ja letztlich immer. In diesem Fall sollten Speicheradressen geladen werden. 

Im günstigen Fall hat die gelesene Adresse nur Mist enthalten. Das war meist nicht schlimm. In jedem Text gibt es unglaublich viele Versuche, ob ein Eingabetext ein gewünschtes Zeichen enthält :

    ... if (a<b) ...

Da geht die Aufmerksamkeit mal hoch, wenn das '<' gelesen wird. Aber spätestens beim ')' ist das auch wieder vorüber - das kann kein gültiges Tag mehr geben. Wenn jetzt bei ')' eine falsche Adresse für den Anfang gefunden wurde, ist das völlig egal.

Im schlechten Fall aber hat der gefragte Speicher eine Adresse rausgerückt, die es gar nicht mehr gibt. Man hat z.B. 8GB (= 8589934592 Bytes) und jetzt soll das Programm an der Stelle 10.000.000.000 nachschauen. Da fällt es um, es kann nicht nachschauen an einer Stelle, die es nicht gibt, da gibt es auf.

Nachdem das gefixt war (mein Test läuft jetzt 10.000 mal), trat ein weiteres Problem auf - die gleiche Stelle hat auch noch unglaublich Speicher verbraucht (600 MB in 1.000 Runden, also etwa 64 kB pro Durchlauf). Das ist jetzt auch gefixt. Der Speicherverbrauch (an dieser Stelle) beträgt jetzt : 0 Byte und mein Test ist 

    150.000

mal gelaufen.

21.02.2012
Bug 2755 - Anpassen der Checkin-Routinen an Installationsumgebung

Abhängig von der Installationsumgebung (namentlich "mit InDesignServer" und "ohne InDesignServer") müssen im Desktop beim Einbuchen unterschiedlich detaillierte Metainformationen generiert werden:

  • mit InDesignServer: es werden nur Notizen benötigt, alles andere wird auf dem Server bei Bedarf berechnet
  • ohne InDesignServer: wir benötigen auch Previews, CometGruppen, Elemente, Platzhalter etc.

Bislang ist es nicht möglich, die Art der Metadatengenerierung an die Umgebung anzupassen.

Zur Erinnerung: was beim Einbuchen geschieht, wird durch das Panelstatement 115 festgelegt. Üblicherweise steht da dann irgendwo

    priint::checkin (gDocumentID, gDocumentPath);

Der Befehl kann durch zwei weitere Parameter an die Umgebung angepasst werden:

  1. (schon lange)
    char * options: Feinanpassung der XML Formate an Anforderungen bzw. Feinsteuerung der Bildgenerierung. Siehe Abschnitt "options" in der Server Development Dokumentation.
  2. (ab R2793)
    int type: kWithInDesignServer oder kNoInDesignServer (internal/types.h muss eingebunden werden), Metadaten für die typischen Fälle mit bzw. ohne InDesignServer.

Der vollständige Aufruf also:

priint::checkin (
	char 	* 	documentID, 
	char 	* 	documentPath, 
	char 	* 	options = 0,
	int 		type = kWithInDesignServer);

! ACHTUNG ACHTUNG ACHTUNG ACHTUNG ACHTUNG !

Für Installationen OHNE InDesign® Server muss also ab R2793 Panelstatement 115 angepasst werden und da als 4. Parameter kNoInDesignServer angegeben werden.

21.02.2012
Bug 2754 - Begrenzung der Baumtiefe bei der Publikationspalette?

Wir haben in der Publikations-Palette festgestellt, dass die Breite der Baumstruktur wohl hardcoded ist und sich nicht breiter ziehen lässt. Das hat zur Folge, dass man ab einer bestimmten Tiefe den Baum nicht mehr weiter aufklappen kann bzw. nicht mehr sieht, was man da für ein Dokument hat:

Was schlagen Sie hier vor um das Problem zu umgehen?

Bisher war die letzte Spalte der Palette die Spalte, die sich der Fensterbreite angepasst hat. Diese Spalte hat jetzt eine fixe Breite. Dafür ist die Namensspalte variabel und passt sich der Gesamtbreite der Palette an.

Die Palette kann darüberhinaus fast beliebig groß gezogen werden.

Damit dürfte das Problem erledigt sein.

21.02.2012
Bug 2753 - SQL Kommentare führen zu unerwartetem Verhalten bis hin zu Abstürzen

Enthalten Panelstatements oder Actions SQL-Kommentare, kann dies zu Problemen führen. Die sind schwer eingrenzbar, i.d.R. äußet es sich so, dass es mal geht, mal nicht und meistens nicht oft hintereinander.

Problematisch sind vor allem Kommentare am Ende des Statements, z.B

    [ ... ] ORDER BY sort -- nach SORT sortieren

Das ist ab R2793 behoben, gleichzeitig ist der Parser auch etwas robuster bzgl. falscher Syntax (nicht geschlossene Quotes, nicht geschlossene C-Kommentare etc.)

21.02.2012
Bug 2752 - Im Dokument gelöschter Textplatzhalter führt über Aufgabenpalette zu falscher Textauswahl

Ein Platzhalter wird in der Liste der Aufgaben (ToDoList) als zu aktualisieren angezeigt. Wird dieser Platzhalter im Dokument gelöscht und dann in der Palette angeklickt (auf das Symbol der ersten Spalte), soll der Status in ein x (gelöscht) geändert werden. Das klappt - aber nur wenn der Text keine Tabellen hat. Dann wird ein grüner Haken angezeigt und die letzte Tabelle im Dokument ausgewählt.

Das ist gefixt. Der Platzhalter bekommt jetzt das erwartete X.

21.02.2012
Bug 2751 - Absturz bei öffnen + Aufgaben laden + Schliessen vieler Dokumente

Macht man folgendes mehrfach, stürzt InDesign® irgendwann ab :

  1. Datei öffnen
  2. Aufgaben laden
  3. Schliessen ohne Sichern

Die Dokumente sollten viele Platzhalter und viele nicht aktuelle Platzhalter haben. Der Absturz kommt dann nach etwa 5-15 Wiederholungen.

Über die Einträge der Aufgabenliste können die Platzhalter im Dokument ausgewählt werden. Dafür müssen die Platzhalter natürlich Angaben über Zielrahmen/text und Textpositionen haben. Textverweise sind eine komplexe interne Struktur der InDesign®-API von Adobe, die einen sehr - nun sagen wir - feinfühligen Umgang benötigen. Sonst kann es passieren, dass diese Objekte irgendwann einmal nach ihrem Dokument fragen, das vielleicht schon längst (wie hier) geschlossen ist. Leider ist, entgegen der geforderten Feinfühligkeit in der Anwendung, der Umgang innerhalb der API eher rau. Dort wird nicht lange gefackelt, Prüfungen auf NULL oder so was werden da offenbar nie gemacht. Tja, und dann Absturz.

Der Fehler ist gefixt. Ich kann die oben beschriebenen Schritte jetzt über 100 mal machen.

21.02.2012
Bug 2750 - Einstellung "Fehler ignorieren" des Seitenaufbaus wird ignoriert

Die Einstellung, dass Fehler beim Seitenaufbau ignoriert werden sollen, wird zumindest dann ignoriert, wenn man das Aufbau-Button klickt. Treten dann Fehler auf, werden die zwar erstmal übergangen und mit dem Aufbau fortgesetzt. Ganz am Ende wird das Dokument aber wieder in seinen Ausgangszustand versetzt. Schön wäre ja eigentlich, wenn man den (zwar fehlerhaften) Aufbau trotzdem bekommen würde - wo man ja auch schon die ganze Zeit gewartet hat.

Das wird jetzt so gemacht. das Dokument wird dann nicht mehr "zurückgespielt".

21.02.2012
Bug 2733 - Aufbau über Seitentemplates: Musterseitenelemente werden übernommen

Werden mehrere Seiten über den Seitentemplate-Aufbau erzeugt, so werden immer die evtl. vorhandenen Musterseitenelement, die mit Platzhalter versehen sind, auf die Satzseiten übernommen. Dieses Verhalten war mir schon früher aufgefallen, ich fans es etwas lästig,aber nicht wirklich störend.

Kritisch wird es dann, wenn man beim Seitenaufbau mit einem Seitentemplate beginnt und in diesem ST einen Nachfolger bestimmt hat. In diesem Fall werden interessanterweise die Musterseitenelemente von der ersten Seite auf die Nachfolgerseite übernommen, dort gibt es dann eine Fehlermeldung, dass der Aufbau nicht ausgeführt werden konnte, weil das Element nicht passt (obwohl das eigentlich nicht stimmt).

Der Fehler ist gefixt.

21.02.2012
Bug 2741 - Anführungszeichen in String-IDs führen in Skripten zu Problemen

Enthält die StringID eines Produktes ein Anführungszeichen ("), kann das Doppelklick-Skript nicht ausgeführt werden. Es erscheint der Fehler -9 ("; missing"). Das passiert auch schon bei dem einfachsten Skript :

int main ()
{
    return 0;
}

Der Fehler betrifft verschiedene Arten von Skripten (z.B. Doppelklick in der Produktpalette, verschiedene Unterstützungsskripte für den Seitenaufbau und der Publikationspalette und der Aufbau wiederholender Elemente). An allen Fällen wurden Anführungszeichen im String nicht cScript-konform maskiert.

Der Fehler ist gefixt.

Internal mark : #sid""

10.02.2012
Bug 2749 - Menü Comet-Gruppen > Auswählen wählt Unterobjekte interaktiver Elemente

Enthält eine Cometgruppe interaktive Elemente (Objektstati, Buttons, ...) werden über das Kontextmenü Comet-Gruppen > Auswählen nicht die interaktiven Elemente, sondern deren Unterelemente ausgewählt.

Der Fehler ist gefixt.

Internal mark : #group_sel

09.02.2012
Bug 2748 - Rahmen der Produkte des Dokumentes löschen führt zu Fehlern, wenn Objektstati in den Cometgruppen enthalten sind

Alt-Click des Löschen-Buttons der Palette Produkte des Dokumentes führt zu Fehlern, wenn in den zugehörigen Cometgruppen Objektstati und Buttons enthalten sind. In diesem Fall werden statt der Hauptobjekte die Unterrahmen gelöscht. Die Hauptobjekte bleiben als (unsichtbare) Objekte im Dokument erhalten. Das Dokument kann danach nicht mehr benutzt werden.

Der Fehler ist gefixt.

Internal mark : #pod_del

09.02.2012
Bug 2747 - Rahmenauswahl der Produkte des Dokumentes wählt statt Buttons und Objektstati deren Unterobjekte aus

In der Palette Produkte des Dokumentes werden bei aktiviertem "Auswahl synchronisieren" automatisch die zu einem Listeneintrag gehörenden Dokumentrahmen selektiert. Das funktioniert. Enthält die Cometgruppe Objektstati oder Buttons, werden aber statt dessen deren einzelne Stati (also die Unterobjekte) ausgewählt. Das macht mal so weit nichts. Will man die Rahmenauswahl jetzt aber löschen oder verschieben, stürzt InDesign® ab. Es sollten wohl besser die jeweilgen Hauotobjekte ausgewählt werden.

Das wird jetzt so gemacht. Der Fehler ist gefixt.

Internal mark : #pod_sel

09.02.2012
Bug 2746 - Wiederholende Elemente in Cometgruppen führen zu falschen Objekt-IDs in "Produkte des Dokumentes"

Enthält eine Cometgruppe Rahmen, die von wiederholenden Elementen angelegt wurde, werden in der Palette Produkte des Dokumentes falsche IDs angezeigt - nämlich die ID eines dieser Rahmen.

Ja, das passiert immer dann, wenn diese Rahmen die am weitesten links oben in der Cometgruppe liegenden Rahmen sind. Der Fehler ist gefixt.

Internal mark : #pod_rep

09.02.2012
Bug 2744 - Objektstatus-Objekte führen zu Einträgen "Manuell angelegte Cometgruppe" in "Produkte des Dokumentes"

Enthält eine Cometgruppe Objektstatus-Objekte oder Buttons, werden in der Palette Produkte des Dokumentes die Cometgruppen als "Manuell angelegte Cometgruppe" erkannt - und werden falsch reorganisiert.

Ja, das passiert immer dann, wenn das Objektstatus der am weitesten links oben liegende Rahmen der Cometgruppe liegt. Der Fehler ist gefixt.

Internal mark : #pod_mso

09.02.2012
Bug 2744 - Druckbarkeit einzelner Rahmen

Kann man, wie für Notizen möglich, auch die Druckbarkeit einzelner Rahmen ermitteln und ändern?

Ja, dazu gibt es die neuen Funktionen

    frame::get_printable
    frame::set_printable

Nichtdruckbare Rahmen werden im Dokument mit einem roten Dreick rechts oben am Rahmen markiert. Dazu muss die Ansicht "Nägel und Magneten : Zeigen" aktiviert sein.

Comet-Kommentare sind standardmässig nicht druckbar. Diese Rahmen bekommen daher keine spezielle Markierung, wenn sie nicht druckbar sind. Comet-Kommentare bekommen eine Markierung (blaues Dreick rechts oben) wenn sie druckbar sind.

    

Im Bild sehen Sie einen nicht druckbaren normalen Dokumentrahmen (orange) und einen druckbaren Comet-Kommentar.

08.02.2012
Bug 2745 - Druckbarkeit von Comet-Notizen via cScript setzen

Kann man die Druckbarkeit von Comet-Notizen auch mit Hilfe der Skriptsprache setzen?

Ja klar :

    document::get_notes_printable
    document::set_notes_printable
08.02.2012
Bug 2743 - Druckbare Comet-Notizen

Comet-Notizen werden ja nicht gedruckt und nicht in PDF-Exporte übernommen. Das ist ja prinzipiell auch gut so. Kann man Notizen vielleicht trotzdem in der Druckausgabe sichtbar machen?

Mit folgenden Menüpunkten geht das jetzt :

Die Menüs ändern jeweils die Druckbarkeit aller Notizen des gesamten Dokumentes.

Sichtbar gemachte versteckte Notizen und neue Notizen bekommen die aktuelle Notizen-Druckbarkeit des Dokumentes. Die Druckfähigkeit der Notizen eines Dokumentes wird in der Palette Kommentare angezeigt :

    

08.02.2012
Bug 2737 - Snippets der Previewpalette können nur aus pageitems geladen werden

Laut Doku können die Einträge der Palette Previews auch aus eigenen Tabellen/Ordnern geladen werden. Dazu werden die letzten beiden Parameter der Objekt-Statements der Previews/Snippets verwendet. Leider klappt das nicht.

Das funktioniert jetzt.

Unter XML und SOAP kann der zweite Zusatzparameter zudem eine Angabe über das Format des einzufügenden Snippets enthalten (INDD, INDS, IDMS).

Unter SQL muss die Tabelle über das int-Attribut

    format

verfügen, in dem das Format des jeweiligen BLOBs eingetragen wird.

Mehr dazu in der Online-Doku.

06.02.2012
Bug 2736 - Einstellung, ob Templates und/oder Tabellentemplates angezeigt werden sollen ist nicht Neustart-fest

In der Template-Palette kann man auswählen, ob man alle oder nur die "normalen" oder nur die Tabellentemplates sehen will. Sehr schön. Kann man das auch so machen, dass sich InDesign® diese Einstellung "merkt"?

Ja klar, geht jetzt.

03.02.2012
Bug 2735 - Ausfiltern von Comet-Snippets aus der Liste der Templates

Mit itemlist::create_snippet können ja Comet-Snippets in der Tabelle pageitems angelegt werden (Einträge mit kindID = 2). Diese Snippets werden wir "normale" Templates in der Templateliste angezeigt. Könnte man die vielleicht aus der Liste ausfiltern?

Neben den beiden Buttons zum Ausfiltern der normalen und der Tabellen-Templates gibt es jetzt einen weiteren Knopf, mit dem die Snippets aus der Anzeigeliste ausgefiltert werden können.

    

03.02.2012
Bug 2734 - Grössenangabe von Einträgen der Preview-Palette wird ignoriert

In den Anweisungen zum Laden der Listeneinträge kann in den Spalten 4 und 5 die Grösse des Eintrages angegeben werden. In der Preview-Palette wird aber trotzdem die Grösse 0 x 0 Pixel angezeigt.

Ja, und zwar immer dann, wenn der Eintrag keine Formatangabe (Spalte 3) und kein gültiges Preview hat. Hat ein Eintrag keine Formatangabe, wird nämlich versucht, Format, Bildgrösse und Auflösung aus dem Bild zu ermitteln. Ist kein Bild da, geht das schief.

Der Fehler ist gefixt.

03.02.2012
Bug 2732 - itemlist::create_snippet funktioniert nicht richtig

Wenn ich die Doku richtig verstehe, sollte die Funktion folgendes machen :

  • 3 Parameter : Erzeuge ein InDesign®-Snippet
  • 5 Parameter : Erzeuge ein Comet-Snippet. Die Meta-Daten des Snippets werden über den Template-Dialog erfragt.
  • mehr als 5 Parameter : Erzeuge ein Comet-Snippet. Die Meta-Daten werden aus den
    Parametern des Aufrufes genommen.

Dazu einige Fragen :

  1. Kann man InDesign®-Snippets auch direkt in die Datenbank exportieren?

    Nein, das ist bisher nicht vorgesehen, kann aber sehr einfach selbst
    implementiert werden. In der Doku von itemlist::create_snippet findet sich ein Beispiel, wies geht.

  2. Bei 5 (und mehr) Parametern werde ich angemeckert, dass die Attribute recordid, ... in pageitems fehlen. Was ist denn das?

    Comet-Snippets sind Objekte, die in der Palette Previews geladen werden können.
    Die dort gezeigten Einträge stellen Alternnativen eines Produktes dar. Dazu
    muss man natürlich erst mal ein Produkt haben - das wird in der Tabelle
    pageitems in den Feldern

        recordid, recordid2, recordid3, recordstringid

    hinterlegt. Die Felder müssen bei Bedarf in der Datenbank angelegt werden.

  3. Mit 5 und mehr Parametern funktioniert der Aufruf offenbar nicht. Auffällig ist, dass im Logfile bei "... data = [binfile ] " gar keine Datei angegeben ist.

    Stimmt. Ab CS5 funktionierte der Befehl nicht mehr. Das ist jetzt gefixt.

  4. Was für ein Format hat das Comet-Snippet eigentlich?

    InDesign®-Snippets haben das Format IDMS.

    Comet-Snippets haben das Format INDD und werden im Attribut pageitems.KindID
    mit 2 markiert.
03.02.2012
Bug 2704 - Über <in:> vergebene String-ID werden als Tagged Text maskiert

In einem meiner Projekte werden Inline-Platzhalter-Rahmen mit Markenlogos generiert. Dabei werden den einzelnen Rahmen ID1-3 des Produktes zugewiesen, in die String-ID schreiben wir den Namen der Marke (zur Weiterverarbeitung im Platzhalter des generierten Inline-Rahmens). Dabei werden die String IDs offenbar in Tagged Text gewandelt.

Beispiel

Generierter Inline-Rahmen:

   <in: 56.6929, 56.6929,177,17,10002,247435,'Röhm'></in>

Das Auslesen der gRecordStringID im Platzhalter 177 ergibt dann aber nicht "Röhm", sondern "R<0x00F6>hm", so daß folgender Code:

    query::send(qu,"select datei from comet_marken_logos where marke = ?");
    query::input(qu,kString,gRecordStringID);
    query::output(qu, kString, name);
    query::exec(qu);
    query::fetch(qu);

zu folgendem Query führt:

    select datei from comet_marken_logos where marke = 'R<0x00F6>hm';

Ich habe das jetzt umgangen, indem ich das Ganze per tagged_to_utf8 umgewandelt habe, aber die Erwartung wäre, dass wenn ich "äöü" in die StringID schreibe, dass ich dann auch genau das wieder rausbekomme, wenn ich es auslese. ;-)

Das Problem war trat beim Lesen der in-Tags auf und ist jetzt gefixt.

02.02.2012
Bug 2730 - Wiedererkennbare Notizen

In Workflows werden Notizen in InDesign®-Dokumente importiert, bearbeitet und wieder exportiert. Leider ist nach dem Export nicht mehr erkennbar, welche alte Notiz zu welcher neuen Notiz gehört. Gibt es dafür eine Lösung?

Die XML-Struktur der Notizen kann jetzt eine Reihe von Attributen enthalten, die Comet-seitig nicht verändert werden :

<note
	id="4" 
	type="hint"
	customerID="10"
	customerID2="11"
	customerID3="12"
	customerStringID="sttring1"
	customerData1="data11"
	customerData2="data12"
>

Die Werte der Customer-Attribute können ausserhalb von InDesign® definiert werden und werden von den Comet-Plugins einfach durchgereicht. Es gilt :

  • note.customerID, note.customerID2, note.customerID3 müssen integer-Strings sein
  • note.customerStringID, note.customerData1, note.customerData2 können beliebige String-Werte sein.
  • Die Werte werden Comet-seitig nicht geändert.
  • Haben die Attribute in der Import-Datei gefehlt, bekommen sie beim Export die Werte, 0, 0, 0, "", "", "". (Die Attribute werden also beim Export automatisch angelegt, egal, ob sie vorher existiert haben oder nicht.)
  • Die Werte werden in der Palette 'Kommentare' angezeigt (können dort aber nicht editiert werden) :



    Auf Kundenwunsch wurden die beiden Felder Info 1 und Info 2 wieder ausgeblendet. Sie sind in der aktuellen Version nicht mehr sichtbar.
  • Die Werte noteCustomerData1 und note.CustomerData2 werden beim Duplizieren von Notizen-Rahmen in InDesign® ebenfalls dupliziert. Die Felder note.customerID, note.customerID2, note.customerID3 und note.customerStringID werden, wenn eine Notiz mit gleicher CustomerID im Dokument existiert (sichtbar oder unsichtbar) auf [0, 0, 0, ""] gesetzt.
  • Die Werte werden in die Exportformate IDML, IDMS, ... übernommen (als CustomerID, CustomerID2, CustomerID3, CustomerStringID, CustomerData1, CustomerData2) und beim Import wiederhergestellt. Existiert im Dokument bereits eine Notiz mit gleicher CustomerID, wird die ID des neuen Rahmens auf [0, 0, 0, ""] gesetzt.
02.02.2012
Bug 2699 - Icons im Produkte-Panel per HTTP Download

(siehe auch hier)

Jetzt ist aber so, das nur 8 bit PNGs transparent angezeigt werden, 16 und 24 bit nicht.

Der Fehler ist gefixt.

FYI

Das Problem bestand darin, dass die von Adobe bereitgestellte Funktion zum Berechnen von Previews mit den Alpha-Pfaden der PNGs nicht umgehen kann. (Genauso wie sie mit EPS-Bildern nicht umgehen kann.) Für die EPS-Bilder haben wir einen Workaround. Der wird jetzt auch für PNGs verwendet.

    

02.02.2012
Bug 2729 - Attribut user der Tabelle placeholdergroups ist MSSQL-Schlüsselwort

Das in der Tabelle placeholdergroups verwendete Attribut user führt unter MSSQL zu einem Konflikt mit dem dort definierten Schlüsselwort user.

Sie können statt user jetzt irgendeinen anderen (erlaubten) Bezeichner verwenden. Der verwendete Bezeichner muss in diesem Fall zusätzlich in der Tabelle keywords unter dem Schlüssel USER eingetragen werden :

    insert into keywords (ID, keyword, value) values (nextID, 'USER', 'Ihr_Bezeichner');

Wird der Standard-Bezeichner placeholdergroups.user verwendet, können Sie den Eintrag in keywords weglassen.

31.01.2012
Bug 2728 - Platzhaltergruppen funktionieren nicht unter SQL

In der Doku steht, dass die Tabelle placeholdergroupsXplaceholders kein ID-Attribut benötigt. Trotzdem wird es beim Login erfragt - und dann können die Platzhaltergruppen nicht geladen werden.

Legt man das Attribut an, gibt es einen Fehler beim Anlegen eines neuen Eintrages, weil dann kein Wert für ID übergeben wird.

Als m:n-Tabelle benötigt die Tabelle tatsächlich kein ID-Feld. Das Laden nach dem Login war falsch. Dort mussten eigentlich die placeholderIDs für jede Gruppe erfragt werden.

Das ist jetzt gefixt.

31.01.2012
Bug 2726 - Absturz bei app.comet. getCometGroups

Unter bestimmten Umständen führt app.comet.getCometGroups zum Absturz von InDesign. Das passiert immer dann, wenn (wie auch immer das passieren kann) das Dokument InDesign®-Gruppen enthält, die sich selbst als Unterlemente enthalten.

Problem

Comet-Gruppen können durch InDesign®-Gruppen hindurchgehen. Für die Berechnung der Cometgruppen ist es daher nötig, die Unterelemente der InDesign®-Gruppen zu sammeln. Da InDesign®-Gruppen wieder InDesign®-Gruppen enthalten können, ist das natürlich rekursiv. Naja, der Rest ist klar - nach relativ kurzer Zeit kommt ein Stack-Overflow.

Testskript

var gDocumentPath = "/Users/paul/Desktop/aaa.indd";
var gXML = "/Users/paul/Desktop/xml1.xml";

app.comet.documentOpen (gDocumentPath,  true,  "");
alert (app.comet.getCometGroups (gDocumentPath,Scope.SPREAD,0,gXML,""));
app.comet.documentClose (gDocumentPath, "");

Lösung

Den Fehler in der InDesign®-API können wir natürlich nicht beheben. Wir überprüfen deshalb jetzt, ob eine InDesign®-Gruppe sich selbst enthält und beenden die Suche nach Unterobjekten in diesem Fall. Der Fehler ist damit behoben (ab v3.3 R2791).

Workaround

Das folgende Skript löscht diese Rahmen auch automatisch :

int main ()
{
	ItemList 	frames 		= itemlist::allframes ();
	ItemRef 	frame 		= item::alloc ();
	ItemList 	subframes;
	ItemRef 	subframe 	= item::alloc ();
	int 		i;

	for (i=0; i< itemlist::length (frames); i++)
	{
		itemlist::get (frames, frame, i);
		if (frame::is_group (frame))
		{
			subframes = itemlist::subframes (frame);
			if (itemlist::length (subframes) == 0)
			{
				wlog ("", "# Removing frame %d.\n", item::getint (frame));
				frame::remove (frame);
			}
			itemlist::release (subframes);
		}
	}
	return 0;
}
31.01.2012
Bug 2725 - Absturz bei wiederholtem öffnen und Schliessen des gleichen Dokumentes mit app.comet.documentOpen / Close

Das folgende JavaSkript kann genau einmal ausgeführt werden. Es öffnet ein Dokument und schliesst es sofort wieder :

var gDocumentPath = "/Users/paul/Desktop/aaa.indd";

app.comet.documentOpen (gDocumentPath, true, "");
app.comet.documentClose (gDocumentPath, "");

Beim zweiten Aufruf stürzt InDesign® ab. Unter IDServer funktioniert das Ganze.

Der Fehler ist gefixt.

31.01.2012
Bug 2715 - TaggedText mit w2 - Platzhaltern und <CharStyle> legt keine Platzhalter an

TaggedText mit w2-Platzhaltern legt keine Platzhalter an, wenn der Platzhalter-Text <CharStyle:>-Tags enthält :

    %!TT<w2: 30, ....><CharStyle:Preis>12,99<CharStyle:></w2>

Das Problem besteht darin, dass die Tags im in TaggedText kontext-sensitiv sind. Das Tag <CharStyle:> hat eine Sonderbedeutung und beendet automatisch alle anderen offenen Zeichenstil-Tags (von denen das w2-Tag eines ist). Auch der folgende w2-Tag-freie TaggedText ist falsch : 

    %!TT<cStrikethru:1><CharStyle:Preis>12,99<CharStyle:><cStrikethru:>

In beiden Fällen wird gemeldet, dass die jeweilige Abschlussmarke keine Anfangsmarke hat. Das ist richtig, <CharStyle:> hat das Tag ja bereits geschlossen. Da gewöhnlich die Option "Fehlerhafte Tags vor Import zeigen" abgeschaltet ist, sehen wir diese Fehlermeldung aber nicht. Die Wirkung ist "nur", dass der Platzhalter (oder die Durchstreichung) im Text fehlen.

Lösung 1

Mit den Menüs

  • Zusatzmodule > Comet > Platzhalter aus TaggedText anlegen
  • Zusatzmodule > Comet > Platzhalter in TaggedText schreiben

kann das neue Verhalten abgeschaltet werden. Die Plugins behandeln TaggedText dann wieder wie in Versionen vor Comet 3.3.

Lösung 2

Umformatieren des TaggedTextes so, dass die w2-Tags jeweils innerhalb der CharStyles stehen. Das obige Beispiel würde also so aussehen:

    %!TT<CharStyle:Preis><w2: 30, ....>12,99</w2><CharStyle:>

Man muss darauf achten, dass jedes CharStyle ausserhalb der w2-Tags steht. Bei Bedarf müssen dabei zusätzliche (gleiche) w2-Tags eingefügt werden. Hier ein Beispiel :

    %!TT<w2: 30, ....><CharStyle:Preis>12<CharStyle:><CharStyle:PreisOben>,99<CharStyle:></w2>

wird zu :

    %!TT<CharStyle:Preis><w2: 30 ... >12<w2:><CharStyle:>
          <CharStyle:PreisOben>
<w2: 30 ... >,99<w2:><CharStyle:>

Lösung 3

Mit dem Fix von Bug 2715 wird TaggedText mit w2-Platzhaltern, die <CharStyles> enthalten, automatisch umformatiert. Die änderungen werden ab Comet 3.3 R2791 in den Pluigns enthalten sein.

30.01.2012
Bug 2693 - Tabelle enthält nach compress_colwise () leere Platzhalter

Unter schwer reproduzierbaren Voraussetzungen werden in einer Tabelle bei table::compress_colwise und table::woodoo in den neuen Zellen der Tabelle leere Platzhalter gesetzt.

Der Fehler ist behoben.

28.01.2012
Bug 2692 - decompress_colwise () ist nicht rückwärtskompatibel

In einem Dokument wird eine Tabelle mit table::compress_colwise() komprimiert (Ver. 3.2.3 R 2621 CS5.5). Mit einer neuen Version (3.3 R 2717) lässt sich die Tabelle nicht mit decompress_colwise entkomprimieren. Der Rückgabewert ist zwar 0 = okay, aber es passiert nichts. Wenn die Tabelle mit 3.3 komprimiert wird, funktioniert auch das Entpacken einwandfrei.

Der Fehler ist gefixt. Tabellen, die in 3.2.3 komprimiert wurden, können jetzt auch mit 3.3 wieder vergrössert werden.

27.01.2012
R2790

26.01.2012

Bug 2714 - Platzhalter / TaggedText Import und Paragraphenstile mit Sonderzeichen

Comet kann keinen Fließtext!

Naja, nicht ganz: Enthält der dem einen Platzhalter umgebenden Absatz zugewiesene Absatz- oder Zeichenstilname Sonderzeichen (Beispiel "Fließtext") so wird beim Ersetzen des Platzhalters mit TaggedText

  • erstens ein neuer Stil mit (falsch) als System-Zeichen interpretierten UTF8 Zeichen angelegt
  • zweitens der ursprüngliche Absatz bzw. Zeichenstil nicht richtig angewendet

Gelöst in Version 3.3, R2786

23.01.2012
Bug 2713 - Comment panel broken

In certain circumstances the comment panel gets in an illegal state: comments created with any of the "Note" tools or the "Plus" button in the panel don't appear in the comment list, these notes will also appear in the whiteboard as normal frames.

Steps to reproduce:

  • activate the comment panel (i.e. bring it to front)
  • open a document with at least one comment, delete ALL comments
  • close the document, activate any panel (e.g. "Publications")
  • open another document, create comments with the "Note" tool or "Plus" button
  • optionally checkin the document and open it in priint:suite to see the effect in the Whiteboard

This bug has been fixed in R2782

20.01.2012
Bug 2724 - Optimierung Checkin über Publikationspalette

Beim Einbuchen über die Publikationspalette werden jetzt ja immer alle Metadaten mitgeschickt. Die sind derzeit etwas ausführlich und enthalten eine Menge Informationen, die i.d.R. gar nicht benötigt werden. Das kostet Rechenzeit im Desktop, Übertragungszeit im Netz und wieder Rechenzeit und Speicher auf dem Server.

Ab R2790 ist das Standardformat wesentlich gestrafft:

  • Element und Platzhalterinhalte werden nicht mehr exportiert
  • Koordinaten werden nur als einfache BBoxes ausgegeben

Wenn ausführlichere Informationen benötigt werden, kann dies durch Anpassung des Einbuchen-Panelstatement (115) und Aufruf des Befehls

priint::checkin_document

gesteuert werden. Dieser Befehl erlaubt im Parameter "options" alle Angaben, die in der CometServer Entwicklerdoku (Abschnitt "Options") aufgeführt sind.

Mit dem neuen Skriptbefehl

priint::create_metadata (ItemRef docRef, char * destPath, char * options)

können Metadaten-Zips auch lokal und unabhängig von der Publikationspalette generiert werden.

25.01.2012
Bug 2723 - Schnittstellenerweiterung

Vor allem für die direkte Nutzung der Skripting Schnittstelle von InDesign® Server(bzw. der Comet-Erweiterungen) wäre es praktisch, wenn man bestimmte Eigenschaften (CometGruppe, Produkt-ID...) direkt von einem Rahmen abfragen könnte.

Einfach gesagt, aber schon die CometGruppen-ID muss ja berechnet werden (persistent vs. UID im Dokument), also gelöst durch eine neue Methode des PageItem Objekts:

getCometProperty (String propertyName)

liefert bestimmte Eigenschaften. Als propertyName werden derzeit ausgewertet:

  • COMETGROUP
  • RECORDID
  • PLACEHOLDERID
  • GROUPMEMBERS

Ergebnistyp ist jeweils ein String, Beispielaufruf (in JavaScript):

var frame = doc.rectangles[frameIndex];
var groupID = frame.getCometProperty ("CometGroup");

Und dann gibt es neu auch die Methode

placeholderStore

des Application.comet Objekts. Die ruft einfach das Speichern-Skript des / der Platzhalter auf, ohne Werte im Dokument neu zu setzen etc. Aufruf genau wie placeholderLoad und placeholderSync

28.12.2011
Bug 2722 - Musterdokument-Verwaltung in der Publikationspalette

In der Publikationspalette sollen neben Dokumenten auch Musterdokumente bearbeitet werden können. Die Suche über conditions und conditionmenues ist dafür nicht intuitiv.

Das ist jetzt als aktivierbarer Palettenmenü-Eintrag realisiert.

Der Menübefehl ist aktiv, wenn eine Datenverbindung besteht un

  • Panelstatement 130 (Musterdokumente Liste) ode
  • Panelstatement 131 (Musterdokumente Objekte) definiert sind

(im Fall von SOAP-Verbindungen ist nur Panelstatement 130 relevant).

    Musterdokumente

Sonstige Verwendung genau wie Panelstatement 36 und 37.

15.01.2012
Bug 2721 - Globale Variablen mit InDesign® Server/ Whiteboard

Globale Variablen werden im Desktop ja gerne dafür verwendet, um sitzungsspezifische Umgebungsvariablen festzulegen. Wie kann ich die mit InDesign® Server/ Whiteboard verwenden?

Hierzu war zunächst eine Erweiterung des CometServers notwendig, mehr dazu in der Entwicklerdokumentation für CometServer.

PlugIn-seitig gibt es

1. zwei neue Panelstatements für

  • Wechsel der Session: 13
  • Nutzung einer Session: 134

Es wird jeweils ein cscript erwartet, als einzige globale Variable ist der String gSessionID definiert.

2. den neuen Skript-Befehl

  • server::get_sessionproperty (char * propertyName, char * out = 0): static const char *

3. zwei Skriptbefehle zum vereinfachten Zugriff auf globale Variablen

  • system::set_global (char * name, char * value) : int
  • system::get_global (char * name, char * out = 0) : static const char *

Mehr dazu in der cscript-Dokumentation.

Ein einfaches Session-Wechsel Skript kann z.B. so aussehen:

int main ()  
{     
    char * lang = server::get_sessionproperty ("language");
    
    system::set_global ("gUserLanguage", lang);
    return 0; // ! 
}

In beliebigen cscripten kann dann auf die globale Variable "gUserLanguage" zugegriffen werden und die ist abhängig von der jeweiligen Sitzung.

 
Bug 2720 - Templatetausch und Produkttausch gehen mit InDesign® Serverfnicht

InDesign® SERVER

Die Desktop PlugIns unterstützen ja die Features

  • Template tauschen unter Beibehaltung der (eventuell bereits editierten) Produktdaten
  • Produkt tauschen unter Beibehaltung des (eventuell bereits nachbearbeiteten) Templates

Beides lässt sich mit InDesign® Serverfbislang nicht aufrufen.

Dabei ist die Lösung so einfach: Die Methode "cometGroupReplaceGroup" platziert anstelle einer bereits vorhandenen CometGruppe eine andere, für die Platzierung können Template-ID und Record-ID angegeben werden.

Wird als templateID -1 übergeben, werden nur die bestehenden Platzhalter neu verknüpft und geladen (= Produkttausch)

  • eine leere RecordID (= "0,0,0,\"\"") übergeben, wird ein neues Template eingesetzt und die Produktdaten (sofern entsprechend gelabelt) bevorzugt aus dem Dokument übernommmen (= Templatetausch)
  • In allen anderen Fällen verhält sich die Methode wie gewohnt (= die alte Gruppe wird gelöscht und an der Position im Dokument eine neue eingesetzt).

Realisiert ist das ab R2780

28.12.2011
Bug 2708 - table::cell:get_fillcolor_rgb / ~lab/ ~cmyk Doku-Fehler

In der Doku steht:

static int cell::get_fillcolor_cmyk (Table T, int col, int row, ...usw

Der Befehl braucht aber zuerst die Zeile und dann die Spalte!

col, row -> row, col

Andersrum ist es nämlich ein 1A InDesign®-Killer.

Vielen Dank für den Hinweis!

Sinngemäß gilt das auch für

  • get_stroke
  • get_strokecolor_rgb/lab/cmyk

Die Dokumentation ist ab R2774 korrigiert.

Achtung! Bei einer ganzen Reihe weiterer Tabellen- und Zellenfunktionen (get_rotate, get_text, get_textpos etc.) ist die Parameter-Reihenfolge aber tatsächlich wie angegeben 1. Spalte, 2. Zeile.

12.01.2012
Bug 2719 - placeholderLoad / Store / Sync Methoden liefern falsche Fehlercodes

Nur relevant für InDesign® SERVER

Die Methoden placeholderLoad / Sync / Store etc. der Scripting-Schnittstelle liefern falsche Fehlercodes. Bei leeren Seiten oder Spreads sowie ungültigen Rahmen-IDs wird 538644 (kDataPanelFatalUnrecoverableErrorCode) geliefert, obwohl 538639 (kDataPanelPlaceholderNotFoundErrorCode) bzw. 538638 (kDataPanelElementNotFoundErrorCode) richtig wäre. Alle anderen Fälle (ungültige Spreads, Seiten, Gruppen etc.) liefern richtige Fehlercodes.

Nun ja, man könnte sagen: die Eingabe ist schon Müll, dass ein Fehler zurückgegeben wird ist ja erstmal positiv. Andererseits erlaubt uns die genauere Fehlerbehandlung an dieser Stelle auch, Operationen früher abzubrechen und somit für einen allgemein stabileren Betrieb zu sorgen. Ab R2790 verhalten sich diese Methoden (und viele andere mehr) korrekter.

25.01.2012
Bug 2718 - Publikationen: Suchparameter werden unter SOAP / XML nicht ersetzt

In conditionmenues.xml und conditions.xml definierte Suchparameter werden in SOAP / XML nicht oder nicht richtig ersetzt.

Die Ersetzung von Suchparametern funktioniert nur unter ganz bestimmten Bedingungen: Die ID des condition Eintrags stimmt mit der ID des conditionmenues überein, sind mehrere conditions für ein Menü definiert wird immer die erste Ersetzung angewendet. Zudem werden bei Verbindungsaufbau die Default-Einträge (Element defaultselection) nicht vorausgewählt.

Gelöst in R2790

25.01.2012
Bug 2709 - CometGruppen Verhalten inkonsistent

Besteht eine CometGruppe nur aus genau einer InDesign®-Gruppe ist das Verhalten in einigen Punkten inkonsistent:

SERVER

Bei Platzierung einer solchen Gruppe (placeTemplate, replaceCometGroup etc.) wird keine Gruppen-ID zurückgegeben.

DESKTOP

Bei Auswahl der CometGruppe (in diesem Fall also: der InDesign®-Gruppe) gehen die sonst für CometGruppen zur Verfügung stehenden Kontext-Menü Funktionen (wie z.B. Hinzufügen zur Gruppe) nicht.

DESKTOP und SERVER

Bei Templatetausch geht die (persistente) Gruppen ID verloren

Das ist alles gefixt in R2786

23.01.2012
Bug 2685 - Preview-Palette Verknüpfungen werden nicht sauber gesetzt

Fehlerbeschreibung:

Wenn in der Preview-Palette die Option "Aktuelle Bildeinstellungen bevorzugen" aktiviert ist, dann werden bei kopierten Bildrahmen die Verknüpfungen nicht sauber gesetzt.Das Problem taucht auch auf, wenn ein Bild mit frame::image(fr, path, kPlaceLikeExisting) platziert wird. Seit CS5 bildet InDesign® in der Verknüpfungspalette ja hierarchische "Gruppen" identischer Bilder. Anscheinend wird bei PlaceLikeExisting die "Gruppen"-Zugehörigkeit mit übernommen.

Was passiert:

Mit kPlaceLikeExisting wurde nicht die Verknüpfung aktualisiert, sondern die Resource, auf die die Verknüpfung zeigt. Bildrahmen, die auf die gleiche Resource zeigen, werden gleich mitgeändert.

11.01.2012
Bug 2695 - Standard-Tabellen-Designmethode "gleiche Zellen verbinden" funktioniert nicht

Die Gestaltungsregel "Gleiche Zellen verbinden" verbindet gleiche Zellen nicht.

Grund war der neue TaggedText Export, der die kompletten w2 Angaben enthält, also auch die RecordID. Die ist bei sonst gleichem Zellinhalt in der Regel doch verschieden, daher wurden die Zellen nicht mehr verbunden.

Gefixt in R2786, zur abschließenden Prüfung sollte sich das Paul nochmal ansehen.

 

R2764

14.12.11

Bug 2701 - Skriptbefehl document::import_notes macht nichts Sinnvolles

Der Befehl document::import_notes macht scheinbar nichts.

Achtung, abweichend von der cscript-Dokumentation: Dokument::export_notes und Dokument::import_notes zeigen keinen Dateidialog, folgende Aufrufe sind möglich:

// Export in String
String xml = string::alloc ();
document::export_notes (0, 0, xml);
showmessage ("Notes: %s.", string::get (xml));

// Export in Datei
document::export_notes (0, "$DESKTOP/notes.xml");

// Export in Default-Datei (= Dokument-Pfad + Name * _notes.xml)
document::export_notes ();

// Import aus String
char * notes = "<notes/>";
int res = document::import_notes (0, 0, notes);

// Import aus Datei
document::import_notes (0, "$DESKTOP/notes.xml");

// Import aus Default-Datei (= Dokument-Pfad + Name * _notes.xml)
document::import_notes ();

Soll die Import / Export-Datei über Dialog festgelegt werden, kann in cscript dafür die Funktion file::select_file verwendet werden.
Die minimal erforderlichen Informationen im Notizen-XML sind wie folgt:

<notes>
  <note id="21069" type="todo">
    <title>Titel</title>
    <comments>
      <comment num="1" user="" role="" on="">
        <plain>comment</plain>
      </comment>
    </comments>
    <reference type="pageindex" uid="0" id="" x=".." y=".." start="0" end="-1" >
      <bbox x="1.0" y="1.0" width="120.0" height="80.0" />
    </reference>
  </note>
</notes>
12.12.2011
Bug 2700 - Skriptbefehl document::get_modified

Wenn es schon document::set_modified gibt, würden wir gerne auch den änderungszustand eines Dokuments abfragen können.

Das geht ab R2764 mit dem Skriptbefehl document::get_modified ()

14.12.2011
Bug 2699 - Icons im Produkte-Panel per HTTP Download

Können im Produkte-Panel auch Icons von einem WebServer angezeigt werden?

Das geht jetzt, analog zu ImagePath und IconPath kann als "gridelement" jetzt auch ImageUrl und IconUrl verwnedet werden, Beispiel: ImageUrl : "http://mein.server.com/bilder/produkt.png" Zu beachten: die Leerzeichen VOR und NACH dem Doppelpunkt! Bilder werden bis zum nächsten Login gecached.

12.12.2011
Bug 2698 - Seltsamer Dokumentzustand nach Ausbuchen / Import von Notizen

Nach dem Ausbuchen eines Dokuments über die Publikationspalette und damit verbundenem Import von Notizen - waren teilweise alle importierten Notizen ausgewählt - konnte der Import von Notizen durch Undo rückgängig gemacht werden Beides nicht intuitiv.

Ab R2764 ist kein Undo mehr möglich, das Selektions-Verhalten sollte auch behoben sein.

14.12.2011
Bug 2697 - Elemente XML enthält Notizen

Ein im Desktop exportiertes Elemente XML enthält auch die Notiz-Rahmen. Das ist problematisch, wenn diese Informationen mit dem CometServer weiterverarbeitet werden sollen.

Und falsch ist es außerdem, daher behoben in R2764, Version 3.3

13.12.2011
Bug 2696 - InDesign® stürzt beim Einbuchen von Dokumenten über die Publikationspalette ab

Unter Windows XP stürzt InDesign® ziemlich zuverlässig beim Einbuchen von Dokumenten über die Publikationspalette ab.

Ursache ist ein Fehler in der von uns für Windows verwendeten Zip-Bibliothek - oder eher Inkonsistenten bei den für die interne Darstellung von Zeichen verwendeten Typen bzw. Macros (TCHAR vs. wchar_t vs. char), die zu einem fehlerhaften Aufruf von memcpy geführt haben. Warum das unter anderen Windows-Versionen funktionierte ist ein wenig schleierhaft, jetzt geht es auch mit Windows XP.

Behoben in R2764, Version 3.3. Der Fehler betraf alle Zip-Routinen, also auch Aufruf der cscript Funktionen file::zip etc.

11.12.2012
R2755

05.12.11

Bug 2688 - SOAP Verbindung mit R2750 führt zu Abstürzen oder Hängen

Siehe Bug 2676, die Aufräumroutinen waren dann doch noch nicht ganz korrekt, teilweise wurde Speicher doppelt freigegeben mit unabsehbaren Effekten.

Das ist in R2755 behoben.

Projekte mit SOAP Datenverbindung oder Checkin / Checkout Support in der Publikationspalette, die R2750 installiert haben, müssen umgehend auf R2755 aktualisieren.

05.12.2011
Bug 2689 - Notizen mit Umlauten / UTF8 Zeichen werden nicht korrekt importiert

Auf Windows werden Notizen mit Umlauten nicht korrekt importiert. Im Dokument erscheinen die zwar richtig, im Kommentare-Panel stehen statt der Umlaute aber InDesign®-Tags, beim erneuten Export werden daraus XML umschlüsselte Tags, die dann im Whiteboard als <0x1234> ... angezeigt werden.

Der Bug lag mal wieder auf tiefster Ebene im Windows XML Parser (bzw. unserer Adapterklasse). Aus der ära VOR der UTF8 Unterstützung in den PlugIns (also 1er und 2er Versionen der PlugIns) stehen da noch Konvertierungsroutinen drin, die großteils in der weiteren Verarbeitung wieder zurückgewandelt werden, aber - soweit irgendwie absehbar - gar nicht mehr benötigt werden.

Achtung! Wenn ab R2755 in Windows XML Projekten oder allgemein bei der Verarbeitung von XML Daten unter Windows Absonderlichkeiten auftreten: bitte gleich melden und notfalls wieder eine Version zurückgehen (=> R2750)

Achtung II für die korrekte Verarbeitung von Notizen muß der CometServer ebenfalls aktualisiert werden auf mindestens R8795

Schließlich: der Befehl document::import_notes hat nicht funktioniert, er hat im Gegenteil Notizen exportiert. Auch das ist behoben.

04.12.2011
Bug 2690 - InDesign® scheint beim Checkout erstmal zu hängen

Wenn Dokumente über die Publikationspalette ausgebucht werden, hängt InDesign® neuerdings erstmal ein ganzes Weilchen, bevor irgendetwas passiert.

Das sieht nur so aus, im Hintergrund werden solange die Metadaten (Notizen etc.) vom Server angefordert, der diese eventuell überhaupt erst erstellt und dafür das Dokument mit InDesign® Serveröffnen muß Das dauert schon etwas.

Um Irritationen zu vermeiden erscheint der Fortschrittsbalken jetzt aber sofort nach Klick auf den Download Pfeil, also wenigstens sofortige Rückmeldung, dass der Klick registriert wurde und irgendwas passiert.

05.12.2011
R2750

23.11.11

Bug 2682 - "Protective shutdown" bei frame::image_scale

Die Funktion frame::image_scale kann bei Bildern mit Freistellpfaden zu einem "protective shutdown" führen.

Ja, das ist die gleiche Situation wie bei Bug 2681.

Das Problem tritt bei Bildern mit einem Photoshop-Freistellpfad auf, wenn

  1. das Bild von seinen Dimensionen recht groß ist
  2. der Freistellpfad klein und recht weit unten ist
  3. der Zielrahmen im Verhältnis zum Bild sehr klein ist
  4. und der Zielrahmen recht weit oben auf der Seite liegt

Zur Skalierung wird als Fixpunkt die linke obere Ecke des Bildrahmens verwendet - und das Bild fällt mglw. von der Montagefläche. Was dann den "protective shutdown" auslöst.

(Eigentlich eher ein InDesign®, oder? Denn das Bild ist ja ein Unterobjekt des Grafikrahmens und kann als solches gar nicht von der Montagefläche fallen.)

Aus Gründen der Rückwärtskompatibilität will ich das bisherige Verhalten der Funktion erhalten. Um das Problem mit den Freistellpfaden zu lösen, hat die Funktion den neuen (optionalen) Parameter

    frameRelativeRefPoint

bekommen. Ist der ungleich 0, werden die Angaben zum Referenzpunkt relativ zum Grafikrahmen ausgewertet. Der Punkt (10.0, 10.0) ist dann also der Punkt (frame.Left+10, frame.Right+10).

Damit ist das Problem gelöst.

23.11.2011
Bug 2681 - "Protective shutdown" beim Einfügen von Bildern mit kBestSide

Einige Bilder führen beim Einsetzen ins Dokument mit

    frame::image (frame, path, kBestSide);

zu einem "Protective shutdown" mit der Begründung, dass durch dies Aktion ein Objekt von der Monatgefläche verdrängt werden würde.

Das Problem tritt bei Bildern mit einem Photoshop-Freistellpfad auf, wenn

  1. das Bild von seinen Dimensionen recht groß ist
  2. der Freistellpfad klein und recht weit unten ist
  3. der Zielrahmen im Verhältnis zum Bild sehr klein ist
  4. und der Zielrahmen recht weit oben auf der Seite liegt

Dann passiert folgendes :

Das Bild wird importiert und von InDesign® automatisch so platziert, dass die linke obere Ecke des Freistellpfades links oben im Rahmen liegt.

Für kBestSide muss das Bild jetzt deutlich verkleinert werden. Dazu wird als Fixpunkt die linke obere Ecke des Bildrahmens verwendet - und das Bild fällt von der Montagefläche. Was dann den "protective shutdown" auslöst.

(Eigentlich eher ein InDesign®, oder? Denn das Bild ist ja ein Unterobjekt des Grafikrahmens und kann als solches gar nicht von der Montagefläche fallen.)

    

Lösung

Wir verwenden als Fixpunkt der Skalierung bei kBestSide... jetzt nicht mehr die linke obere Ecke des Bildes sondern den Bildpunkt, der an der linken oberen
Ecke des RAHMENS liegt. Damit kann das Problem nicht mehr auftreten.

Beachten Sie aber bitte, dass kBestSide... aus Gründen der Rückwärtskompatibilität weiterin die Grösse des gesamten Bildes (und nicht die Grösse des Freistellpfades) zur Bildskalierung verwendet. Soll das freigestellte auf Rahmengrösse gebracht werden, können Sie das mit

    frame::fit_image (gFrame, 1);

leicht machen.

23.11.2011
Bug 2680 - Manuelles Einfügen von Produkten mit Seiten- und Seitentemplatewechsel

In einen bestehenden Seitenaufbau sollen ganzseitige Inserate eingefügt werden. Die Inserate verwenden dabei ein von der Umgebung abweichendes Seitentemplate (damit sie beim Aufräumen auch noch passen.) Kann man das irgendwie machen?

Mit einigen Erweiterungen der Skriptsprache geht das jetzt. Das Verfahren ist wie folgt :

Schritt [1]

Ein Gestaltungsregel (s.u.), die beim Anlegen eines Rahmens des Templates feuert, prüft zuerst, ob wir uns nicht im Seitenaufbau befinden. (Der Seitenaufbau macht den gewünschten Seiten- und Seitentemplatewechsel bereits selbst, siehe dazu Bug 2679).

Schritt [2]

Dann wird hinter der aktuellen Seite eine neue Seite angelegt und für diese Seite das gewünschte Seitentemplate gesetzt. Dieses Seitentemplate wird als Skriptparameter in der Gestaltungsregel festgelegt.

Schritt [3]

Verschieben der Template-Rahmen auf die neue Seite. Da die neuen Rahmen ein eigenes Kapitel bilden sollen (die nächsten Produkte also auf einer neuen Seite beginnen sollen), müssen wir in die neuen Rahmen jetzt noch hinreichende Kapitelinformationen schreiben : Eine von den umgebenden Produkten abweichende Kapitel-ID (PageBreakID) und Informationen zum gewünschten Seitentemplate.

Und hier das Skript

<notes>
  <note id="21069" type="todo">
    <title>Titel</title>
    <comments>
      <comment num="1" user="" role="" on="">
        <plain>comment</plain>
      </comment>
    </comments>
    <reference type="pageindex" uid="0" id="" x=".." y=".." start="0" end="-1" >
      <bbox x="1.0" y="1.0" width="120.0" height="80.0" />
    </reference>
  </note>
</notes>
#include "internal/types.h"

int main ()
{
	int      pg        	= page::get (gFrame);
	int      groupID    = frame::get_cometgroup (gFrame, 0);
	ItemList frames    	= itemlist::get_cometgroup_members (0, groupID, 1);
    ItemRef  fr 		= item::alloc ();
	char     sid 		[2000];

	// Schritt [1]
	if (gIsInBuild)    // ! Neu ab v3.3 R2731
	{
		wlog ("", "Anlegen eines Insertates beim Seitenaufbau.\n");
		return 0;
	}

	// Schritt [2]
	page::create (1, pg+1);
	page::set_info (0, pg+1, "id", val (gParam1));

	// Schritt [4]
	itemlist::move_cometgroup_to (0, groupID, 36.0, 36.0, 1, pg+1);
	itemlist::apply (placeholder::change_tags, frames, 1, 0, 0, 
		"PageBreakID", groupID, kFramePlaceholder);
	itemlist::apply (placeholder::change_tags, frames, 1, 0, 0,
		 "PageBreakTemplateID", val (gParam1), kFramePlaceholder);
	itemlist::apply (placeholder::change_tags, frames, 1, 0, 0,
		"PageBreakType", 1, kFramePlaceholder);
	itemlist::apply (placeholder::change_tags, frames, 1, 0, 0,
		"PageBreakLayers", "\"aaa\" \"bbb\"", kFramePlaceholder);
	return 0;
}

Erweiterungsmöglichkeiten

Man könnte jetzt noch ein Reorganize anfügen. Oder das neue Produkt gleich richtig ins Seitenelement setzen (und dazu dessen Position holen). Man könnte das Seitentemplate auch über seinen Namen angeben.

Infos

Weitere Infos wie immer in der OnlineDoku :

    gInInBuild (s.a Bug 2677)

    itemlist::move_cometgroup_to (s.a. Bug 2668)

    PageBreak~-Slots

22.11.2011
Bug 2679 - Seitenumbrüche im Seitenaufbau

Seitenumbrüche im Seitenaufbau sind momentan nur über auf zwei Arten möglich : Entweder man bearbeitet (mit einiger Mühe) im Prescript des Seitenaufbau die Produktliste und fügt dort an den richtigen Stellen Seitentemplate-Einträge in die Produktliste gProducts ein.

Oder man stellt in den Templates ein, dass sie einen Seitenwechseln machen sollen. In diesem Fall kann man aber nur Seitenwechsel mache, keine Templatewechsel. Hier entstehen dann ein Haufen Problem dadurch, dass die Produkte vielleicht gar nicht in die Seitenelemente passen, ... .

Schön wäre es aber, wenn Seiten- und Seitentemplate-Wechsel gleichzeitig und bereits beim Aufbau gemacht werden könnten.

Das geht jetzt. Der Produktaufbau kann jetzt auf die in den Produkten angegebenen Seitentemplates achten. Dazu wird die Spalte gridID der Panelstatements zum Laden der Produkte verwendet.

Einträge mit Seitentemplates erkannt man in der Produktrecherche daran, dass hinter dem Templatename mit @ getrennt noch der Name oder die ID des Seitentemplates gezeigt wird.

Im Produktaufbau gibt es eine neue Checkbox :

    Seitentemplates der Produkte anwenden

Ist diese Option eingeschaltet (oder ein entsprechendes Flag für productlist::establish gesetzt), wird die Liste der aufzubauenden Produkte zuerst nach Seitentemplate-Wechseln durchsucht. ENTHäLT DIE PRODUKTLISTE BEREITS MIND. EIN SEITENTEMPLATE, WIRD DIE OPTION IGNORIERT! Produkte ohne Seitentemplate bekommen automatisch das Standard-Seitentemplate zugewiesen.

Jeder Wechsel des Seitentemplates ist auch ein Seitenwechsel. (Das bedeutet auch : Seitenwechsel bei gleichem Seitentemplate sind mit diesem Verfahren nicht möglich - dafür ist es auch nicht gedacht.)

Achtung : Bisher sind nur Seitenwechsel möglich. Wechsel auf (genau) LINKE/RECHTE sind bisher noch nicht implementiert. Dafür muss auch das Datenmodell erweitert werden.

22.11.2011
Bug 2678 - Einstellung "Bestehende Seiten und -templates bevorzugen" des Seitenaufbau-Dialoges wird ignoriert

Was man in der Checkbox "Bestehende Seiten und -templates" auch einstellt, die Seitentemplates des Dokumentes werden nie geändert.

Nicht ganz richtig : Es wird immer die im Menü

    Zusatzmodule > Produktrecherche > Einstellungen für den Seitenaufbau > Bestehende Seiten und -templates bevorzugen

verwendete Einstellung verwendet. Diese Einstellung hat die lokale Einstellung im Seitenaufbau-Dialog überdeckt. Das ist jetzt gefixt.

Workaround

Einstellung des Verhaltens im o.g. Menü.

22.11.2011
Bug 2677 - Abfrage, ob eine Gestaltungsregel innerhhalb des Seitenaufbaus aufgerufen wird

Kann ich eigentlich irgendwie feststellen, ob eine Gestaltungsregel während eines Seiten- oder Produktaufbaues ausgeführt wird?

Hintergrund ist, dass Produkten bei Seitenaufbau/Reorganisation automatisch eine neue Seite zugewiesen wird. Fügt man das Produkt dagegen manuell ein, muss diese neue leere Seite zuvor erzeugt werden. Dazu muss man natürlich wissen, in welchem Zusammenhang die Regel ausgeführt wird.

Alle Gestaltungsregeln haben jetzt die zusätzliche globale Variable

    gIsInBuild

mit folgenden Werten :

  • 1 : Seitenaufbau, Rasteraufbau, Textflussaufbau, Aufräumen oder Reorganisation
  • 0 : sonst
22.11.2011
Bug 2676 - SOAP ist ein Speicherfresser

Von der SOAP Bibliothek allokierte Objekte werden teilweise erst beim Logout wieder freigegeben. Blöd, wenn ein Programm lange laufen soll (wie vielleicht InDesignServer) oder wenn man große Datenmengen über SOAP holt (wie beim Desktop Checkin / Checkout).

Das ist ab R2730 gefixt.

ACHTUNG! Nach jedem Query oder Down / Upload wird aufgeräumt. Dabei habe ich versucht, Seiteneffekte (geschachtelte Queries) zu berücksichtigen, wenn es aber in SOAP Projekten mit Versionen ab R2730 zu irgendwelchen Absonderlichkeiten kommt: bitte melden!

21.11.2011
Bug 2675 - %!TT-Texte in Platzhaltern fügen jedesmal ein neues Inline ein

Ersetzt ein Platzhalter den Platzhaltertext mit Hilfe eines %!TT-in-Tags durch einen einzelnen Inline-Rahmen (und sonst weiter nichts), wird der Platzhalter Inline zwar eingesetzt, leider bleibt aber der alte Platzhaltertext stehen.

    textmodel::replace ("%!TT<in ...>aa</in>");

Jedes weitere Laden des Platzhalters fügt dann einen weiteren Inline in den Platzhalter ein.

Ja. Nach dem Ausfiltern der Comet-Tags ist "nichts" übrig geblieben. In diesem Fall wird die Funktion zum Einsetzen von TaggedText nicht gerufen - die hat aber auch das Löschen von altem Text übernommen.

Das ist gefixt.

Workaround

Ein einfaches

    textmodel::replace ("");

vor dem Einfügen des Inlines löscht den bestehenden Platzhaltertext (fügt aber jedesmal ein weiteres Hairspace ein.)

21.11.2011
Bug 2674 - Pfade mit ´ (ACUTE ACCENT) machen Probleme (nur Mac)

... und der Bugtitel ist noch harmlos. Das eigentliche Problem hiess zuerst "Whiteboard funktioniert nicht", später dann "Publikationspalette funktioniert nicht".

Das Problem ist, dass Pfade/Dateinamen, die ein ´ enthalten, falsch interpretiert wurden, allerdings nur Pfade mit "´", nicht Pfade mit "´". Genau! Den Unterschied sieht man nämlich nicht mal

  • Im ersten Fall wurde getippt :   ´ Pfeil rechts (Geht nicht)
  • Im zweiten Fall wurde getippt :   ´ Blank (Geht)

Es ist natürlich klar, dass das unbedingt und am Wochenende gefixt werden muss inkl. der Erstellung eines kompletten Satzes (1GB!) neuer Plugins.

Von 1.226.757.480 möglichen Zeichen mit diakritischen Symbolen ging genau 1 nicht!

Das Problem ist gefixt. Dateinamen dieser Art (mit mehreren diakritischen Symbolen) sind also durchaus möglich :

    

21.11.2011
Bug 2673 - Legt ein Platzhalter zusätzliche Rahmen zum Template an, gehören die nicht immer zur Cometgruppe des Produktes

Legt ein Platzhalter zusätzliche Rahmen zum Template an, gehören die nur dann zur Cometgruppe des Produktes, wenn das Produkt über den Seitenaufbau eingefügt wurde. Wird das Produkt über Drag and Drop eingefügt oder über eine Javascript-Cometfunktion (ausser Produktaufbau natürlich), dann gehören die zusätzlichen Rahmen nicht zur Cometgruppe.

Im Whiteboard ist das besonders lästig, denn dort wird nach dem Einfügen häufig sofort reorganisiert - und dann zerfallen die Produkte.

Das Problem ist jetzt behoben (und getestet mit ID-Server).

18.11.2011
Bug 2672 - Vom Server eingefügte EPS-Bilder sind im Desktop nur als grauer Rahmen sichtbar

Über InDesign®-Server werden verschiedene Bilder in ein Dokument eingefügt. Im Whiteboard werden die Bilder auch richtig angezeigt. öffnet man die Datei aber im Desktop, sind an Stelle der Bilder nur graue Rahmen zu sehen.

ändert man die Anzeigeleistung auf hohe Qualität, werden die Bilder sichtbar. Stellt man die Anzeigeleistung wieder runter, erscheinen wieder die grauen Rahmen.

Das ganze passiert nur bei EPS-Bildern.

Wir hatten vor einiger Zeit große Probleme mit EPS-Bildern ohne eingebettetes Preview. InDesign® ist dabei regelmässig abgestürzt. Wir haben nach diesem Fehler lange gesucht und unter anderem dabei auch die Möglichkeit abschaltet, dass Previews aus EPS-Bildern erzeugt werden. Das war dann wohl doch etwas übertrieben - denn genau dadurch entstanden die grauen Rahmen.

Wir haben die Option jetzt wieder eingeschaltet mit folgenden Optionen : "Previews mit einer Auflösung von 72 dpi erzeugen, wenn keine eingebettet sind."

Auch die Bilder, die damals zum Absturz geführt haben, konnten mit dieser Einstellung importiert werden.

Zusätzlich gibt es einen neuen Skriptbefehl

    prefs::eps_import_options

mit denen die Importoptionen für EPS-Bilder skriptseitig verändert werden können.

18.11.2011
Bug 2667 - Probleme mit Dateinamen in table::insertimage

Bestimmte Bilder werden bei table::insertimage nicht geladen und die Methode liefert auch keinen Fehlercode. Ein vorherige Prüfung mittels file::exists() findet die Datei.

Habe mal ein wenig mit den Dateinamen getestet und das Problem scheint aufzutreten, wenn im Dateinamen mehr als 2 Ziffern aufeinander folgen. Wenn drei Ziffern vorkommen, dann wird das Bild bereits nicht mehr gefunden.

Der ursprüngliche Dateinamen war: 8418QGSDBAMS.jpg damit wird das Bild nicht geladen, bei 84QGSDBAMS.jpg wird es dagegen geladen.

Ich kanns reproduzieren, und wieder mal nur unter Windows. Das Problem war ein ganz anderes : Aus (wahrscheinlich sentimentalen) Gründen unterstützen wir weiterhin die in Quark verwendete Notation

    \XXXX

zur Maskierung von Unicode-Zeichen. Man ahnt schon, worauf das hinausläuft. Genau! Auch diese Namen im Pfad wären also nicht gegangen

    \daddy
    \deadpoet
    \affe

Immer der ärger mit dem \ in Windows-Pfaden. Das Problem ist jetzt gelöst. table::insertimage funktioniert jetzt auch mit solchen Namen im Pfad.

17.11.2011
Bug 2671 - w2-Tag an w2-Platzhalter anfügen funktioniert nicht

Ein Laden-Skript eines Textplatzhalters ersetzt den Platzhaltertext durch einen !%TT-Text. Das funktioniert. Die Besonderheit hier ist aber, dass an den eigentlichen Text noch weitere <w2>-Platzhalter angefügt werden :

    %!TTplatzhaltertext<w2 ...>text2</w2><w2 ...>text3</w2>

Das ist ja laut Doku eigentlich nicht erlaubt. Dort steht unter textmodel::replace der folgende Satz :

"In Textplatzhaltern sollte dieser Text aber keine w2-Tags enthalten, dadurch wird der aktuelle Platzhalter geteilt - und das bei jedem Skriptaufruf."

Es hat aber funktioniert, die Platzhalter einzusetzen und zu laden. Diese (doch sehr heikle) Situation wurde jetzt in 3.3 bereinigt.

w2-Platzhalter jetzt durch eine Erweiterung des Import/Export-Moduls von InDesing direkt eingelesen und ausgewertet. Bisher wurden die Platzhalter nachträglich über den bereits fertig importierten Text gelegt - was zu einigen Problemen in besondere in (geschachtelten) Tabellen führte. Das oben beschriebene (eigentlich falsche) Verhalten kann damit nicht nachgestellt werden.

FYI

Die Platzhalter sind eine Texteigenschaft wie Schriftgrösse oder -farbe. Und davon kann es an einer Textstelle ja immer nur eines geben.

Zur Lösung

Mit Menü

war bereits vorgesehen, auch das alte indirekte Verfahren zum Setzen von Platzhaltern verwenden zu können (AN : Neues Verfahren, AUS : Altes Verfahren, Die Einstellung ist Neustart-resistent.)

Leider war da ein kleiner Fehler drin, der das oben beschrieben Problem verursachte (na, eigentlich behob, aber egal.) Ich habe das so geändert, dass das alte Verfahren wieder vollständig hergestellt ist, WENN

DEAKTIVIERT (also ohne Haken) ist. Das muss dann an jedem Arbeitsplatz abgeschaltet werden.

Und, ach ja, es gibt natürlich keinen Grund der dagegen spricht, das Laden-Skript so zu ändern, dass es für beide Verfahren funktioniert :

VOR dem textmodel::replace die w2-Platzhalter NICHT anfügen.

NACH dem textmodel::replace die Platzhalter so anzufügen :

    sprintf (out, "%%!TT<nl><w2:%d,%d,%d,%d,'%s'>author</w2>",
        10, gRecordID, gRecordID2, gRecordID3, gRecordStringID);
    sprintf (tmp, "<nl><w2:%d,%d,%d,%d,'%s'>author</w2>",
        30, gRecordID, gRecordID2, gRecordID3, gRecordStringID);
    strcat (out, tmp);

    textmodel::replace_all (
        out,
        textmodel::start ()+textmodel::length (),
        0,1);
17.11.2011
R2717

17.11.11

Bug 2669 - Rahmenliste nach den Seitenelementen sortieren

Mit itemlist::sort können Rahmenlisten nach verschiedenen Kriterien sortiert werden. Kann ich eine Liste auch nach den Seitenelementen sortieren? Das wäre z.B. wichtig, wenn man den ersten Rahmen einer Seite ermitteln will.

Mit dem Wert 6 des Parameters howToSort werden die Rahmen jetzt nach ihren Seitenelementen sortiert. Die Rahmen sollten dabei alle auf einer Dokumentseite liegen.

17.11.2011
Bug 2668 - Rahmenliste auf eine neue Seite verschieben

Gibt es eine Funktion, mit der ich eine Rahmenliste oder Cometgruppe auf eine neue Seite verschieben kann?

Die Funktionen

    itemlist::move_to
    itemlist::move_cometgroup_to

haben jetzt beide einen zusätzlichen (optionalen) Parameter, mit dem eine neue Seitennummer angegeben werden kann. Die Rahmen werden dann vor dem Positionieren auf eine neue Seite verschoben.

17.11.2011
Bug 2666 - Inhalte von Dummy-Knoten der XML-Struktur

In xentities.xml kann man für Attribute, die in einer XML-Datei fehlen dürfen, Dummy-Knoten anlegen. Die so angelegten Knoten können entweder feste Werte (<type>@fester Wert</type>) bekommen oder sich den Wert eines Geschwisterknotens holen (<type>attributeName</type>). Wird der Wert aus einem Geschwisterknoten geholt, wird aber statt des eigentlichen Wertes im der HASH-Code dieses Wertes zurückgegeben. Kann man auch den Wert direkt erhalten?

Ja, kann man ab jetzt : Mit vorangestelltem # wird jetzt der unveränderte Inhalt statt des Hash-Codes zurückgegeben :

    <type>#attributeName</type>

Ausserdem können beliebig viele (jeweils durch EIN Blank) getrennte Attributnamen angegeben werden. Der Wert des ersten gefundenen Attributes wird dann verwendet. Mehr dazu in der Online-Doku.

16.11.2011
Bug 2650 - Seitentemplates lassen sich nicht editieren

Unter Windows lassen sich Seitentemplates eines XML-Ordners nicht mehr öffnen. Der Fehler tritt nur unter Windows und bei XML-Datenordners auf.

Der Fehler ist jetzt gefixt. (Das Problem war ein aus XCache und Datenordner zusammengesetzter Pfad für die temporäre Datei des Seitentemplates. [Die Seitentemplate-Datei darf ja nicht direkt editiert werden, sonst wird sie beim Sichern direkt überschrieben.]. Da der Pfad für den XML-Ordner auch mit mit einem Laufwerksbuchstaben beginnt, entstand dabei ein ungültiger Zielpfad.)

16.11.2011
Bug 2664 - Laden von "Produkte des Dokumentes" sehr langsam

Das Laden der Einträge der Palette "Produkte des Dokumentes" kann sehr lange dauern. Bei wenig Rahmen pro Seite (<20) geht es schnell, aber die Dauer scheint mit der Rahmenanzahl exponentiell zu wachsen. Kann man da was machen?

Für das Zusammenstellen der Liste müssen die Einträge nach Seitenelementen sortiert werden. Diese zugehörige Vergleichsfunktion, die jeden Rahmen einer Seite gegen jeden anderen prüft, hat dabei die Infos über die Seitenelemente jedesmal neu geholt. Das wird jetzt gepuffert. Und siehe da, in meinem Test mit etwa 80 Rahmen pro Seite ergab sich folgendes :

  • Vorher : 20 Sekunden
  • Jetzt : 0,5 Sekunden

Also über 40 mal (!) schneller. Sind noch mehr Rahmen auf der Seite, fällt der Geschwindigkeitsvorteil noch deutlicher aus.

15.11.2011
Bug 2137 - Bei Seitereorganisationen gehen Comet-Notizen verloren

... und zwar dann, wenn wg. Seitenwechseln Templates getauscht werden müssen. Können die Notizen dann nicht auf die neuen Rahmen resp. Comet-Gruppen übertragen werden?

Notizen sind jetzt endlich "aufräum-resistent".

Notizen von Cometgruppen werden, wenn nötig, den neuen Cometgruppen zugeordnet. Rahmennotizen werden bei Template-Wechseln übernommen. Dabei werden die jeweiligen Rahmenkennungen ausgewertet : Die Notizen des alten Rahmens mit der Kennung "A" werden dem neuen Rahmen der Kennung "A" zugeordnet. Notizen von Rahmen mit leerer Kennung und Notizen von Rahmen, die im Template keinen Rahmen gleicher Kennung finden werden gelöscht.

Achtung : Nach Dokumentreorganisationen werden auch alle Notizen aufgeräumt. Dabei werden auch alle unreferenzierte Notizen des Dokumentes entfernt (siehe auch Bug 2663 und Bug 2661).

15.11.2011
Bug 2663 - Löschen eines Rahmens löscht dessen unsichtbare Notizen nicht

Löscht man einen Rahmen, der unsichtbare Notizen hat, sollten diese Notizen eigentlich auch mit gelöscht werden, oder? Bisher bleiben sie erhalten.

Unsichtbare Notizen werden jetzt beim Löschen ebenfalls aus dem Dokument entfernt.

Achtung : Dieser "Aufräum"-Vorgang ist global : Auch alle anderen nicht mehr referenzierten Rahmen- und Cometgruppennotizen werden dabei aus dem Dokument entfernt. (Bei Dokumenten, die mit diesem Bugfix bearbeitet wurden, können dann aber auch gar keine unreferenzierten Notizen mehr haben.)

15.11.2011
Bug 2662 - Verschieben von Rahme mit Notizen auf eine andere Ebene ändert den Abstand der Notiz zum Rahmen

Verschiebt man einen Rahmen, der eine Notiz hat, auf eine andere Ebene, kann sich dadurch der Abstand der Notiz zum Rahmen ändern.

Das ist jetzt gefixt. Die Abstände bleiben jetzt erhalten.

15.11.2011
Bug 2661 - Sichtbarmachen unreferenzierter Rahmennotizen sollte die Notiz löschen. Tut es aber nicht.

Klickt man mit dem Fernglas auf eine unsichtbare Notiz, wird diese eingeblendet. Wenn die Notiz zu einem Rahmen gehört, der mittlerweile gelöscht wurde, sollte die Notiz dabei automatisch gelöscht werden. So steht es jedenfalls im gelben Hilfezettel des Fernglas-Buttons. Die Notiz wird aber nicht gelöscht sondern (ohne Rahmenverbindung) sichtbar gemacht. In der Palette "Kommentare" steht weiterhin, dass es sich um eine Rahmennotiz handelt.

Das ist jetzt gefixt. Unreferenzierte Rahmen- oder Gruppennotizen werden jetzt automatisch gelöscht.

15.11.2011
Bug 2660 - Notizen von Cometgruppen zeigen falsches Preview in der Palette

In der Palette "Kommentare" wird für Notizen von Cometgruppen ein falsches Preview angezeigt. Es scheint, dass sich bei Auswahl einer Gruppennotiz der Preview gar nicht verändert, sondern die Anzeige so bleibt, wie sie von der letzten ausgewählten Notiz gezeigt wurde.

Notizen von Cometgruppen zeigen jetzt ein richtiges Preview - nämlich das der Cometgruppe. Liegen die Rahmen der Cometgruppen auf mehreren Seiten, wird das Preview nur von den Rahmen der ersten Seite gemacht.

Der Screenshot wird dabei immer von der Bounding-Box der beteiligten Rahmen gemacht. Liegen in diesem Bereich andere Rahmen oder die Notiz selbst, werden die Rahmenteile, die in die Boundingbox hineinragen, ebenfalls gezeigt. Da das Preview nur 32 Pixel groß ist, sollte das kein zu großes Problem darstellen, oder?

15.11.2011
R2711

11.11.11

Bug 2658 - Ist der InDesign®-"Startbildschirm" offen, können keine Publikationen eingebucht werden

Wenn der InDesign®-Startbildschirm geöffnet ist, können Publikationen nicht eingebucht werden. Der Startbildschirm kann mit dem Menü Hilfe:Startbildschirm geöffnet werden. Er wird automatisch geschlossen, wenn ein Dokument geöffnet wird. Nach dem Schliessen des letzten Dokumentes wird er wieder geöffnet.

Ja, wenn dieser Dialog geöffnet wird, kann nicht mehr eingebucht werden.

    

DER DIALOG DARF NICHT GEöFFNET SEIN. Er verhindert, dass interne Idle-Time-Aktionen (wie das Verschieben der Dokumente auf den Server) nicht gemacht werden können. Hintergrund ist, dass die IdleTime-Aktionen immer zuerst fragen, ob noch Dialoge offen sind. Solange die nicht beantwortet sind, wartet der Idle-Handler. Die Anworten können sich ja auch auf die Aktionen beziehen, der der IdleTimer gerade machen will.

Leider ist aber der Startbildschim auch ein Dialog - da kann man dann also lange warten.

Ab diesem Release darf der Startbildschirm geöffnet sein.

Wir können unterscheiden, ob es sich um modale (also wartende) oder sog. modeless Dialoge handelt. Der Startbildschim ist ein modeless-Dialog. Wir ignorieren diese Dialoge jetzt im IdleTimer.

11.11.11
Bug 2657 - behavior::sequence, audio und panorama setzen kein Startbild ins Dokument

Alle drei zugehörigen "Overlay Creator"-Einstellungen können jeweils festlegen, dass das erste Bild als Startbild im InDesign®-Dokument gezeigt wird. Die Skriptbefehle können das leider nicht.

Jetzt können sie. Das hat insbesondere bei behavior::audio einige Mühe gekostet.

Achtung : Alle drei Funktionen haben einen zusätzlichen dritten Parameter. Die Aufrufe unterscheiden sich also jetzt von der in R2700 eingeführten Form.

11.11.11
Bug 2656 - behavior::image für Schwenks und Zoom setzt diese Eigenschaft nicht richtig.

Es wird immer Schwenken und zoomen erlaubt.

Tragisch. Das ist jetzt gefixt. Zoom kann jetzt verboten werden.

11.11.11
Bug 2655 - behavior::slideshow setzt den Wert für das Intervall nicht

Das ist jetzt gefixt.

11.11.11
Bug 2654 - Mehrere Produkt-ID in einer Produkt-Cometgruppe führen zu Problemen bei der Reorganisation

Ja klar, die Dinger heissen ja auch PRODUKTE. Wenn mehrere Produkte in einer Cometgruppe enthalten sind, ist die gefundene Produkt-ID nicht mehr eindeutig.

Hintergrund ist, dass die ersten Produkte einer Produktgruppe immer noch eine Überschrift bekommen sollen. Diese wird als zusätzlicher Rahmen beim Laden angelegt und mit der Produktgruppe selbst verlinkt. Bei Reorganisationen wird jetzt in der Cometgruppe nach der Produkt-ID gesucht. Der erste gefundene Rahmen der Cometgruppe ist aber hier zufällig der Rahmen, der die Überschrift enthält :-(

Was kann man denn dagegen tun?

Die Rahmen der Cometgruppe werden jetzt vor dem Ermitteln der Produkt-ID sortiert - und zwar nach ihrer Kennung. Wenn die zusätzlichen Rahmen also eine Kennung erhalten, dass sie nicht die ersten der sortierten Liste sind (ich habe Ω verwendet), wird alles gut.

Versionen vorher können das Problem auch so lösen : Nachdem der neue Rahmen eingefügt, verlinkt und geladen ist den Rahmen mit der Produkt-ID des aktuellen Produktes verlinken :

    placeholder::define (rahmen, 0, gRecordID, ..., -2);

Die -2 ist das Wchtige - so wird nur der Rahmenplatzhalter neu gesetzt.

11.11.11
Bug 2652 - Vorlagen-ID-Script gibt "out of place"

Ich spiele gerade mit der 3.3DEV B2707 herum und habe das 'unglaubliche' gewagt, nämlich ein altes Comet2-Projekt (noch unter CS4) jetzt mit 3.3 unter CS5.5 geöffnet. :)

<smalltalk>
Dat läuft! Unglaublich! Da kenne ich von anderen Tools ganz andere Schmerzen beim Upgrade! (Dieses... "DaZwischen", oder wie das auf englisch heißt.)
</smalltalk>

Jedenfalls bekomme ich, sobald ich ein Vorlagen-ID-Script/Page-Item-Script/Ersatztemplate-Script nutze den folgenden Fehler

----> Fehler 11 - out of place :; <----

...und da der Fehler IMMER in Zeile 16 auftritt, obwohl ich in mein Script testweise nur

int main () {
    return 0;
}

eingetragen habe, oder ich es gänzlich leer lasse, vermute ich hier einen kleinen Bug.

Andere Versionen habe ich noch nicht testen können.

Bei der Erweiterung für Ersatztemplates (Bug 2573) ist leider ein kleiner Fehler bei der Definition der neuen globalen Variablen passiert. Das ist jetzt gefixt. Das Ersatztemplate-Script geht wieder.

11.11.11
Bug 2653 - Textflussaufbau gerät in eine Endlosschleife

Das passiert zum Beispiel dann, wenn man einen Text mit einem rechtsbündigen Tabulator bei 60 mm hat und den in ein Seitenelement einfügen will, dass nur 50 mm breit ist. Wieviel Rahmen dieser Breite man hier auch immer an die Textkette anfügt, der Overset geht davon nicht weg. Das ist natürlich eigentlich ein Anwender/Konfigurationsfehler. Unter InDesign®-Server ist das Verhalten aber besonders grausam, weil man es nur daran merkt, dass der Server völlig ausgelastet ist.

Der Textflussaufbau prüft jetzt, ob das Hinzufügen einen weiteren Textrahmens den Overset zumindest mildern konnte. Bleibt der Overset gleich, werden nach 20 Versuchen aufgegeben. Da der Overset auch durch Tabellen entstehen kann und hier jeweils nur die Anzahl der Ankerpositionen als Overset angegeben wird, hat man in diesem Fall 300 Versuche.

In beiden Fällen werden alle in dieser Situation angelegten Rahmen rot eingefärbt und an den Anfang des Textes die Warnung eingefügt : "Cannot resolve overset, frames too small." Im Logfile wird eine Warnung geschrieben. Der Aufbau wird danach fortgesetzt.

11.11.11
Bug 2651 - product::gets() liefert kein Ergebnis für kRow1 und kRow2

Ich lasse mir per product::get_children eine Produktliste aufbauen. Auf deren Produkte greife ich dann per product::gets() zu.

Lustigerweise bekomme ich kein Ergebnis für kRow1 und kRow2, wenn die Produkte in der Produktrecherche sichtbar sind. Wenn ich den Parent-Knoten zuklappe, kommen die Werte.

Der Fehler war in product::get_children und ist jetzt behoben.

10.11.2011
R2707

08.11.2011

Bug 2649 - Produktaufbau stürzt ab nach Fehlermeldung : ".shapes" kann nicht geladen werden

Der Fehler tritt nur unter SOAP und erst seit v3.3 R2700 auf.

Der Fehler ist jetzt gefixt. Er ist eine Folge des neuen Feature aus Bug 2639.

08.11.2011
Bug 2591 - Doku-Menü greift auf Webserver zu?

Ist es möglich, dass die Hauptnavigation (linke Spalte) aus dem Web geladen wird? Normalerweise fällt das kaum auf, da man ja meistens auch mit dm Internet verbunden ist. Im Augenblick arbeite ich aber an einem Kundenprojekt über einen VPN-Zugang, der meinen Internetzugang sperrt. Dabei habe ich festgestellt, dass die Anzeige der Navigation ca. 1 Minute zum Aufbau braucht und dass der Browser versucht, auf www.priint.net zuzugreifen. Irgendwann gibt er auf...

In der Doku zu 3.3 wird jetzt eine lokale Datei aus dem Doku-Ordner für den Hintergrund verwendet.

08.11.2011
Bug 2599 - Bestimmte zusätzliche Rahmen in Fortsetzungseiten erhalten falsche PageItemID

Ein Platzhalter setzt zusätzliche Rahmen mit document::place_items (..., pageitemID=7, ...). Die Rahmen, die beim ersten Aufruf von document::place_items auf der letzten Fortsetzungsseite entstehen, erhalten als PageItemID nicht die 7, sondern die ID des Fortsetzungstemplates. Alle weiteren durch document::place_items (..., pageitemID=7, ...) erzeugten Rahmen erhalten die 7.

Ein ähnliche Funktion erzeugt zusätzliche Rahmen auf der ersten Seite des Produkts. Dort erhalten alle Rahmen die PageItemID aus document::place_items (...,pageitemID=7, ...).

Wie in Bug 2547 beschrieben, wird in das Feld "PageitemID" jetzt die durchgängig die Produkttemplate-ID geschrieben (und nicht mehr die Template-ID).

Mit der neuen Info "PageitemDirectID" jetzt die Template-IDs geholt werden :

    placeholder::get_value (gFrame, "PageitemDirectID");
08.11.2011
Bug 2597 - Verankerte Rahmen via <in>-Tag fressen andere Platzhalter an

Ich habe in einem Projekt die Aufgabe, einen Rahmen mit einer Bestellnummer zu füllen und 0-n verankerte Rahmen zu platzieren. Dazu benutze ich zwei Textplatzhalter direkt hintereinander; der erste platziert die verankerten Rahmen und der zweite die Bestellnummer.

Leider ist es so, dass für jeden verankerten Rahmen ein Zeichen vom Anfang der Bestellnummer gelöscht wird.

Es gibt zwei ziemlich einfache Workarounds, deswegen nur "light":

  1. Ein unsichtbares Leerzeichen zwischen beiden Platzhaltern einfügen
  2. den Platzhalter mit den verankerten Rahmen ans Ende setzen

In beiden Fällen wird der Bestellnummern-Platzhalter nicht mehr gestört.

Ach, das ist eigentlich sogar noch schlimmer : Setzt man vor dem frame::inline_ noch irgendwelchen Text in einen Rahmen, der dann Inline wird, verschieben sich die Positionen um die Anzahl der Zeichen im Inline. Und auch wenn man gar nichts macht, nach dem Inline ist die aktuelle Einfügestelle des Platzhalters am Textende. Ich habe das mit folg. Skript getestet :

int main ()
{
	int         i;
	DataPool    pool  		= datapool::alloc ();
	ItemList    frames    	= itemlist::alloc ();
	ItemRef		fr        	= item::alloc ();
	char        tt        	[500];

	for (i = 0; i < 3; i++)
	{
		frames = document::place_items (pool, "data", "pageitems", 490, 0.0, 0.0);
		itemlist::get (frames, fr, 0);
		itemlist::release (frames);

		sprintf (tt, "-%d-", i+1);
		frame::append (fr, tt);
		wlog ("", "Länge vorher-----> %d\n", gLen);
		frame::inline_ (gFrame, gStart+gLen, fr, 0);
		wlog ("", "Länge nachher-----> %d\n", gLen);
	}
	
	return 0;
}

Diese Fehler sind jetzt behoben.

07.11.2011
R2700

07.11.2011

Bug 2647 - Feste Seitenelemente von Produkten werden von der Reorganisation ignoriert

Die Vergabe fester Seitenelmente für Produkte funktioniert ja jetzt. Leider ist das aber nicht aufräum-resistent : Beim Aufräumen werden die Produkte dann in den normalen Seitenaufbau eingebaut.

Das geht jetzt auch. Die Stellplätze werden zusätzlich in der Palette "Produkte das Dokumentes" hinter dem Template-Namen angezeigt :

    Template @ 12
    Template @ Skript (20045)

Das ist eigentlich ein großartiges Feature : Werden die Stellplätze über ein Skript berechnet, kann man mit Skriptänderungen Dokumente völlig neu organisieren.

    

04.11.2011
Bug 2646 - EAN13-Barcodes erzeugen

Könnten wir einen Skriptbefehl implementieren, mit dem aus einem String ein EAN13-Code generiert wird?

Nicht nur das, 82 andere Barcodes inkl. QR-Codes auch. Der Skriptbefehl heisst

    image::barcode

Hier einige Beispiele. Im Original sind die Codes transparent.

QR-Code

    

EAN13

    

ISBN

    

Data Matrix

    

United States Postal Service Intelligent Mail

    

04.11.2011
Bug 2645 - Eigenschaften der Palette "Overlay Creator" automatisch setzen

Kann man das? Wenn man z.B. eine Diashow erstellt, wäre es nicht schlecht, die automatisch so zu konfigurieren, dass mit Wischen die Bilder gewechselt werden können. Oder man will die URL eines WebVies automatisch setzen. Bisher muss das immer von Hand gemacht werden.

Adobe sagt, das geht nicht. Auf unsere Support-Anfragen erhielten wir die Antwort, dass das zur Zeit nicht geht, aber vielleicht später mal.

Nun, es geht doch. Und über die folgenden Skriptbefehle können Sie das auch über cScript machen :

    behavior::hyperlink
    behavior::slideshow
    behavior::sequence
    behavior::video
    behavior::audio
    behavior::panorama
    behavior::webview
    behavior::image
04.11.2011
Bug 2644 - Seitenaufbau mit festgelegten Seitenelementen für Produkte

Im Rasteraufbau konnte man für Produkte einen Rasterplatz fest definieren, an dem das Produkt aufgebaut werden sollte. Kann man das auch im Seitenaufbau. Und wenn ja, wie?

Das geht. Es muss wie gewohnt die ElementID des Produktes gesetzt werden (vorletzte Spalte im Panel/Findstatement oder product::set mit kElementid). Als ElementID wird jetzt einfach die (1-basierte) Sequenznummer des Seitenelementes verwendet.

Leider hatte der Seitenaufbau aber noch einen kleinen Fehler : Bei Seitenwechseln wurde dann doch immer das erste Seitenelement verwendet. Das ist jetzt gefixt.

Zusätzlich kann als Sequenznummer eine jetzt negative Zahl angegeben werden. Das ist die (negative) ID eines Skriptes, das zur Berechnung des Stellplaztes ausgeführtv wird. Mehr dazu wie immer in der Online-Doku.

04.11.2011
Bug 2641 - Eigene Bilder in der Palette "Front row"

Ist es möglich, für die Palette "Front row" weitere Bilder zu bekommen?

Mit

    prefs::install_image

können eigene Bilder in den Comet-Plugins abgelegt werden, die dann in Front row verwendet werden können.

VORSICHT : Die Anweisung ändert die Comet-Plugins! Bei Neuinstallation gehen die änderungen verloren.

02.11.2011
Bug 2640 - Produkt-Drag-and-Drop mit gehaltener Cmd-Taste

Zieht man ein oder mehrere Produkte in ein Dokument, sollte bei gehaltener Cmd-Taste automatisch ab der Einfügestelle reorganisiert werden. Wird es auch. Früher hat sich aber der der Cursor geändert, wenn man die Cmd-Taste gedrückt hat - das passiert jetzt mehr.

Kleiner Resource-Fehler. Ist gefixt.

02.11.2011
Bug 2634 - Aufbau mit Seitentemplates - Probleme beim Reorganisieren

Beim Grid-Aufbau gab es eine Funktion, Rahmen als Banner zu definieren, damit sie fest auf der Seite platziert bleiben. Wie geht das beim Seitentemplate-Aufbau? Ich habe das Element auf eine Gestaltungsebene gelegt (ich hatte das so verstanden, dass es darüber läuft), und beim Aufbau die Gestaltungsebene angegeben - keine Wirkung, das Element wird reorganisiert. Auch Sperren funktioniert nicht.

Sorry, das war tatsächlich falsch. Eigentlich sollen beim Aufbau die einegstellten Gestaltungsregeln nicht verändert und ignoriert werden. Beim Aufbau wurden die Gestaltungsebenen aber falsch aufgelöst - und konnten dann nicht richtig ausgewertet werden. Dieser Fehler ist jetzt behoben.

02.11.2011

In der Seitentemplate-Palette gibt es in der unteren Funktionsleiste einen Button "Seitentemplate im Dokument festlegen". Der ist bei mir ausgegraut und macht deshalb nichts. Ist das noch nicht funktionsfähig oder mache ich etwas falsch?

Nichts, das Button ist nur etwas blass. Ich hab es jetzt etwas kräftiger gemacht :

Bug 2639 - Nicht-rechteckige Rahmen sollen sich beim Produktauf in den freien Flächen überschneiden dürfen

Das ist am besten mit einem Bild zu erklären :

    

Das zweite Produkt ("Lazarus") soll so platziert werden, dass in die freie Fläche zwischen den Strahlen des Sternes andere Produkte hineinragen können. Mit dem bisherigen Seitenaufbau ist das nicht möglich, weil der Rahmen mit dem Stern das erste Produkt teilweise überdeckt.

Das geht jetzt : Zusätzlich zu den eigentlichen Daten der Templates können jetzt auch die Formen der einzelnen Rahmen des Templates gesichert werden. Beim Einsetzen von Produkten werden dann nicht die eigentlichen Rahmen, sondern deren (an die aktuellen Seitenposition transformierte) Formen geprüft.

Wie das genau funktioniert, steht hier.

31.10.2011
Palette Front Row

    

    

In der Palette können Favoriten von Palettenaktionen zusammengefasst werden. Mehr Infos dazu finden Sie hier.

28.10.2011
Bug 2637 - Menü "Musterseitenelemente aktualisieren" der Produktrecherche tut nichts

Der Menübefehl "Musterseitenelemente aktualisieren" der Produktrecherche macht gar nichts.

Der Menübefehl macht wieder das, was dransteht - nämlich die Musterseitenelemente laden. Es werden nur die Elemente der aktuellen Seite geladen. Mit gehaltener Shift-Taste werden ALLE Dokumentseiten bearbeitet.

28.10.2011
Bug 2636 - Eigene Skripte nach Anlegen wiederholender Elemente

Nachdem alle wiederholenden Elemente eines Rahmenplatzhalters angelegt wurden, kann man ja eine Reihe von Aktionen machen (delete_parent, group, ...). Richtig schön wäre es aber, wenn man da auch eigene Skripte ausführen könnte.

Das geht jetzt. Die Angabe "post=" der Build-Anweisungen kann jetzt eine ID enthalten :

    post=20040

Dann wird nach dem Anlegen der wiederholenden Elemente die Aktion mit dieser ID ausgeführt. Mehr dazu in der Online-Doku.

28.10.2011
Bug 2635 - Funktionen zur Konfiguration von Pushbuttons

Zur Unterstützung der InDesign® "digital publishing" Fähigkeiten werden Skriptfunktionen benötigt, mit denen Pushbuttons konfiguriert werden können.

Mit den Methoden des neuen Skriptmoduls behavior geht das jetzt. Mehr dazu in der Online-Doku.

    

28.10.2011
Bug 2632 - page::masteritems_load() macht Probleme

page::masteritems_load(-1, 3) ==> nichts passiert.

page::masteritems_load(0, 3) ==> Dialogbox "Bearbeite Textrahmen 3/65" (manchmal auch nicht, InDesign® zeigt das "Warten"-Symbol und kann nur durch Taskmanager beendet werden.

Es gibt 1 Rahmen mit Platzhalter auf der Musterseite, der sich manuell wunderbar lokalisieren lässt, aber eben nicht über diesen Befehl. Er hat auch tatsächlich die ClassID 3.

Hat jemand eine Idee?

page::masteritems_load(0, 3) mit der 0 (aktuelle Seite) steht fälschlicherweise in der Doku. Ich habs eben raus gemacht. Das geht gar nicht. Da wird was ganz anderes gemacht - es werden nämlich alle Platzhalter der Seite neu geladen.

Ich hab ausserdem die Skriptfunktion selbst geändert. Die erzeugt bei Seite 0 jetzt den Fehler -50.

Die aktuelle Seite des Rahmens kann man mit page::get (gFrame) bekommen.

Und nun zum Problem : Die Musterseiten-Rahmen, die geladen werden sollen, müssen einen Platzhalter haben, dann werden sie auch geladen. Es genügt, dem Rahmen den Platzhalter "Leerer Platzhalter" zu geben.

26.10.2011
Bug 2633 - Einfügen in 1:N-Seitenelemente beginnt auf einer neuen Seite, obwohl noch genügend Platz wäre

Füge ich in ein 1:N-Seitenelement mit gehaltener CMD-Taste (sofort Reorganisieren) ein weiteres Produkt ein, landet das neue Produkt im nächsten Seitenelement, obwohl eigentlich noch genügend Platz im Zielelement gewesen wäre. Das passiert nicht immer - aber ungefähr in 50% der Fälle.

Der Fehler ist gefixt.

FYI

Der Fehler lag daran, dass bei seitenspezifischen Seitentemplates die gespeicherte Seitentemplate-ID anders als die aktuelle Seitentemplate-ID ist. Gespeichert wird die ID für links, aktuell ist die für rechts. Das eingefügte Produkt hat aus diesem Unterschied geschlossen, dass es sich um einen Seitentemplatewechsel (also einen Seitenwechsel) handelt. Was es natürlich nicht ist. Die Seitentemplate-ID der aktuellen Seite muss noch ihr Haupt-Seitentemplate suchen. Erst dann darf verglichen werden.

26.10.2011
Bug 2631 - Absturz bei document::adpat

Der Skriptbefehl document::adapt führt reproduzierbar und immer zum Absturz von InDesign.

Der Fehler ist als Folge des Fixes von Bug 2210 entstanden und besteht seit :

  • v3.2.3 R2606, 14.08.2011
  • v3.3 R2636, 06.09.2011

Er ist jetzt behoben. Es wird für diesen Fix auch noch mal ein neues Releasevon 3.2.3 geben.

20.10.2011
Bug 2630 - Globale Variablen sind im AfterLogin-Skript noch nicht geladen

Im AfterLogin-Skript globale Variablen zu benutzen, ist ja bestimmt keine sehr exotische Idee. Leider sind die aber zu diesem Zeitpunkt noch gar nicht geladen.

Hm, eigentlich doof, stimmt. Ich hab das geändert. Die Variablen werden deshalb jetzt vor dem AfterLogin-Skript geladen und können jetzt dort verwendet werden.

ACHTUNG : Wertänderungen an globalen Variablen sind ja jeweils nur lokal. Sollen Wertänderungen in den Datenpool übertragen werden, kann das mit der Funktion system::commit_global gemacht werden.

20.10.2011
Bug 2629 - Zurückschreiben der globalen Variablen bei Logout - Warum?

Beim Logout werden die globalen Variablen in den Datenpool zurückgeschrieben. Warum eigentlich? Mit system::commit_global kann man das ja auch schon vorher machen - wenn mal will. Das Zurückschreiben am Ende ist da doch eher eine Fehlerquelle, oder?

Stimmt. Ich hab das rausgemacht. änderungen globaler Variablen werden jetzt nicht mehr automatisch zurückgeschrieben.

20.10.2011
Bug 2628 - AfterLoginScript wird bei XML-Offline zweimal ausgeführt

... aber nur beim Start von InDesign.

Da das Skript zur Initilaisierungsphase läuft ist es mglw. ziemlich doof, dass es zweimal läuft. Der Fehler ist behoben.

20.10.2011
Bug 2627 - Tabellen: Arbeiten mit verbundenen Zellen

Es gibt eine Methode zum Verbinden von Zellen (table::merge) und um diese Aktion wieder rückgängig zu machen.

Allerdings habe ich keine Möglichkeit gefunden abzufragen, ob eine Zelle mit einer anderen verbunden ist.

Mein Problem ist, dass ich in einer Gestaltungsregel testen muss, ob bestimmte Stellen miteinander verbunden sind um dann ggf. andere Zellen zu verbinden. Ich könnte das ggf. auch über die Größe der einzelnen Zellen machen, allerdings liefern mir die Methoden table::cell::get_size und table::cell::get_box immer die Größen der ursprünglichen Zellen.

Mit den Funktionen

    table::cell::is_anchor
    table::cell::get_anchor
    table::cell::get_span

geht das jetzt.

19.10.2011
Bug 2602 - Komischer Eintrag in Aufbauregeln

Den hab ich noch beim Aufräumen gefunden: bei den Aufbauregeln gibt es statt "nur Text importieren" oder wie das heisst eine komische Sermon über Magnete und Nägel.

Ich kanns zwar nicht nachvollziehen. Aber ich hab die Resourcebezeichnung mal geändert. In der Regel hilft das. Eigentlich ist Palette sowieso veraltet. Für die entsprechende Einstellung kann die Palette "Template-Verhalten" verwendet werden.

19.10.2011
Bug 2577 - [priint:adjust] Mehrere Boxen gleichzeitig Regeln zufügen Wäre es möglich, mehrere Boxen zu aktivieren und diesen gleichzeitig die Regeln zu hinterlegen?

Ich habe einige (z.T. recht aufwendige) Erweiterungen gemacht :

  1. Mit Doppelklick einer Rahmenaktion kann man ja das entsprechende Skript im Dokument öffnen. Wird der Editor jetzt mit gehaltener SHIFT-Taste geschlossen, wird das Skript auch in allen anderen Rahmen des Dokumentes geändert.

  2. Es gibt ein "Stempel"-Button : Mit gehaltener CMD-Taste werden die Adapter-Einstellungen des aktuellen Rahmens aufgenommen. Weitere Klicks des Buttons übertragen diese Einstellungen dann auf alle Rahmen der aktuellen Dokumentauswahl. Nägel und Magneten werden bei dieser Aktion aus naheliegenden Gründen nicht kopiert.

  3. Es gibt zwei neue Checkboxen in der Palette :
        
        

    Bei eingeschalteter Option werden änderungen an den Rahmen auch in die aktuelle Dokumentauswahl übernommen. Werden dabei bestehende Aktionen des Rahmens geändert, wird in den anderen Rahmen jeweils die ERSTE Aktion mit GLEICHER ID angepasst (oder nichts). Werden änderungen mit gehaltener CMD-Taste gemacht, werden die Optionen temporär aktiviert. (Das geht natürlich nicht bei änderungen von Parameter-Werten. Hier werden Modifier-Taste ja vom Text-Editor ausgewertet und kommen gar nicht erst zu mir.)
19.10.2011
Bug 2605 - Seitentemplates per Drag&Drop zuweisen

Momentan muss ich ein Icon in der Seitentemplates-Palette benutzen, um einer Seite im InDesign®-Dokument ein Seitentemplate zuweisen zu können. Schön wäre, wenn das auch per Drag&Drop ginge - dann wäre die Bedienung in InDesign® und der Workbench identisch. Wenn ich das richtig sehe, passiert bei Drag&Drop sowieso nichts, da würden wir auch nix kaputtmachen.

Ich weiss zwar nicht, wo man in der Workbench Seitentemplates setzen müsste, aber egal, Drag and Drop aus der Palette "Seitentemplates" geht jetzt. Mit gehaltener Shift-Taste werden dabei auch alle Folgeseiten mit dem entsprechenden Seitentemplates verlinkt. Mit CMD-DragDrop wird die Verknüpfung wieder auf 0 gesetzt. (Steht jetzt auch im gelben Zettel des Buttons.)

17.10.2011
Bug 2626 - Undo von "Seitentemplate-Setzen" aus der Palette "Seitentemplates" nur in mehreren Schritten möglich

Wenn ich eine Dokumentseite mit Hilfe des Buttons "Seitentemplate setzen" der Palette "Seitentemplate" mit einem neuen Seitentemplate verknüpfe, sind mehrere Undos nötig, um die Aktion rückgängig zu machen.

Das ist behoben. Jetzt reicht ein Undo der Aktion "Seitentemplate setzen.

17.10.2011
Bug 2625 - Klick auf "Seitentemplate setzen" der Seitentemplates mit Shifttaste soll auch die Seitentemplates der Folgeseiten setzen

So steht es jedenfalls im gelben Zettel des Buttons. Das tut aber nicht. Es wird immer nur die aktuelle Seite gesetzt.

    

Das ist korrigiert. Shift-Click setzt jetzt auch die Seitentemplates der Folgeseiten. Cmd-Click wird ab jetzt dafür verwendet, das/die Seitentemplate/s wieder zurückzusetzen.

17.10.2011
Bug 2624 - Timer-Funktionen für Gestaltungsregeln

Kann man so etwas wie zeitgesteuerte Funktionen für Gestaltungsregeln machen? Z.B. um in einem Textrahmen einen Countdown zu zeigen?

Mit Hilfe der Funktionen timer::start, timer::stop, timer::get_start und Bedingungen für Gestaltungsregeln kann man das jetzt machen. Ein Beispiel für einen Countdown findet sich in der Doku von timer::start.

17.10.2011
Bug 2623 - Funktion zum Berechnen einer Zeitdifferenz

Gibt es eine Funktion, mit der ich einfach die Länge eines Zeitintervalls berechnen kann? Mit cScript-Mitteln wäre das sehr aufwendig.

Mit system::time_diff kann jetzt die Differenz zwischen zwei als Strings gegebenen DateTimes berechnet werden. Das Ergebnis wird immer in Sekunden geliefert. Aber diese Umrechnung zurück ist ja dann einfach.

17.10.2011
Bug 2622 - Multistate- oder Button eines Rahmens

Um Multistate- oder Buttoneigenschaften verwenden zu können, muss man von einem Rahmen das Multistate- oder Buttonobjekt herausbekommen können.

Mit frame::get_multistate geht das jetzt. Mehr dazu in der Online-Doku.

14.10.2011
Bug 2621 - Sortieren einer ItemList

Ich kann eine Rahmenliste ja schon nach einigen Kriterien sortieren. Schön wären auch noch :

  • nach der Sequenznummer (Palette 'Template-Verhalten')
  • nach der UID

Das geht jetzt :

14.10.2011
Bug 2620 - Umkehren einer ItemList

Gibt es eine Funktion, mit der die Inhalte einer Rahmenliste umgekehrt werden können. Man kann zwar recht einfach eine Skriptfunktion selber schreiben, aber eine eingebaute Funktion wäre natürlich schicker.

itemlist::revert kann jetzt dafür verwendet werden.

14.10.2011
Bug 2619 - textmodel::coordinates ignoriert linken Rahmeninset

Die Funktion ist sehr schön und funktioniert auch. Leider ignoriert sie den linken Textinset. Das wäre nicht so schlimm, wenn es eine Funktion gäbe, mit der der Inset berechnet werden kann. Gibt es aber nicht.

Der Textinset wird jetzt beachtet.

14.10.2011
Bug 2618 - Anlegen globaler Variablen nicht möglich

In der Palette "Einstellungen" können ja auch globale Variablen angelegt werden. Leider ist das Popup zum Festlegen des Datentyps gar nicht mehr sichtbar. Dehalb können auch keine globalen Variablen mehr angelegt werden.

Für die Einstellungen wird der Standard-Dialog aus askpop2 verwendet. Leider lag in diesem Fall das zweite Popup über dem ersten. Der Fehler ist gefixt. Globale Variablen können wieder angelegt werden.

14.10.2011
Bug 2426 - Wiederholende Elemente, die ihren Parent-Rahmen löschen, bringen den Seitenaufbau zum Absturz

Der Fehler ist (recht aufwendig) gefixt. Enthält das Template aber MEHRERE Rahmen mit wiederholenden Elementen und post=delete_parent stürzt der Aufbau leider immer noch ab.

Auch das ist jetzt gefixt.

14.10.2011
Bug 2617 - Reihenfolge des Aufbaus wiederholender Elemente

Enthält ein Template mehrere Rahmen mit wiederholenden Elementen, werden diese Wiederholungen in eher zufälliger Reihenfolge ausgeführt. das war wahrscheinlich bisher recht egal. Will man aber Buttons konfigurieren, mit denen der Status eines Multistates geändert werden kann, muss das Multistate unbedingt zuerst geladen sein.

Der Aufbau der wiederholenden Elemente wird jetzt in der Reihenfolge der Sequenznummern der Rahmen gemacht (wie auch das Laden der Rahmen).

14.10.2011
Bug 2616 - In Fortsetzungen werden keine wiederholenden Elemente aufgebaut

Enthält ein Template Rahmen, die wiederholende Elemente anlegen sollen, klappt das zwar im Haupttemplate. In den Fortsetzungen werden aber keine wiederholenden Elemente angelegt.

Wiederholenden Elemente werden jetzt auch in Fortsetzungen anegelegt.

14.10.2011
Bug 2615 - Ebene "Scrollable Content" bei Reorganisationen ignorieren

Die Ebene "Scrollable Content" wird ab CS5.5 als Standardebene für lange Texte verwendet, die in Folios scrollbar sein sollen. Die Rahmen dieser Ebene müssen daher vom Produktaufbau ignoriert werden.

Werden sie, werden sie. Die Rahmen der Ebene Scrollable Content" werden jetzt von Produktaufbau und Reorganisation ignoriert.

14.10.2011
Bug 2614 - Multistate-Objekte bringen Reorganistaion zum Absturz

Enthält eine Seite Multistate-Objekte (Objektstatus), stürzt InDesign® beim Aufräumen der Produkte wiederholbar ab.

Das Problem war, dass alle Rahmen der Seiten, die aufgeräumt werden sollen, zuerst auf eine temporäre Arbeitsebeneverschoben werden. Das geht beim Rahmen aus Multistate-Objekten nicht einzeln. Hier muss das gesamte Objekt auf einmal auf eine andere Ebene verschoben werden.

Der Fehler ist gefixt.

14.10.2011
Bug 2613 - Fehler in der Reorganisation, wenn das Produkt Linien enthält

Enthält ein Produkt-Template Linien, kann nicht mehr aufgeräumt werden. Muss das Produkt auf eine andere Seite kopiert werden, wird beim Übertragen des Bildinhaltes der Linie (!) ein Fehler erzeugt - irgendwie zu Recht, oder?

Der Fehler ist behoben. Templates dürfen jetzt wieder Linien enthalten und können doch die Seite wechseln.

14.10.2011
Bug 2612 - Fehler beim Ausführen gesendeter Ereignisse für Gestaltungsregeln

Sendet eine Gestaltungregel ein Ereignis an einen anderen Rahmen, werden dort zwar alle Regeln ausgeführt, die für dieses Ereignis definiert sind. Ausserdem aber alle anderen Regeln, die ohne Ereignisse ausgeführt werden sollen - das ist ein bisschen viel.

In der Tat. Das ist jetzt korrigiert. In diesem Fall werden jetzt noch die Regeln ausgeführt, die zu dem Ereignis gehören. Alle anderen Regeln werden ignoriert.

14.10.2011
Bug 2611 - Skriptbefehl zum öffnen der Foliovorschau

Man kann es zwar mit einem Menübefehl einfach machen ,aber ein Skriptbefehl dazu wäre sicher auch nicht schlecht. Dann könnte man das ganze schön in einen Showcase einbauen.

document::show_folio macht das jetzt.

14.10.2011
Bug 2610 - Skriptbefehl frame::calc_visible_area ohne Rahmenüberdeckungen

frame::calc_visible_area zieht automatisch alle Teile, die von anderen Rahmen überdeckt werden, von der Rahmenflächen ab. Manchmal wäre es aber hilfreich, die tatsächliche Fläche eines Rahmen bestimmen zu können - die Überdeckungen also zu ignorieren.

Das geht jetzt - mehr dazu in der Online-Doku.

14.10.2011
Bug 2609 - Gestaltungsregel zum verknüpfen und Laden eines Rahmens

Gibt es das? Der Anwendungsfall ist, dass ein Rahmen manchmal unsichtbar gestellt wird und geladen werden muss, wenn er wieder sichtbar wird.

Es gibt die neue Regel "Rahmen verknüpfen und laden". In der Regel kann der Zielrahmen über seine Kennung ausgewählt werden.

14.10.2011
Bug 2608 - Kapitel eines Buches nach Platzhaltern durchsuchen

Berechnet man die Stati der Produkte neu (grüner Haken links unten in der Produktrecherche), wird immer das aktuelle Dokument durchsucht. Häufig ist dieses Dokument aber Teil eines InDesign®-Buches und die Platzhalter der anderen Kapitel (Dokumente) des Buches wären auch von Interesse. Kann man da was machen?

Die Status-Berechnung kann jetzt mit gehaltener Shift-Taste ausgelöst werden. Dann wird zuerst versucht, herauszufinden, ob das aktuelle Dokument Teil eines geöffneten Buches ist. Ist es das nicht, wird das Buch in einem Dialog erfragt und geöffnet. Danach werden alle Dokumente des Buches nach den Produkten der Produktrecherche durchsucht und die Stati entsprechend gesetzt.

Im gelben Zettel des Statusbuttons wird vermerkt, in welchen Dokumenten des Buches das Produkt überall gefunden wurde. Wird das Produkt nur in geschlossenen Dokumenten verwendet, werden die Statussymbole etwas heller als sonst dargestellt (innen weiss).

ACHTUNG

(CMD)-Klick in die Statusbuttons wandert wie bisher nur durch das aktuelle Dokument.

ACHTUNG II

Die Suche in den Dokumenten eines Buches wird in derAufgabenpalette NICHT gemacht. Das ist momentan auch nicht vorgesehen.

14.10.2011
Bug 2607 - Vom Produkt nur zu fehlerhaften Platzhaltern springen

Beim Klick des Statusbuttons (erste Spalte der Produktrecherche) eines Produktes wird ja zum nächsten Platzhalter des Produktes im Dokument gesprungen. Meist interessieren einen aber nur die fehlerhaften Platzhalter. Kann man auch zum nächsten fehlerhaften Platzhalter springen?

Ab diesem Release geht das bei CMD-Klick in das Statusbutton eines Produktes. Mit ALT-Klick wird rückwärts gelaufen.

14.10.2011
Bug 2606 - Status "!" in der Produktrecherche wird nie gesetzt

Eigentlich sollten Produkte, bei denen nicht alle Platzhalter im Dokument okay sind (grüner Haken), in der Palette mit einem Ausrufezeichen gekennzeichtnet werden, wenn der Status der Produkte bestimmt wurde. Das passiert aber nicht. Auch wenn Platzhalter eines Produktes einen roten Haken haben, wird in der Palette immer der grüne Haken angezeigt.

Das funktioniert jetzt (wieder). Als Markierung wird aber jetzt - konform mit den Platzhaltern - ein roter Haken verwendet.

    

14.10.2011
Bug 2600 - productlist::establish() funktioniert nicht ohne Standard-Template

Wenn nicht alle Produkte ein Template haben und productlist::establish() keins zugewiesen wird, funktioniert der Aufbau nicht. Das ist ja erst mal richtig, aber bei Peter Justesen werden die Produkttemplates per Pre-Script gesetzt. Das wird aber nicht ausgeführt, wenn es kein Standard-Template gibt.

Und ich könnte natürlich irgendwas angeben, aber ich würde gern ein manuelles Override über das Dropdown in der Produktpalette* ermöglichen - und das geht dann nicht mehr.

    if (template_id == 0) template_id = get_template_id();

Das Prescript wird jetzt vor der Prüfung gemacht.

04.10.2011
Bug 2595 - ändern von Rahmeneigenschaften über die Palette "Template-Verhlaten" ist sehr langsam

Wenn ich in der Palette "Template-Verhalten" eine Rahmeneingenschaft ändere (z.B. die Kennung oder eine Einstellung in dem grauen Statusfeld des Rahmens), dauert das immer sehr lange. Ich muss jedesmal 2-3 Sekunden warten.

Das liegt daran, dass bei diesen änderungen immer die Regeln "Nach Geometrie-änderungen" ausgeführt werden. Das sollten sie an dieser Stelle eigentlich nicht - und werden sie jetzt auch nicht mehr. Damit ist das Problem gelöst.

FYI

änderungen an diesen Einstellungen senden intern eine Nachricht, dass sie geändert wurden. Damit die änderungen in Paletten sofort registriert werden können, muss dafür die Nachricht "Geometrie-änderung" verwendet werden. Naja, und daraufhin feuern die Regeln. Die Nachricht wird weiter gesendet, klar - aber beim Ausführen der Regeln wird jetzt zusätzlich geprüft, wer die Nachricht versendet hat.

26.09.2011
Bug 2594 - Gestaltungsregel "OnReorganize" wird sehr oft gerufen

Gestaltungsregeln, die bei der Reorganisation ausgeführt werden sollen, werden bei der Reorganisation auch ausgeführt - aber VIEL zu oft - nämlich genau so oft, wie die Cometgruppe gerade Rahmen hat. Das ist doch sicher falsch?!

Ja freilich ist das falsch. Der Fehler ist behoben. Die Reglen werden jetzt nur noch einmal gerufen. Der Fehler ist erst durch Lösung von Bug 2564 entstanden, bestand also auch erst seit v3.3 R2654.

26.09.2011
Bug 2593 - Suchfelder in der Previews-Palette

Es wäre schön, wenn die Previews-Palette zwei Suchfelder zur Einschränkung der Ergebnisse bekommen könnte.

Diese Felder gibt es jetzt. Mehr dazu in der Online-Doku.

26.09.2011
Bug 2588 - fitframe führt bei einzeiligen Texten manchmal zum Absturz

Und zwar immer dann, wenn der Text sehr kurz ist, vorher schon ein fitframe gemacht wurde und der aktuelle Text länger ist.

Um fitframe machen zu können, darf der Rahmen ja keinen Übersatz haben. Er wird deshalb in 10%-Schritten verlängert, bis der Text passt. Ist der Rahmen seht schmal und enthält der Text längere Worte, kann es passieren, dass der Überdsatz dadurch trotzdem nicht weggeht. Dann befinden wir uns in einer Endlosschleife.

Einzeilige Texte werden deshalb nach einigen Versuchen auch verbreitert - dann passt es irgendwann. Ist die Option "Konstante Rahmenbreite" aktiviert, wird der Rahmen zum Schluss wieder auf diese Breite gesetzt (und hat mglw. wieder einen Übersatz).

Bei mehrzeiligen Texten, die ihre Breite ja nie ämdern dürfen, muss das fitframe in diesem Fall irgendwann aufgeben.

23.09.2011
Bug 2587 - Gestaltugnsregel zum Anpassen von Tabellenbreiten an die Rahmenbreite

Mit table::broaden_to_frame kann man Spaltenbreiten einer Tabelle so anpassen lassen, dass die Tabelle so breit wie ihr Textrahmen wird. Gibt es dafür eine Gestaltungsregel?

Ja, es gibt dafür die neue Regel "Tabellenbreite anpassen". Sie kann wahlweise alle oder eine bestimmte Tabelle des Textes anpassen. Es kann ausserdem eingestellt werden, ob Tabellen nur verbreitert sollen oder auch verkleinert werden dürfen (in diesem Fall können ja Textüberläufe in den Zellen entstehen.).

23.09.2011
Bug 2586 - Skriptbefehl zum Ermittlen, ob eine Tabelle breiter ist als der Textrahmen Gibt es eine Möglichkeit, einfach herauszubekommen, ob eine Tabelle breiter als der umschliessende Textrahmen ist?

Ja, table::get_firstouter_column ermittelt die Nummer der ersten Tabellenspalte, die ganz oder teilweise über den rechten Rahmenrand hinausragt.

Workaround

Versionen vor 3.3 R2660 können mit table::get_cellbox einen Workaround bauen.

23.09.2011
Bug 2585 - Gestaltungsregel für Umbrechen von Tabellen

Gibt es zu dem neuen Skriptbefehl table::break_ aus Bug 2584 auch eine Gestaltungsregel?

Ja, es gibt die (neue) Regel "Tabelle umbrechen". Alle im Skriptbefehl table::break_ einstellbaren Parameter sind auch dort einstellbar. Es kann zudem festgelegt werden ob nur eine (und welche) Tabelle oder alle Tabellen des Textes bearbeitet werden.

23.09.2011
Bug 2584 - Skriptbefehl zum Umbrechen von Tabellen

Tabellen, die breiter als der Textrahmen sind, sollen so umbrochen werden, dass überstehende Spalten in neue Zeilen der Tabelle verschoben werden. Über Parameter sollte gesteuert werden könne, ob und wieviele Zeilen- und Spaltenköpfe dabei jeweils übernommen werden sollen.

Vorher

    

Nachher

    

Siehe dazu die neuen Skriptbefehle table::break_ und table::unbreak_.

23.09.2011
Bug 2581 - Im Kontext- und Ansichts-Menü fehlen die Einträge für die Cometgruppen

Obwohl alles ordentlich lizensiert ist, fehlen im Kontextmenü die Einträge für die Cometgruppen. Auch im Ansicht-Menü sind keine entsprechenden Einträge vorhanden. Weil die Menüs fehlen, können keine Rahmen von zu Comet Cometgruppen hinzugefügt oder von ihnen gelöst werden.

Es war die nicht erteilte Lizenz fürs Tabellenmodul. Der Fehler ist gefixt.

16.09.2011
Bug 2580 - Absturz bei der Reorganisation leerer Dokumente

InDesign® stürzt reproduzierbar ab, wenn man (aus Versehen) die Reorganisation eines leeren Dokumentes versucht.

Der Fehler ist gefixt

16.09.2011
R2654

15.09.2011

Bug 2579 - Produktaufbau soll die Seitentemplates des Dokumentes verwenden

Bisher gibt man beim Produktaufbau ein Seitentemplate an, das zum Aufbau verwendet wird. Weitere Seiten verwenden dann jeweils den im Seitentemplate festgelegten Nachfolger.

Es soll aber auch möglich sein, die im Dokument (vorher) festgelegten Seitentemplates zu verwenden.

Das hat Christoph mit dem Aufbau-Flag kPreferExistingPages sehr fein gelöst. Ist dieses Flag gesetzt, wird zuerst geprüft, ob die aktuelle Dokumentseite bereits ein gesetztes Seitentemplate hat. Wenn ja, wird dieses Seitentemplate verwendet. Hat eine Seite kein Seitentemplate (oder wurde neu angelegt), wird mit den normalen Seitentemplate-Nachfolger-Regeln weitergemacht bis mglw. wieder eine Seite mit definiertem Seitentemplate kommt.

Im Aufbau-Dialog gibt es für dieses Flag direkt unter dem Popup zur Auswahl des Seitentemplates die Checkbox ""Bestehende Seiten und -templates bevorzugen".

15.09.2011
Bug 2564 - Austausch der Inhalte von Rahmen gleicher Kennung bei Templatewechsel unterdrücken

Bei Templatewechseln werden die Inhalte von Rahmen gleicher Kennung immer übernommen. Manchmal will man das aber gar nicht - kann man die Inhaltsübernahme nicht irgendwie sperren?

In der Palette "Template-Verhalten" gibt es in jetzt eine weitere Option für die Rahmen : In der Spalte kann angegeben werden, welche Platzhaltertypen (keine Platzhalter, Rahmenplatzhalter, Textplatzhalter, Rahmen- und Textplatzhalter) der Rahmen auch dann geladen werden sollen, wenn es im Austauschtemplate einen Rahmen gleicher Kennung gibt.

    

Die folgende Tabelle zeigt, welche Inhalte übertragen und welche neu geladen werden.

Platzhalter Beschreibung Texte Bilder
kein Bild keine Platzhalter laden Texte und Bilder werden aus den zugehörigen Dokumentrahmen übernommen
Rahmenplatzhalter laden

Der Text des Dokumentrahmens wird übertragen.

Textänderungen durch den Rahmen-Platzhalter werden überschrieben. Werden Textinhalte durch Rahmenplatzhalter einegsetzt, müssen Sie die Einstellung verwenden.

Das Bild des Templates wird verwendet. Setzt der Platzhalter des Template-Rahmens ein Bild ein, wird dieses Bild verwendet.
Textplatzhalter laden Der Text des Templaterahmens wird eingesetzt und alle Textplatzhalter in diesem Text werden geladen. Inhalte von Bildrahmen werden aus dem Dokumentrahmen übernommen.
Alle Platzhalter laden Der Inhalt des Rahmens aus dem Austauschtemplate wird verwendet und neu geladen.
15.09.2011
Bug 2575 - Ersatztemplates verwenden bei Fortsetzungen das Haupttemplate

Ersatztemplates verwenden bei Fortsetzungen das Haupttemplate. Das wird zwar seitenspezifisch gemacht, aber eigentlich sollte an dieser Situation dann auch das (seitenspezifische) Fortsetzungstemplate verwendet werden.

Der Fehler ist gefixt.

06.09.2011
R2636

06.09.2011

Bug 2573 - Seitenelement-bezogene Templates im Seitenaufbau

Wir möchten gerne, dass das erste Produkt einer Seite ein anderes Template verwendet als die nächsten Produkte der Seite. Kann man das machen? Und wenn ja, wie?

Templates haben die Einstellung "Ersatztemplate". Hier kann ein Eintrag eines Popup-Menüs gewählt werden. Die Einstellung gilt für alle Untertemplates eines Templates (li, re, Fortsetzungen).

Das Popup selbst enthält alle Aktionen der Klasse 15 und sollte die gewünschte TemplateID in gPageitemID liefern. Mehr dazu siehe Online-Doku.

Die Einstellung ist "aufräum-resistent" : Wird beim Aufräumen für ein Produkt ein anderes Template berechnet als das tatsächlich existierende im Dokument, wird es getauscht.

Achtung

Ersatztemplates werden auch dann verwendet, wenn eigentlich eine Fortsetzung eingesetzt werden müsste. Enthält das Ersatztemplate keinen geeigneten Rahmen für die Textfortsetzung, entstehen dadurch Textübersätze im Vorgänger-Template.

Workaround

Versionen vor 3.3 können ebenfalls Ersatztemplates verwenden, allerdings sind sie hier einige neue globale Variablen des Skriptes noch nicht definiert. In Versionen vor 3.3 ist das Ersatztemplate zudem nicht "aufräum-resistent". Auch hier mehr dazu in der Online-Doku.

06.09.2011
Bug 2562 - Warnungen und Nachrichten beim Produktaufbau unterdrücken

Diverse Meldungen und Warnungen bringen den Produktaufbau immer wieder zum Halten. Kann man diese Dinger nicht irgendwie unterdrücken?

Ja freilich, das geht. Allerdings nur recht unspezifisch : Alle Nachrichten und Warnungen unterdrücken. Für productlist::establish und productlist::reorganize gibt es dafür jetzt das Flag kSuppressAlerts. Für Buttons und Menübefehl Seitenaufbau und Reorganisation gibt es das Menü

01.09.2011
Bug 2561 - Fehler beim Produktaufbau ignorieren

Kann man den Produktaufbau so machen, dass Fehler im Aufbau ignoriert werden und der Aufbau einfach weiter macht?

Für productlist::establish und productlist::reorganize gibt es jetzt das Flag kIgnoreErrors. Für Buttons und Menübefehl Seitenaufbau und Reorganisation gibt es das Menü

Aufgetretene Fehler kann man im Logfile finden.

Achtung : Fehlerhafte Produkte können 'Löcher' im Dokument erzeugen. Aufräumen des Dokumentes füllt diese Löcher.

01.09.2011
Bug 2560 - Zusätzliche Grössenprüfung beim Produktaufbau

Wir haben in einem Projekt die Bedingung, dass die von Tabellen in Textrahmen mit Fortsetzungen immer mindestens 4 Tabellenzeilen gezeigt werden sollen. Mit den bisherigen Bordmitteln des Aufbaus ist das wohl nicht lösen, oder?

Nein, das ist bisher nicht lösbar. Ich habe einen neue Klasse von Actions (48) eingeführt. Diese Skripte können einem Template zugeordnet werden. Beim Produktaufbau wird dieses Skript dann in verschiedenen Situationen (GrössenPrüfung vor dem Einsetzen, Grössenprüfung nach dem Einsetzen, ...) ausgeführt. Damit ist das Problem lösbar. Mehr dazu und Beispiele in der Online-Doku.

01.09.2011
Bug 2553 - Anzeige nach dem Anlegen eines neuen Templates

Wenn ich ein neues Template anlege und es einer Domain zuweise, erscheint es ganz normal in der Template-Palette. Erst beim Neuladen der Palette wird es in den Ordner mit der Domain einsortiert.

Ja, das ist mit einer gewissen Absicht so : Die nötige Hierarchy-Ebene ist meist im Fenster gar nicht sichtbar oder nicht geöffnet. In beiden Fällen müsste die Liste (teilweise) neu aufgebaut werden. Das ist ein Riesenaufwand für so ein kleines Feature.

Ich habe trotzdem eine kleine änderung gemacht . Bei neuen und geänderten Templates werden Bereich und Typ rechts oben in der Zeile in rot reingeschrieben.

    

31.08.2011
Bug 2557 - 'Löcher' im Aufbau beim Aufräumen von Fortsetzungen

Bekommt die Hauptgruppe eines Templates mit Fortsetzungen beim Aufräumen weniger Platz als vorher, wird für die Hauptgruppe ein Seitenelement gesucht, in das die Rahmen in ihrer aktuellen Dokumentgrösse passen. Dadurch entstehen 'Löcher' im Aufbau.

Beim Aufräumen werden die aktuellen Rahmengrössen der Produkte verwendet um einen geeigneten Stellplatz zu finden. Das ist auch richtig so. Die Höhe von Textrahmen, die eine Fortsetzung erzwingen, wird aber vom Cometen gesteuert. (Mit dem Klick in die Dreieck-Spalte der Palette 'Template-Verhalten' übergeben Sie die Kontrolle der Höhe eines Rahmens an den Cometen.). In diesem Fall muss der Rahmen vor dem Aufräumen auf die Originalhöhe im Template gebracht werden (inkl. der Aktualisierung der Magnetabstände, die weitere Rahmen der Cometgruppe ändern können.) Erst dann kann die Grössenprüfung richtig gemacht werden. Das wird jetzt gemacht.

    

FYI : Die Originalhöhe eines Rahmens wird beim Sichern eines Templates im Template hinterlegt. Beim Einsetzen des Templates wird dieser Wert ins Dokument übernommen und bleibt dort unverändert. Nachträgliche änderungen des Templates haben auf die Informationen im Dokument keinen Einfluss mehr.

31.08.2011
Bug 2556 - Letzter Textrahmen einer Fortsetzung ist nicht in der Höhe angepasst

Der letzte Textrahmen einer Fortsetzung wird in einigen Fällen nicht in seiner Höhe angepasst. Bei diesem Rahmen wird offenbar das fitframe nicht gemacht.

Ja. Das passiert immer dann, wenn der Text des letzten Rahmen ohne Übersatz in den Textrahmen passt wie er vom Template kommt. In diesem Fall hat der Rahmen keinen Übersatz und mehr testet der Aufbau bisher auch nicht. Das ist natürlich zu wenig. In diesem Fall muss natürlich noch ein fitframe gemacht werden. Das wird jetzt gemacht.

31.08.2011
Bug 2555 - Absturz beim Anlegen von Fortsetzungen

Ist der Textrahmen, der eine Fortsetzung eines Templates erzwingt, höher als das Seitenelement, stürzt InDesign® bei der Grössenanpassung dieses Rahmens ab. Das Problem tritt nur dann auf, wenn ein BuildSupportScript ein Seitenelement abgelehnt hat und danach ein kleineres Seitenelement verwendet werden soll.

Der Fehler ist gefixt.

31.08.2011
Bug 2552 - Templates mit Fortsetzungen werden beim Aufräumen häufig ins nächste Seitenelement verschoben, auch wenn eigentlich im alten Seitenelement noch genügend Platz wäre

Bekommt das Produkt mehr Platz (weil z.B. ein Produkt darüber entfernt wurde) klappt alles. Wird der Platz vor dem Produkt aber kleiner (weil z.B. ein Vorgängerprodukt grösser geworden ist), dann wird das Produkt auch dann ins nächste Seitenelement verschoben, wenn eigentlich noch genügend Platz vorhanden wäre.

Ja, wieder ein kniffeliges Problem : Beim Aufräumen werden natürlich die aktuellen Rahmengrössen als Grundlage der Tests gegen die Seitenelemente verwendet (Da können ja jede Menge manuelle änderungen drinne sein.). Nur bei Textrahmen mit Fortsetzungen darf man das freilich nicht machen - deren Höhenberechnung hat man ja den Plugins übertragen. Vor der Bestimmung der aktuellen Boundingbox um ein Produkt müssen also zuerst alle Textrahmen mit automatischer Fortsetzung wieder auf ihre Ursprungshöhe zurückgesetzt werden (was dann wiederum die Aktualisierung von Nägeln und Magneten nötig macht ... ). Das wird jetzt alles gemacht - und schon gehts. Gut.

26.08.2011
Bug 2551 - Bei der Reorganisation von Fortsetzungen werden mitunter die Templates des falschen Seitentyps verwendet

Das passiert nicht bei jedem Produkt. Aber wenn ein Produkt es falsch macht, macht es das immer falsch.

Das ist jetzt gefixt.

26.08.2011
Bug 2550 - Abstürze bei itemlist:: get_cometgroup_members

Die Skriptfunktion itemlist::get_cometgroup_members führt immer mal wieder zum Absturz von InDesign. Es sieht so aus, als würde diese Funktion sich immer wieder selbst aufrufen und damit einen Stack-Overflow erzeugen.

Ja, das ist leider so. Mit einer recht harmlosen Comet-Gruppierung (die ich hier jetzt natürlich nicht beschreibe), kann man Gruppen so anordnen, dass sich get_cometgroup_members endlos damit beschäftigen könnte. So viel Zeit haben wir nicht. Deshalb ist dieses Verhalten jetzt beseitigt.

26.08.2011
Bug 2549 - Lange Ladenzeiten beim öffnen eines Produktes im Produktbaum verführt zu weiteren Klicks auf das öffnen-Dreieck

Das macht es ja leider auch nicht schneller. Aaber der Mausklick wird trotzdem registriert und das mühsam geöffnete Eintrag wird dann sofort wieder geschlossen :-(

Gegen die Ungeduld können wir nichts machen. Aber wir können den Cursor (Sanduhr oder buntes Rad) drehen lassen. Dann sieht man wenigstens, dass noch gearbeitet wird.

Achtung : Auch mit Spin-Cursor werden Mausklicks vom System weiter gepuffert. Wer das nicht will, muss sich dann mal an Apple bzw. MicroSoft wenden.

26.08.2011
Bug 2547 - Legt ein Template zusätzliche Rahmen an, gehen bei der Reorganisation alle Fortsetzungen verloren

Wenn beim Laden eines Produktes zusätzliche Rahmen angelegt wurden, gehen in den meisten Fällen bei der Reorganisation alle Fortsetzungen verloren. Der Textrahmen des Haupttemplates, der eigentlich fortgesetzt werden soll, enthält den gesamten Text. Der Übersatz wird nicht mehr aufgelöst.

Rahmen, die durch den Cometen ins Dokument eingesetzt werden, bekommen eine Info, welches Template sie angelegt hat (oder 0 z.B. bei frame::create). Diese Info wird bei der Reorganisation verwendet. Die zusätzlich angelegten Rahmen haben dort dann aber eine andere Zahl stehen als die anderen Rahmen der Cometgruppe (nämlich 0 oder die TemplateID IHRES Templates).

Da diese Rahmen zudem die jüngsten Rahmen der Cometgruppe sind, werden sie in allen InDesign®-Funktionen zuerst gefunden und geben so ihre (falsche) TemplateID weiter. Die wird dann bei der Reorganisation verwendet - und hat meist keine Fortsetzung.

Man kann das Ganze eigentlich leicht sehen, wenn man die Palette 'Produkte des Dokumentes' verwendet. Dort steht ja hinter jedem Produkt auch das verwendete Template. Bei Produkten mit zusätzlichen Rahmen steht dort dann etwas, was man eigentlich nicht erwartet. Aber genau das wird verwendet für die Reorganisation.

Das Problem ist gefixt für Rahmen, die mit document::place_items, frame::create, frame::create2, frame::create_textframe und frame::create_textframe_f angelegt werden. Gibts noch mehr Möglichkeiten?

23.08.2011
Bug 2546 - Durch Loadskripte angelegte Rahmen in Fortsetzungen machen die Reorganisation unmöglich

Enthält eine Seite Produkte mit Fortsetzungen, die beim Laden zusätzliche Rahmen angelegt haben (z.B. mit document::place_items) kann diese Seite nicht mehr reorganisiert werden. Es wird jedesmal der Fehler -1110 erzeugt : Kein Seitenelement gefunden, das groß genug für das Produkt ist.

Rahmen, die durch von Fortsetzungen angelegt werden, bekommen eine interne Kennung. Die wird unter anderem dazu benötigt, bei der Reorganisation die Cometgruppe eines Produktes in ihre (Fortsetzungs)teile zu zerlegen. Von der Hauptgruppe wird dann die Grösse ermittelt. Leider wurden die zusätzlichen Rahmen nicht als Fortsetzungen erkannt und deshalb der Hauptgruppe zugeordnet. Diese Gruppe wurde dadurch natürlich viel zu groß - und hat u.U. in kein Seitenelement mehr gepasst.

Der Fehler ist gefixt. Zusätzlich angelegte Rahmen werden jetzt der jeweiligen Fortsetzungs-Gruppe zugeordnet.

ACHTUNG : Die Suche nach zusätzlich angelegten Rahmen wird auf den jeweilgen Spread beschränkt. Da eine einzelne Fortsetzung aber sowieso nicht grösser als ein Seitenelement sein kann, ist diese Einschränkung ausreichend.

23.08.2011
Bug 2334 - Ursprünglicher Tabellenplatzhalter einer Tabelle

Der Platzhaltertext wird jetzt als TaggedText (nicxht mehr als plain text) aufgehoben. Beim Zurücksetzen der Verknüfungen (siehe Bug 2514 und Bug 2515) wird die Tabelle durch diesen formatierten Text ersetzt.

04.08.2011
Bug 2527 - Situation "Nach Aufbau" bei Gestaltungsregeln wird nie benötigt

Für die Situation "Nach Aufbau" der Gestaltungsregeln gibt es keine Standardregel. Wofür wird diese Situation eigentlich benötigt?

    

Gute Frage. Eigentlich war diese Situation dafür gedacht, Magnetabstände wieder zu korrigieren. Das muss aber sowieso auch anderen Stellen gemacht werden und ist hier gar nicht nötig.

Diese Reglen werden deshalb jetzt tatsächlich nach dem Aufbau eines Produktes ausgeführt. Und zwar - und das ist neu: Für jeden Rahmen einzeln, nicht mehr einmal für die gesamte Gruppe. Man kann an dieser Stelle also jetzt jede beliebige andere Gestaltungsregel auch verwenden. Ausserdem hat sich die interne ID der Ausführsituation geändert (von 0x10 auf 0x20). Regeln "Nach Aufbau", die in Versionen vor 3.3 gesetzt wurden, werden jetzt nicht mehr ausgeführt.

Siehe dazu auch hier.

02.08.2011
Bug 2526 - Bedingung für Gestaltungsregeln zum Grössenvergleich

Schön wäre eine Bedingung für Gestaltungsregeln mit der die Grössen zweier Rahmen verglichen werden können.

Die Bedingung "Grössenvergleich" erledigt das jetzt.

02.08.2011
Bug 2525 - Bedingung für Gestaltungsregeln, mit der die Lage der Seiten zweier Rahmen getestet werden kann

Schön wäre eine Bedingung für Gestaltungsregeln mit der getestet werden kann, ob die Kante eines Rahmens kleiner, gleich oder grösser der gleichen Kante eines anderen Rahmens der Cometgruppe ist.

Die Bedingung "Kantenvergleich" erledigt das jetzt.

02.08.2011
Bug 2524 - Gestaltungsregel "Rahmen ausrichten" mit Festhalten der Gegenseite

Die Gestaltungsregel "Rahmen ausrichten" ist ja ganz cool. Die Rahmen werden schön ausgerichtet. Wenn man jetzt noch die Gegenseite der Kante, an der ausgerichtet wird, festhalten könnte, könnte man auf eine ganze Menge Magneten verzichten.

Das geht jetzt. Im vierten Parameter der Funktion kann jetzt eingestellt werden, dass die Gegenseite festgehalten werden soll.

02.08.2011
Bug 2523 - Gestaltungsregeln für einfache Nachrichten

Kann man nicht ein paar einfache Gestaltungsregeln machen, mit denen sich Nachrichten zeigen und/oder schreiben lassen?

Es gibt jetzt die neuen Gestaltungregeln

  • Piep
  • Nachricht zeigen (nicht bei Geometrieänderungen anwendbar!)
  • Logmeldung schreiben
02.08.2011
Bug 2522 - Export der Absatz- und Zeichenstile

Wir müssen für den Whiteboard-Editor Absatz- und Zeichenstile eines Dokumentes exportieren können. Nützlich wären auch noch die Definitionen der Farbfelder.

document::export_styles macht das jetzt.

02.08.2011
Bug 2518 - Aufwand für Sync-Skripte verringern

Sync-Skripte sind immer sehr aufwendig zu programmieren und zu pflegen. Die in Bug 2517 beschriebene Vergleichsfunktion für Strings hilft da zwar jetzt, aber der Restaufwand bleibt : Wenn die Laden-Aktion andere Daten abholt oder die Ergebnisse anders aufbereitet, muss trotzdem jedesmal das Sync-Skript angepasst werden.

Kann man das Ganze nicht etwas vereinfachen?

Doch man kann. Der Konfigurationsaufwand verringert sich dadurch um mind. 30%! Denn eigentlich braucht man ja gar keine Sync-Skripte, zumindest nicht in 95% aller Fälle. Alles, was die Sync-Aktion errechnet, hat das Laden-Skript auch schon mal gemacht. Warum also nicht die Laden-Aktion zum Sync verwenden?

Und so gehts :

Als Sync-ID in den Platzhalter -1 eintragen.

Dann wird zur Berechnung des Sync-Statuses die Laden-Aktion des Platzhalters verwendet.

Laden-Aktion mit SELECT

In diesem Fall muss rein gar nichts angepasst werden. Aus der Anzahl der gefundenen Datensätze und deren Inhalt können die Plugins den Sync-Status selbst errechnen. Das klappt auch für Bildplatzhalter.

Laden-Aktion mit Skripten

Natürlich muss das Skript den Plugins den neuen Platzhalterwert mitteilen. Das machen wir aber auch bisher schon : Mit gNewValue für die Aufgabenpalette. gNewValue ist jetzt auch in den Sync-Calls der Laden-Skripte definiert. Das Ergebnis muss dann nur noch von den Plugins gegen den aktuellen Platzhalterwert im Dokument getestet werden. Damit kann entschieden werden, ob der Platzhalter einen grünen und einen roten Haken bekommt. Und die anderen Sync-Werte? Die werden im Ladenskript ja hoffentlich auch gesetzt, wenn keine Daten gefunden werden, oder. Danach muss dann gSyncChanged auf 1 gesetzt werden. Fertig.

Stringvergleiche

Zum Testen des Datenpool-Wertes gegen den aktuellen Dokumentwert werden die "Netto"-werte der Strings verwendet.

26.07.2011
Bug 2516 - SWF-Export von Dokumenten mit cScript

Kann man InDesign®-Dokument mit cScript in SWF exportieren?

Man kann. Wenn die InDesign®-Version den SWF-Export unterstützt, wird durch die Formatangabe "swf" in document::export_ ein SWF-Export gemacht. Für den Export werden die >Einstellungen des SWF-Exportdialoges verwendet.

(v3.3 R2580) Zuätzlich können ab jetzt der Funktion document::export_ weitere Parameter zur Konfiguration des Exportes mitgegeben werden (25 Stück!). Viel Spass.

25.07.2011
Bug 2515 - Templates ohne Platzhalterverknüpfungen speichern

Beim Anlegen und ändern von Templates werden die Rahmen und Texte 1:1 ins Template übernommen. Schön wäre, wenn man einstellen könnte, dass vor dem Sichern des Templates alle Platzhalter zurückgesetzt werden und dass insbesondere die durch Tabellenplatzhalter angelegten Tabellen wieder durch ihre Tabellen ersetzt werden. Gerade die Übernahmen der ersetzten Tabellenplatzhalter ist eine zeimlich große Fehlerquelle und kann bisher nur manuell gemacht werden.

In der Template-Palette gibt es jetzt die Checkbox "Vor dem Sichern Platzhalterverknüpfungen zurücksetzen". Ist die eingeschaltet, werden vor der Übernahme ins Template alle Platzhalter mit [Kein Objekt] verknüpft. Tabellen von Tabellenplatzhaltern werden durch ihren Tabellenplatzhalter ersetzt.

    

Achtung

Der Preview wird vorher gemacht, enthält (zur besseren Sichtbarkeit) die Tabellen also noch.

22.07.2011
Bug 2514 - Zurücksetzen der Platzhalterverknüpfungen

Kann ich die Verknüpfungen der Platzhalter meiner Rahmen und Texte wieder rückgängig machen (auf 0 stellen)?

Ja, das geht. Der erste Eintrag der Produktrecherche ist immer [Kein Objekt]. Wie in den anderen Produkten auch befindet sich hier in der ersten Spalte ein Button (das zweifarbige Quadrat). Shift-Klick in das Button setzt die Platzhalter der aktuellen Dokumentauswahl auf - genau - [Kein Objekt].

Die ID1 dieses Objektes ist nicht 0, sondern -2. Dadurch ist auch sichergestellt, dass in der Produktrecherche [Kein Objekt] ausgewählt wird, wenn der Platzhalter im Dokument ausgewählt wird.

Neu ist, dass dabei auch alle Tabellen, die durch Tabellenplatzhalter aufgebaut wurden, wieder durch ihre Tabellenplatzhalter ersetzt werden.

Die Zeile [Kein Objekt] der Produktrecherche enthält darüber hinaus einen Hinweis, dass hier die Platzhalterverknüpfungen zurückgesetzt werden können.

    

22.07.2011
Bug 2210 - Fehler bei starken Verkleinerungen (priint:adjust)

Bei starken Seiten-Verkleinerungen werden Adaptionen nicht mehr ordentlich ausgeführt. Rahmen rechts und unten auf den Seiten nicht mehr richtig adaptiert.

Der Fehler ist seit v3.1 R2223 gefixt mit der Einschränkung, dass es unter CS3 weiter zu Fehler kommen kann.

Adaptionen mit Verkleinerungen, bei denen Rahmen ohne Nägel von der Seite fallen würden, funktionieren jetzt auch unter CS3.

20.07.2011
Bug 2502 - Notizen XML ist falsch interpretiert

Wir haben eine Notiz die einem Rahmen gehört angelegt. Leider interpretieren die Plugins die Notiz als Gruppennotiz. Wenn ich das Dokument im Whiteboard sichere wird der Rahmenkommentar plötzlich ein Cometgruppekommentar sein.

Das ist jetzt gefixt.

21.07.2011
Bug 2510 - Panelaktionen für mehere Rahmen benötigen je ein Undo pro Rahmen für "Rückgängig" Hat man mehrere Dokumentrahmen ausgewählt und führt dann eine Palettenaktion aus muss man für jeden Rahmen einzeln ein Undo machen und die Aktion rückgängig zu machen.

Die änderungen können jetzt in einem Schritt rückgängig gemacht werden.

20.07.2011
Bug 2509 - Parameter eingebauter Gestaltungsregeln mit Wertelisten (Popup) haben zwischen jedem Eintrag einen Leereintrag

Parameter eingebauter Gestaltungsregeln mit Wertelisten (Popup) haben zwischen jedem Eintrag einen Leereintrag.

Ist gefixt.

20.07.2011
Bug 2507 - Alle Rahmen gleicher Kennung auswählen

In der Palette "Template-Eigenschaften" gibt es ein Button, mit dem zu einem Rahmen alle anderen Rahme des Templates ausgewählt werden können, die die gleiche Kennung haben. Das funktioniert aber irgendwie nicht richtig.

Ist gefixt.

20.07.2011
Bug 2506 - Fehler bei w2-Tags in Tabellen

w2-Tags in Tabellen funktionieren nur eingeschränkt :

  • Beim Export im Format kExportW2 (z.B. mit textmodel::gettext) fehlen sie in Tabellen ganz
  • Beim Import werden sie nur für "Top-Level"-Tabellen angelegt. w2-Tags in Untertabellen werden ignoriert und es werden keine Platzhalter in den Untertabellen angelegt.

Leider sind die bisher verwendeten Verfahren für Export und Import von Comet-Platzhaltern (w2-Tag) nicht so erweiterbar, dass die oben beschriebenen Probleme gelöst werden können. In einem ganz alten Beispiel von Adobe (CS2, April 2005) habe ich die Lösung gefunden : Der eingebaute Mechanismus zum Import und Export von TaggedText kann (relativ) einfach um eigene Textformate (und nichts anderes sind die Platzhalter) erweitert werden.

Cometplatzhalter werden damit jetzt auch beim ganz normalen Export von TaggedText mit InDesign®-Bordmitteln (z.B. über das Menü Datei:Exportieren...) mit exportiert. Auch beim Import werden die Platzhalter automatisch angelegt : Zieht man eine TaggedText mit w2-Tags ins Dokument, werden dabei automatisch auch die Platzhalter richtig angelegt.

Damit ist das oben beschriebene Problem vollständig gelöst. Der Import von TaggedText ist eine zentrale Stelle in unseren Plugins, es ist daher nötig, die v3.3-Plugins in Bezug auf die Verwendung von TaggedText genau zu testen.

Achtung

  1. Die Comet-Pluigns müssen installiert sein (mind. EmbeddedLink), damit der Import/Export von Comet-Platzhaltern unterstützt wird.
  2. Das Ende-Tag heisst im automatischen Betrieb nicht </w2> sonder <w2:> und unterscheidet sich vom Anfangstag nur dadurch, dass hinter dem ':' sofort die schliessende Klammer '>' folgt. In %!TT wird <w2/> weiterhin unterstützt. Dort darf aber jetzt auch <w2:> stehen.
  3. Platzhalter werden natürlich beim reinen Import nicht neu geladen

Mit Hilfe der Menüs

    Zusatzmodule:Comet:Platzhalter in TaggedText schreiben
    Zusatzmodule:Comet:Platzhalter aus TaggedText anlegen

können Sie dieses Verhalten jeweils abschalten. Comet-Funktionen wie textmodel::get oder textmodel::insert werden von diesen Enstellungen nicht betroffen. Weitere Infos finden Sie hier.

20.07.2011
Bug 2210 - Fehler bei starken Verkleinerungen (priint:adjust)

[Auch in 3.2.3 gefixt]

Bei starken Seiten-Verkleinerungen werden Adaptionen nicht mehr ordentlich ausgeführt. Rahmen rechts und unten auf den Seiten nicht mehr richtig adaptiert.

Der Fehler ist seit v3.1 R2223 gefixt mit der Einschränkung, dass es unter CS3 weiter zu Fehler kommen kann.

Adaptionen mit Verkleinerungen, bei denen Rahmen ohne Nägel von der Seite fallen würden, funktionieren jetzt auch unter CS3.

20.07.2011
Bug 2505 - w2-Tags werden falsch positioniert, wenn der Text vorher die Zeichen \< oder \> enthält

Enthält ein TaggedText (%!TT) im Text \< oder \>, verschieben sich die Positionen aller nachfolgenden w2-Platzhalter im eine Position pro \< bzw. \> nach hinten.

Das ist gefixt. Die angegebenen Zeichen werden jetzt richtig gezählt.

20.07.2011
Bug 2504 - Platzhalter von Tabellen in Tabellen werden nicht bearbeiten

Sind in den zu bearbeitenden Dokumentteilen Tabellen in Tabellen enthalten, werden Platzhalter dieser Untertabellen nicht gefunden . Sie werden nicht geladen oder zurückgeschrieben. Platzhalter, die nicht aktuell sind, erscheinen nicht in der Aufgaben-Palette.

Das ist gefixt. Platzhalter in Untertabellen werden jetzt bearbeitet.

20.07.2011
Bug 1779 - Sets in Platzhalterpalette

Wäre es nicht toll, wenn (am bestem vom anwender selber) in der Platzhalterpalette platzhalter-sets angelegt und gespeichert werden könnten, damit man schnell auf eine bestimmte, individuell zusammengestellte gruppe von platzhaltern zugreifen kann - zb. um diese zu aktualisieren. die einzelnen platzhalter müssten mehreren sets zugewiesen werden können.

Ab v3.3 geht das. Die Pflege der Platzhaltergruppen kann komplett in InDesign® (Palette Platzhalter) gemacht werden. Die Installation ist hier beschrieben.

13.07.2011
Bug 2485 - Skriptfunktionen zur Unterstützung von InDesign®-Verknüpfungen

Mit der Funktion document::update_links können Verknüfungen des Dokumentes bereits aktualisiert werden.

Die folgenden Funktionen erweitern den Umgang mit Verknüpfungen zusätzlich :

    document::get_links
    frame::doclink::get
    frame::doclink::get_frame
    frame::doclink::get_state
    frame::doclink::get_path
    frame::doclink::update
    frame::doclink::copy_to_folder
30.06.2011
Bug 2480 - Welcher Tabellen-Platzhalter und welches Template haben eine Tabelle ins Dokument eingefügt?

Gibt es eine Möglichkeit, aus einer Tabelle zu ermitteln, welcher Tabellenplatzhalter sie mit welchem Tabellentemplate ins Dokument eingefügt hat?

Dazu gibt es jetzt die Funktionen :

    table::get_templateid
    table::set_templateid
    table::get_placeholderid
    table::set_placeholderid
28.06.2011
Bug 2479 - Gesperrte Rahmen führen zu Absturz

Wird in einem Skript die Lage/Grösse gesperrter Rahmen verändert, führt das zum Absturz von InDesign.

Ja, gesperrte Objekte dürfen auch via cScript bisher nicht verändert werden. InDesign® zeigt dann eine entsprechende Fehlermeldung. Macht das Skript nur eine solche Rahmenänderung, ist alles gut : Der Rahmen wiord zwar nicht verändert, aber am Skriptende wird die entsprechende Nachricht gezeigt.

Werden mehrere solcher Rahmenänderungen gemacht oder enthält das Skript danach noch mind. ein showmessage, kann InDesign® die mehreren Dialoge nicht mehr verwalten und stürzt lieber ab.

In den folgenden Skriptfunktionen wird der Rahmen-Lock jetzt vorübergehend entfernt (und nach Funktionsende wieder gesetzt)

    frame::fit

    frame::moveto
    frame::resize
    frame::scale
    frame:skew
    frame::rotate

    frame::move_to_layer

    frame::group

    frame::bring_to_front
    frame::bring_forward
    frame::send_backward
    frame::send_to_back

Skripte vor 3.3 R2526 verwenden die folg. Sequenze :

int locked = frame::is_locked (fr);
:
:
if (locked) frame::unlock (fr);
:
: // Change position and or size
:
if (locked) frame::lock (fr);
21.06.2011
Bug 2478 - Nach Sprung zum Textplatzhalter aus der Aufgabenpalette findet man den Textcursor nicht

Bei Klick in die Einträge der Aufgabenpalette wird der zugehörige Platzhalter im Dokument ausgewählt. Rahmenplatzhalter werden dabei in der Ansicht zentriert. Textplatzhalter leider nicht. Es ist manchmal ziemlich schwierig, die geänderte Textauswahl im Dokument zu finden.

Textauswahlen über die Aufgabenpalette werden jetzt ebenfalls im Dokumentfenster zentriert. Damit sind sie dann leicht zu finden.

21.06.2011
Bug 2473 - textmodel-Funktionen mit textrelativen Positionsangaben

In den meisten textmodel-Funktionen werden Positions- und Längenangaben platzhalterrelativ verwendet. So kann man mit den Funktionen textmodel::get_parastyle und textmodel::set_parastyle Absatzstile zwar ermittlen und ändern - aber eben innerhalb des Platzhalters. Es wäre schön, wenn es die Möglichkeit gäbe, auch Textänderungen (und insbesondere TextFORMATänderungen ausserhalb eines Platzhalters zu machen.

Es gibt jetzt die neue Funktion

    textmodel::use_global_index

Wird diese Funktion ohne Parameter oder mit 1 als erstem Parameter ausgeführt, interptretiert der nächste Aufruf einer platzhalterbezogenen Textfunktion seine Positionsangaben relativ zum gesamten Text. (0 ist dann also der Textanfang und nicht mehr der Platzhalteranfang). Die Einstellung gilt jeweils für EINEN Aufruf und wird danach wieder zurückgesetzt.

Achtung : Das gilt wie gesagt FÜR ALLE Textfunktionen mit platzhalterbezogenen Textindexen. Also z.B. auch für textmodel::insert. textmodel::insert ("aa", 0) fügt dann den Text "aa" nicht am Platzhalteranfang sondern am Textanfang ein.

17.06.2011
Bug 2461 - Welche InDesignobjektklasse hat das Objekt, auf das ein ItemRef zeigt?

Kann man die Objektklasse eines ItemRefs ermitteln?

Die Funktion item::get_class ermittelt die Klassen-ID gültiger ItemRefs. Die Klassen-IDs werden von Adobe vergeben. In der Online-Dokuder Funktion finden Sie eine kleine Auswahl von IDs und deren Klassennamen.

07.06.2011
Bug 2460 - Prüfung, ob ein ItemRef im Dokument existiert

Kann ich prüfen, ob das Objekt, das von einem ItemRef referenziert wird, imDokument exisiert?

Mit der neuen Funktion item::exists kann jetzt geprüft werden, ob eine Referenz auf gültiges Objekt im Dokument zeigt.

07.06.2011
Bug 2459 - ItemRef definieren/ändern

Kann ich ein ItemRef der Skriptsprache selbst definieren? Ich weiss z.B. die UID eines Rahmens und möchte davon ein ItemRef definieren.

Das ging bisher tatsächlich nicht. Jetzt gibt es die Funktion

    item::define

mit der ein ItemRef definiert werden kann.

Achtung I

Die Funktion prüft nicht, ob das referenzierte Objekt auch existiert.

Achtung II

Prüfen Sie mit item::exists und item::get_class, ob das Objekt auch existiert und welchen Typ es hat.

07.06.2011
Bug 2458 - Ausgabe von Hexzahlen in cScript

Mit %x kann man in C und C++ gewöhnlich Zahlen in Hexadezimalschreibweise ausgeben. Wenn ich das in cScript (z.B. in wlog) verwende, bekommen ich lediglich ein x in die Ausgabe.

Mit der folg. Anweisung schreiben Sie die InDesign®-Klassen-ID eines Dokumentobjektes ins Logfile.

    wlog ("", "%d : 0x04%X'\n", item::getint (ref), item::get_class (ref));

Ist "ref" die Referenz auf einen gültigen Dokumentrahmen, wird das in Log geschrieben :

207 : 0x6201
07.06.2011
Bug 2456 - Funktion zum Aktualisieren von Links

In der Palette "Verknüpfugen" wird angezeigt, wenn Bilder im Dokument nicht mehr aktuell sind (gelbes Dreick). In dieser Palette kann man die Verknüpfungen auch aktualisieren lassen. Kann man das auch über einen cScript-Befehl machen lassen?

Der neue Befehl

    document::update_links

kann das jetzt machen. Mehr dazu in der Online-Doku.

06.06.2011