[GastForen Programme Print/Bildbearbeitung Adobe InDesign Script: CharacterStyle zuweisen -- Probleme mit ["None"]

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

Script: CharacterStyle zuweisen -- Probleme mit ["None"]

afteraid
Beiträge gesamt:

31. Jan 2007, 10:45
Beitrag # 1 von 11
Bewertung:
(5417 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo @ all,
mein erster Beitrag ;) und gleich ne Frage(der traut sich was...)

Da InDesign ja weder Tabellenverzeichnisse noch Bildverzeichnisse unterstützt habe ich mir was gebastelt:
Layer = Text Frame mit Inhalt(generiert durch TOC -Paragraph Style der Tabellenlabels und des Autoren-Baseline Shift angewendet)
Layer = Tabelle mit Formatierung

Was leider nicht geklappt hat war das hinzufügen von Nummern, da ich die Tabellen- / Bildnummer jeweils im Bild rechts oben in seperatem Textframe angebracht habe und InDesign falls 2 Elemete auf einer Seite sind mt der Nummerierung durcheinanderkommt.

Lange Rede ...
hab also noch die Aufgabe in Spalte die Nummern "händisch" einzugeben und bei 100++ war schnell der Eifer im Keller...

also hab ich mir mit der Forenhilfe folgendes gebastelt(Achtung 1. Skript)

Code
// insertNumberIntoSpalte.jsx   

if (app.selection[0].parent.constructor.name == "Cell")
var myTable = app.selection[0].parent.parent;
var myTotalRows = myTable.rows.length;
var myTotalCols = myTable.columns.length;
var colChoices = [];
var charStyles = app.documents[0].characterStyles.everyItem().name;
//alert(charStyles)
var myNum = 1;
var myCol = 0;
var myChar = "[None]";
for (k = 0; k < myTotalCols; k++)
{
var i = k+1;
colChoices.push(""+i);
}
// Dialog aufrufen
getData()

for (k = 0; k < myTotalRows; k++)
{

//PROBLEM START:::::::
myTable.columns[myCol].cells[k].texts[0].appliedCharacterStyle = (myChar!="[None]")? myChar : app.documents[0].characterStyles[0].name;
//::::::::::PROBLEM ENDE

if(myNum<10)
{
myTable.columns[myCol].cells[k].contents = "0"+ myNum;
}
else
{
myTable.columns[myCol].cells[k].contents = myNum + "";
}
myNum++;
}

function getData()
{

// Dialoge, welche eventuell im Speicher geblieben sind, löschen
try {
app.dialogs.everyItem().destroy();
}
catch (e) {
}

// einen Dialog vorbereiten

var aDialog = app.dialogs.add({name:"Nummerierung in Spalte einsetzen", canCancel:true});
with (aDialog)
{
with (dialogColumns.add())
{
with (borderPanels.add())
{
with (dialogColumns.add())
{
with (dialogRows.add())
{
staticTexts.add({staticLabel:unescape("Bitte Spalte ausw%E4hlen:")});
}
with (dialogRows.add())
{
var colChoose = dropdowns.add({stringList:colChoices,selectedIndex:0,minWidth:50});
}
with (dialogRows.add())
{
staticTexts.add({staticLabel:unescape("Bitte Startnummer ausw%E4hlen:")});
}
with (dialogRows.add())
{
var startNumber = realEditboxes.add({editValue:1});
}
with (dialogRows.add())
{
staticTexts.add({staticLabel:unescape("Bitte Zeichenformat ausw%E4hlen:")});
}
with (dialogRows.add())
{
var charChoose = dropdowns.add({stringList:charStyles,selectedIndex:0,minWidth:180});
}
}
}
}
}
// den Dialog anzeigen und auswerten
if (aDialog.show() == true)
{
myNum = startNumber.editValue;
myCol = Number(colChoices[colChoose.selectedIndex]-1);
myChar = charStyles[charChoose.selectedIndex];

alert("Startnummer: " + myNum + " -- Spalte: " + (colChoices[colChoose.selectedIndex]) + " -- Stil: " + myChar);
}
else
{
alert("Es traten Probleme auf ")
aDialog.destroy();
exit();
}

}


Cursor in Zelle vor Aufruf!!!

Funktioniert auch bis auf: Auswahl von "[None]"...habe englische InDesign CS2 Mac Version...

Jegliche Hilfe ist willkommen.
Danke vorab
Grüße Michael(before-aid)

(Dieser Beitrag wurde von afteraid am 31. Jan 2007, 11:02 geändert)
X

Script: CharacterStyle zuweisen -- Probleme mit ["None"]

Martin Fischer
  
Beiträge gesamt: 12783

31. Jan 2007, 11:11
Beitrag # 2 von 11
Beitrag ID: #273504
Bewertung:
(5413 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Michael,

willkommen!

An dem "[None]" habe ich mich auch schon grün und blau geärgert.
In Deinem Skript kannst Du das aber relativ einfach lösen.
Laß' einfach den ".name" hinter characterStyles[0]" weg:

Code
myTable.columns[myCol].cells[k].texts[0].appliedCharacterStyle = (myChar!="[None]")? myChar : app.documents[0].characterStyles[0]; 


Bei der Zuweisung des Zeichenformats werden normalerweise sowohl ein string als auch ein Zeichenformat als Objekt akzeptiert. "[None]" / "[Keine]" wird nicht als string akzeptiert.

P.S.: Anwender der deutschsprachigen InDesign-Version müssen jeweils "[None]" durch "[Keine]" ersetzen. - "Keine" ist in diesem Zusammenhang auch etwas seltsam gewählt, denn man kann ja einem Text maximal ein Zeichenformat (also unkombiniert) zuweisen. Da würde also der Singular "Kein" die Sache besser treffen.


als Antwort auf: [#273495]
(Dieser Beitrag wurde von Martin Fischer am 31. Jan 2007, 11:21 geändert)

Script: CharacterStyle zuweisen -- Probleme mit ["None"]

afteraid
Beiträge gesamt:

31. Jan 2007, 11:23
Beitrag # 3 von 11
Beitrag ID: #273508
Bewertung:
(5404 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Martin.

So läuft das Script zumindest ohne Fehlermeldung.

Jetzt hab ich nur folgendes Problem:

Wenn ich in erster Spalte Nummern einfüge(CharacterStyle grün)
und dann das Skript das 2. Mal durchlaufen lasse um CharacterStyle auf ["None"] zurück zu setzen wird ["None"] nicht angewendet...
Kannst Du mir sagen wieso?
Gibt es eine Methode um CharacterStyle auf default/None zu setzen bevor ich Inhalte in eine Zelle einfüge?

texts[0].appliedCharacterStyle = undefined / null ???
Danke
Michael


als Antwort auf: [#273504]

Script: CharacterStyle zuweisen -- Probleme mit ["None"]

Martin Fischer
  
Beiträge gesamt: 12783

31. Jan 2007, 11:39
Beitrag # 4 von 11
Beitrag ID: #273514
Bewertung:
(5395 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Michael,

das Zurücksetzen der Formatierung auf "Keine" geht auf zweierlei Wegen:

(1)
Benutze den Skriptbefehl clearOverrides() beim betroffenen Absatz bzw. Text-Objekt (im UI: "Abweichungen löschen" bei den Absatzformaten) oder

(2)
a. Erzeuge ein neues Dummy-Zeichenformat (ohne Eigenschaften);
b. weise dieses Zeichenformat dem Text zu, dessen zugewiesenes Zeichenformat inklusive der Formatierung abgezogen werden soll;
c. lösche das Dummy-Zeichenformat und sage "Formatierung nicht beibehalten".


als Antwort auf: [#273508]
(Dieser Beitrag wurde von Martin Fischer am 31. Jan 2007, 11:44 geändert)

Script: CharacterStyle zuweisen -- Probleme mit ["None"]

afteraid
Beiträge gesamt:

31. Jan 2007, 12:04
Beitrag # 5 von 11
Beitrag ID: #273528
Bewertung:
(5383 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich hinke noch ;) würde aber gerne laufen...
Code
		if(myChar!="[None]") 
{

myTable.columns[myCol].cells[k].texts[0].appliedCharacterStyle = myChar;
}
else
{
myTable.columns[myCol].cells[k].texts[0].clearOverrides();
}
//myTable.columns[myCol].cells[k].texts[0].appliedCharacterStyle = (myChar!="[None]")? myChar : app.documents[0].characterStyles[0];//"none"//unescape("%5BNone%5D")

ist noch nicht die Lösung...
Wo ist mein Fehler?

grün ->none geht nicht...

aber leer -> none geht


als Antwort auf: [#273514]

Script: CharacterStyle zuweisen -- Probleme mit ["None"]

Martin Fischer
  
Beiträge gesamt: 12783

31. Jan 2007, 12:10
Beitrag # 6 von 11
Beitrag ID: #273529
Bewertung:
(5379 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielleicht solltest Du vor "clearOverrides()" tatsächlich das möglicherweise zugewiesene Zeichenformat zunächst durch "[None]" ersetzen ... ;-)

Denn sonst gibt es ja keine "Abweichungen" zu bereinigen.


als Antwort auf: [#273528]

Script: CharacterStyle zuweisen -- Probleme mit ["None"]

Hans Haesler
Beiträge gesamt: 5826

31. Jan 2007, 12:39
Beitrag # 7 von 11
Beitrag ID: #273543
Bewertung:
(5369 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Michael, hallo Martin,

ich habe hier ein Script, welches für jeden Tag der Woche ein Dokument
erzeugt. Zuerst wird ein Template geöffnet, die Textrahmen werden kompletiert,
Absatz- und Zeichenformate werden zugewiesen, das erste Dokument wird
gesichert, bleibt aber offen.

Jetzt werden zuerst im Textrahmen "Datum" die Formate auf "Keine" gesetzt.
Sonst klappt es mit der Formatierung des neuen Datums nicht. Dazu benutze ich ...

Code
curPara.appliedCharacterStyle = "[No character style]"; 
curPara.appliedParagraphStyle = "[No paragraph style]";

... nota bene mit einem französischen InDesign CS2 unter Windows.

Gruss, Hans


als Antwort auf: [#273529]

Script: CharacterStyle zuweisen -- Probleme mit ["None"]

afteraid
Beiträge gesamt:

31. Jan 2007, 13:18
Beitrag # 8 von 11
Beitrag ID: #273559
Bewertung:
(5359 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin / Hans,

da stand wohl jemand etwas länger auf dem Schlauch...
Code
for (k = 0; k < myTotalRows; k++) 
{
myTable.columns[myCol].cells[k].texts[0].appliedCharacterStyle = (myChar!="[None]")? myChar : app.documents[0].characterStyles[0];//"[No character style]" geht -- none oder unescape("%5BNone%5D")nicht
myTable.columns[myCol].cells[k].texts[0].clearOverrides();
if(myNum<10)
{
myTable.columns[myCol].cells[k].contents = "0"+ myNum;
}
else
{
myTable.columns[myCol].cells[k].contents = myNum + "";
}
myNum++;
}

.

Vielen herzlichen Dank für eure tolle Unterstützung.
Werde mich wohl wieder mehr mit JS beschäftigen...
Grüße
Michael


als Antwort auf: [#273543]

Script: CharacterStyle zuweisen -- Probleme mit ["None"]

Martin Fischer
  
Beiträge gesamt: 12783

31. Jan 2007, 13:21
Beitrag # 9 von 11
Beitrag ID: #273562
Bewertung:
(5357 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

die Zuweisung des Zeichenformats über den string "[No character style]" funktioniert international (also auch in den deutsch- und englischsprachigen Versionen von InDesign).

Danke für den Hinweis.
Allerdings wird damit die Formatierung auch nicht zurückgesetzt.

Die Formatierung wird bei "[No character style]" auch nicht zurückgesetzt, wenn ich das Zeichenformat nicht als Eigenschaft zuweise, sondern befehle:
Code
var myStyle = app.activeDocument.characterStyles.item(0); 
app.selection[0].applyStyle(myStyle, true)


Der zweite Parameter, true, sollte dafür sorgen, daß die Abweichungen gelöscht werden.
Das funktioniert bei jedem Zeichenformat, nur nicht bei "[No character style]".
Dieses Zeichenformat selbst erkennt keine Abweichung.

Es ist nicht einmal als [b]app.activeDocument.characterStyles.item("[No character style]") zu fassen. Auch nicht als [b]app.activeDocument.characterStyles.item("[None]").
Hier wird's wieder national:
Code
var myStyle = app.activeDocument.characterStyles.item("[Keine]"); 


Das Nichts ist in jeder Hinsicht etwas Besonderes. ;-)


als Antwort auf: [#273543]
(Dieser Beitrag wurde von Martin Fischer am 31. Jan 2007, 13:31 geändert)

Script: CharacterStyle zuweisen -- Probleme mit ["None"]

Hans Haesler
Beiträge gesamt: 5826

31. Jan 2007, 14:13
Beitrag # 10 von 11
Beitrag ID: #273591
Bewertung:
(5348 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

es kommt auf die Umstände an. Für meine Zwecke reicht es vollkommen,
weil mit den beiden nächsten Zeilen ...

Code
curPara.appliedParagraphStyle = "90_date.RT"; 
curPara.words.item(0).appliedCharacterStyle = "90.1_jour_gauche.RT";

... die Formate zugewiesen werden, welche schon vorher appliziert waren.

In der Schleife wird bei jedem Umgang die Textkette des Datums zusammen-
gefügt und eingesetzt. Aber ohne das Zurücksetzen auf "[Aucun"] wäre das
Ergebnis nicht in Ordnung.

Gruss, Hans


als Antwort auf: [#273562]

Script: CharacterStyle zuweisen -- Probleme mit ["None"]

Martin Fischer
  
Beiträge gesamt: 12783

31. Jan 2007, 14:23
Beitrag # 11 von 11
Beitrag ID: #273596
Bewertung:
(5345 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hans,

Du hast recht.
Siehe auch die Diskussion in http://www.hilfdirselbst.ch/...i?post=273582#273582


als Antwort auf: [#273591]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

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

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

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

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

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

Und es geht doch: Automatisierung im Großformatdruck!