[GastForen Programme Print/Bildbearbeitung Adobe InDesign Grafiken als Auflistungspunkte | Tabellenkopf per Skript definieren

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

Grafiken als Auflistungspunkte | Tabellenkopf per Skript definieren

Schlafwaddler
Beiträge gesamt: 3

16. Feb 2007, 12:51
Beitrag # 1 von 8
Bewertung:
(4181 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo an Alle!

Ich bin gerade dabei in Indesign CS2 eine umfangreiche Dokumentation zu erstellen, in der es immer wieder Listen gibt, bei denen eine kleine Graphik (Warndreieck und einen Schraubenschlüssel) anstatt des klassischen "Bullets" vorangestellt ist.
In Word gibt es die Option anstatt des Bullets eine Grafik zu verwenden. Leider finde ich diese Option in Indesign CS2 nicht. Oder gibt es da einen Trick?
Ich habe jetzt mal angefangen die Grafiken per vordefiniertes verankertes Objekt (Objektstil) und den dazugehörigen Text mit einer Absatzformatvorlage zu versehen, aber das ist schon ziemlich viel Arbeit, da sich diese Auflistungen immer wieder wiederholen.
Hat jemand eine Idee, wie das leichter zu bewerkstelligen wäre?

Eine zweite Frage: Ich habe hier im Forum schon umfangreiche Skripte zur Formatierung von Tabellen gefunden (vielen Dank an Martin Fischer). Ich konnte dann auch in der Scripting Reference von Adobe einige Befehle finden um weitere Elemente einer Tabelle zu formatieren (z.B. minimumHeight). Leider konnte ich aber den Befehl für die Definition eines Tabellenkopfes (erste Zeile auf jeder Seite ist gleich) nicht finden. Da gibt es zwar den Befehl "breakHeaders", leider weiß ich aber nicht wie ich diesen Befehl in den Code von Martin Fischers Tabellenformatierungsskript einbinden soll. Kann mir jemand vielleicht die korrekte Syntax beschreiben?

Schon im Voraus vielen Dank, ich bin gerade dabei mich in Indesign einzuarbeiten und freue mich über jede Hilfe!

VB
X

Grafiken als Auflistungspunkte | Tabellenkopf per Skript definieren

Martin Fischer
  
Beiträge gesamt: 12691

16. Feb 2007, 12:57
Beitrag # 2 von 8
Beitrag ID: #276830
Bewertung:
(4175 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Leider konnte ich aber den Befehl für die Definition eines Tabellenkopfes
> (erste Zeile auf jeder Seite ist gleich) nicht finden.

Ändere mal den Wert von "headerRowCount" der Tabelle von 0 auf 1 (oder mehr).


als Antwort auf: [#276825]

Grafiken als Auflistungspunkte | Tabellenkopf per Skript definieren

kurtnau
Beiträge gesamt: 2170

16. Feb 2007, 12:58
Beitrag # 3 von 8
Beitrag ID: #276831
Bewertung:
(4175 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo vb,

hast du die möglichkeit dir mit deiner grafik einen schriftfont zu erstellen?

es gibt dafür auch einfach freeware-programme. dann kann man im absatzformat unter aufzählungszeichen die grafik voreinstellen.

gruß kurt


als Antwort auf: [#276825]

Grafiken als Auflistungspunkte | Tabellenkopf per Skript definieren

Schlafwaddler
Beiträge gesamt: 3

16. Feb 2007, 13:35
Beitrag # 4 von 8
Beitrag ID: #276846
Bewertung:
(4161 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hey,

vielen Dank für die schnellen Antworten...
Ehrlich gesagt, weiß ich nicht so recht wie/wo ich das "headerRowCount" anwenden könnte. Das gibt mir doch die Anzahl der Tabellenköpfe aus, oder? Mit "myTable.breakHeaders=1332760673" , "alert" und "headerRowCount" bekomme ich den Wert 0 ausgegeben.

Ich poste mal dein (-> Martin Fischer) von mir modifiziertes Skript im Anhang. Ach ja, nochetwas, wenn ich eine ganze Tabelle auswähle und dann das Skript laufen lasse, bekomme ich die Meldung mit "Bitte Cursor in Zelle platzieren oder mindestens eine Zelle wählen" aus dem Skript. Das ist zwar nicht schlimm, aber vielleicht mache ich ja was falsch, wie könnte man das ändern?

Jetzt noch zu den Bullets: An eine "Schriftlösung" habe ich auch schon gedacht. Kannst du mir vielleicht so ein Freewareprogramm nennen, mit dem soetwas relativ unkompliziert zu bewerkstelligen wäre?

Vielen Dank nochmal...

Hier der Code:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

var myDoc = app.documents[0];
var Tabellenstil="Standardtext_Tabelle"; // Zeichenformatname
var Tabellen_header="Geometric_Md";
var mySpaceBefore = 2.5; // Abstand oben (Versatz)
var mySpaceAfter = 2.5; // Abstand unten (Versatz)

var Linie_rechts = 0; // Konturstärke für rechts
var Linie_links = 0; // Konturstärke für rechts

var Linie_unten = 1; // Konturstärke für unten /Linien in Tabelle

var Linie_innen = 1; // Konturstärke für innen


var Linie_ganz_oben = 0; // Konturstärke für oberste Tabellenlinie
var Linie_zweite_linie_oben = 1; // Konturstärke für zweite Linie von oben
var Linie_ganz_unten = 0; // Konturstärke für ganz unten

var Zellen_hoehe = 5; //minimum Zellenhoehe

var myStrokeColorName = "Tabellenrahmen"; // Farbe Linie unten


/*
// Zeichenformat vorhanden
try{
myStyle=myDoc.characterStyles.item(myStyleName);
myStyle.name;
}
catch (myError){
myStyle = myDoc.characterStyles.add({name:myStyleName, fontStyle:"bold"});
}
*/
// var myStyle="Geometric_Md_kursiv_unterstrichen";

// Farbe vorhanden?
try{
myStrokeColor=myDoc.swatches.item(myStrokeColorName);
myStrokeColor.name;
}
catch (myError){
myStrokeColor = myDoc.colors.add({name:myStrokeColorName,space:ColorSpace.rgb, colorValue:Array(250,0,0)});
}

// Irgendwas markiert?
if (app.selection.length > 0){
// Zelle markiert?
if (app.selection[0].constructor.name=="Cell"){
var myFirstCell = app.selection[0].cells[0];
var myLastCell = app.selection[0].cells[-1];
}

// Cursor in Zelle platziert?
else if (app.selection[0].parent.constructor.name=="Cell"){
var myFirstCell = app.selection[0].parent.cells[0];
var myLastCell = myFirstCell;
}
else {
alert("Bitte Cursor in Zelle platzieren oder mindestens eine Zelle wählen");
}

// myFirstCell ist definiert (Zelle markiert oder Cursor in Zelle platziert)
if (myFirstCell){
var myTable = myFirstCell.parent;
// table parent bug - workaround
if (myTable.constructor.name == "Cell") {
var myTable = myTable.parent;
}
// Feststellen der ersten und der letzten markierten Zeile für Schleife
var myFirstRow = myFirstCell.name.split(":")[1];
var myLastRow = myLastCell.name.split(":")[1];


// Zuordnung der Reiheneigenschaften
for (myCounter=myLastRow; myCounter >= myFirstRow ; myCounter--){


myTable.rows[myCounter].bottomEdgeStrokeColor=myStrokeColor; // Konturfarbe unten
myTable.rows[myCounter].leftEdgeStrokeColor=myStrokeColor;
myTable.rows[myCounter].rightEdgeStrokeColor=myStrokeColor;
myTable.rows[myCounter].innerColumnStrokeColor=myStrokeColor;
myTable.rows[myCounter].innerRowStrokeColor=myStrokeColor;
myTable.rows[myCounter].topEdgeStrokeColor=myStrokeColor;

myTable.rows[myCounter].bottomEdgeStrokeWeight=Linie_unten; // Konturstärke unten

myTable.rows[myCounter].leftEdgeStrokeWeight=Linie_links; // Konturstärke links außen
myTable.rows[myCounter].rightEdgeStrokeWeight=Linie_rechts; // Konturstärke rechts außen

myTable.rows[myCounter].innerColumnStrokeWeight=Linie_innen; // Konturstärke innen

myTable.rows[myCounter].innerRowStrokeWeight="25";

myTable.rows[myCounter].topInset=mySpaceBefore; // Versatz oben
myTable.rows[myCounter].bottomInset=mySpaceAfter; // Versatz unten
myTable.rows[myCounter].minimumHeight=Zellen_hoehe // Zellenhoehe
}

myTable.rows[myFirstRow].topEdgeStrokeWeight=Linie_ganz_oben; // Konturstärke ganz oben myFirstRow
myTable.rows[myFirstRow].bottomEdgeStrokeWeight=Linie_zweite_linie_oben; // Konturstärke zweite Linie von oben
myTable.rows[myLastRow].bottomEdgeStrokeWeight=Linie_ganz_unten; // Konturstärke unten

myTable.bottomBorderStrokeWeight="0";

myTable.breakHeaders=1332760673;

for (myCounter = 0; myCounter < myTable.cells.length; myCounter++){
myTable.cells[myCounter].texts[0].appliedParagraphStyle=app.documents[0].paragraphStyles.item(Tabellenstil);
}


alert(myTable.headerRowCount);

//for (myCounter = 0; myCounter < myTable.cells.length; myCounter++){
//myTable.rows[0].appliedCharacterStyle=app.documents[0].characterStyles.item(Tabellen_header);
//}


// Zuordnung Zeichenformt
// app.selection[0].texts[0].appliedCharacterStyle=myStyle;
// app.selection[0].texts[0].appliedParagraphStyle=myStyle;
}
}

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


als Antwort auf: [#276831]

Grafiken als Auflistungspunkte | Tabellenkopf per Skript definieren

kurtnau
Beiträge gesamt: 2170

16. Feb 2007, 13:43
Beitrag # 5 von 8
Beitrag ID: #276850
Bewertung:
(4156 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo,

schau doch mal im typo forum vorbei. dort ist demletzt mal über solche programme geschrieben worden.

gruß kurt


als Antwort auf: [#276846]

Grafiken als Auflistungspunkte | Tabellenkopf per Skript definieren

Martin Fischer
  
Beiträge gesamt: 12691

16. Feb 2007, 14:32
Beitrag # 6 von 8
Beitrag ID: #276868
Bewertung:
(4143 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Oben hatte ich Dich darauf hingewiesen, daß headerRowCount eine Eigenschaft der Tabelle ist.
Die Tabelle hast Du richtig als myTable erkannt.
Also ist dem headerRowCount ein anderer Wert folgendermaßen zuzuweisen:
Code
myTable.headerRowCount=1; 


Ersetze die Zeile

alert(myTable.headerRowCount);

durch

myTable.headerRowCount=1;


> Mit "myTable.breakHeaders=1332760673"

Wirf mal einen Blick in die Skripting Reference, dann löst sich die komische Zahl ganz schnell in eine vernünftige Information auf.


als Antwort auf: [#276846]
(Dieser Beitrag wurde von Martin Fischer am 16. Feb 2007, 14:39 geändert)

Grafiken als Auflistungspunkte | Tabellenkopf per Skript definieren

Schlafwaddler
Beiträge gesamt: 3

16. Feb 2007, 15:27
Beitrag # 7 von 8
Beitrag ID: #276878
Bewertung:
(4129 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Entschuldige, dass ich mich etwas ungeschickt anstelle. Ich kenne mich eigentlich ein wenig mit Javascript aus und auch PHP, muß mich aber erst in die Terminologie von Indesign-Javascript einarbeiten.

Jetzt hats funktioniert! Ich muss jetzt nur noch herausbekommen, wie ich die Linie unter dem Tabellenkopf fetter bekomme, aber das schaff ich schon alleine.

Vielen Dank!

Hat vielleicht jemand noch einen Tipp, wie ich eine Grafik als Auflistungssymbol verwenden kann?
Wahrscheinlich ist die Schriftartvariante das Schlaueste...
Ich habe gerade bei dafont.com geschaut und auch was geeinetes für mein Warnsymbol gefunden, dass habe ich jetzt mit einem verschachtelten Format eingebunden. Bei einer reinen Aufzählung kann man leider nicht den Versatz einstellen (das Symbol sollte tiefer als die Textgrundlinie sein).

Ich bräuchte jetzt noch ein Tool mit dem ich meine andere Grafik in eine Schriftart einbinden kann. Gibts da ne Freeware?

Vielen Dank!

VB


als Antwort auf: [#276868]
(Dieser Beitrag wurde von Schlafwaddler am 16. Feb 2007, 15:28 geändert)

Grafiken als Auflistungspunkte | Tabellenkopf per Skript definieren

zaphodbeeblebroxx
Beiträge gesamt: 408

16. Feb 2007, 19:07
Beitrag # 8 von 8
Beitrag ID: #276922
Bewertung:
(4100 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Hallo vb,

Listen mit vorangestellter Grafik kann man auch per JavaSkript erzeugen, indem man nach dem Absatzformat der Aufzählung/Listen sucht und dann mit einer Schleife in allen gefundenen Absätzen an der Stelle 1. Stelle des Absatzes die Grafik-Datei positioniert.

Hier ein paar Denkansätze (kein komplettes Skript!)
Code
app.findPreferences = app.changePreferences = null;  
app.findPreferences.appliedParagraphStyle = myParaStyle;
var myFound = myDoc.search("");
for(oneItem = myFound.length-1; oneItem > 0; oneItem--){
myFoundParas = myFound[oneItem].paragraphs;
for(onePara = myFoundParas.length-1; onePara >= 0; onePara--){
myFoundParas[onePara].insertionPoints[0].place(File(myLogoFile));
}
}


var myParaStyle: Name des Listen-Absatzformates
var myLogoFile: Pfad zum Logo;
MAC: var myLogoFile = '"~/Desktop/logo.eps"; // Pfad zum Logo auf MAC_Desktop
PC: var myLogoFile = "/c/logo.eps"; // Pfad zum Logo unter WIN auf Desktop

Wenn für die eingefügte Grafik noch ein Objektstil definiert ist, so könnte man diesen ebenfalls gleich per Skript zuweisen.

Falls bei den Listen schon ein Bullet-Zeichen aus Word importiert wurde gestaltet sich die Suche noch einfacher, denn dann kann man direkt nach dem speziellen Zeichen suchen und das gefundene Zeichen durch dein Grafik-Logo mit dem place()-Befehl ersetzen. Man benötigt dann keine Schleife durch die einzelnen Absätze, da das gefundene Zeichen ja ohnehin schon an der ersten Stelle des Absatzes steht!

zaphodbeeblebroxx


als Antwort auf: [#276878]
(Dieser Beitrag wurde von zaphodbeeblebroxx am 16. Feb 2007, 19:17 geändert)
X