Hallo Uwe,
vielen Dank für den Hinweis.
Vergesst einfach alles was ich vorher gepostet habe. Ich stelle jetzt einfach das Skript (fast) komplett ein. Den Teil mit dem Einklinken in die Menü-Leiste lasse ich weg.
//ID_Zeile_generieren.jsx
//Ein InDesign CS3 JavaScript
var myDocument =app.activeDocument
app.paragraphStyles.item('[Einfacher Absatz]').appliedFont = "Univers";
app.paragraphStyles.item('[Einfacher Absatz]').fontStyle = "45 Light";
//Generieren des Dialogfeldes "ID-Zeile".
var meinDialogfeld = app.dialogs.add({name:"ID-Zeile einfügen", canCancel:true});
with(meinDialogfeld){
//Dialogreihe hinzufügen.
with(dialogColumns.add()){
//Rahmenfeld hinzufügen.
with(borderPanels.add()){
//Dialogfelder mit Beschriftung setzen.
staticTexts.add({staticLabel:"ID:"});
var meinID_Feld = textEditboxes.add({editContents:"", minWidth:80});
staticTexts.add({staticLabel:"Version:"});
var meinVersion_Feld = textEditboxes.add({editContents:"", minWidth:80});
staticTexts.add({staticLabel:"Software:"});
var meinSoftware_Feld = textEditboxes.add({editContents:"", minWidth:80});
staticTexts.add({staticLabel:"Auflage:"});
var meinAuflage_Feld = textEditboxes.add({editContents:"", minWidth:80});
staticTexts.add({staticLabel:"Datum:"});
var meinDatum_Feld = textEditboxes.add({editContents:"", minWidth:80});
}
//Neues Rahmenfeld hinzufügen.
with(borderPanels.add()){
staticTexts.add({staticLabel:"Druckerei:"});
var meinDruckerei_Feld = dropdowns.add({stringList:["F&W", "H", "E", "S"], selectedIndex:0});
}
//Neues Rahmenfeld hinzufügen
with(borderPanels.add()){
staticTexts.add({staticLabel:"Position Barcode:"});
var meineRadioButtonGruppe = radiobuttonGroups.add();
with(meineRadioButtonGruppe){
var Dialog_Barcode_Oben = radiobuttonControls.add({staticLabel:"Barcode über ID-Zeile", checkedState:true});
var Dialog_Barcode_Rechts = radiobuttonControls.add({staticLabel:"Barcode rechtsbündig"});
}
}
}
}
//Anzeigen des Dialogfeldes ID-Zeile.
if(meinDialogfeld.show() == true){
var meinAlterNullpunkt = SpeichernNullpunkt();
var myParagraphAlignment, meinFeld1, meinFeld2, meinFeld3, meinFeld4, meinFeld5, meineDruckerei;
//Auslesen der Werte von den Variablen aus der Dialogbox wenn "Cancel" nicht gedrückt wird.
//Variablen aus den Textfeldern.
if(meinID_Feld.editContents == false){
meinFeld1 = "";
}
else{
meinFeld1 = meinID_Feld.editContents + " · ";
}
if(meinVersion_Feld.editContents == false){
meinFeld2 = "";
}
else{
meinFeld2 = "Ver" + meinVersion_Feld.editContents + " · ";
}
if(meinSoftware_Feld.editContents == false){
meinFeld3 = "";
}
else{
meinFeld3 = "SW" + meinSoftware_Feld.editContents + " · ";
}
if(meinAuflage_Feld.editContents == false){
meinFeld4 = "";
}
else{
meinFeld4 = meinAuflage_Feld.editContents + " · ";
}
if(meinDatum_Feld.editContents == false){
meinFeld5 = "";
}
else{
meinFeld5 = meinDatum_Feld.editContents + " · ";
}
//Werte aus dem Pop-up Menü.
if(meinDruckerei_Feld.selectedIndex == 0){
meineDruckerei = "F&W";
}
else if(meinDruckerei_Feld.selectedIndex == 1){
meineDruckerei = "H";
}
else if(meinDruckerei_Feld.selectedIndex == 2){
meineDruckerei = "E";
}
else{
meineDruckerei = "S";
}
//Werte aus dem Button Feld.
if(meineRadioButtonGruppe.selectedButton == 0){
Barcode_Oben();
IDRahmen_Oben();
HerstellenNullpunkt( meinAlterNullpunkt );
}
else{
Barcode_Rechts();
IDRahmen_Rechts();
HerstellenNullpunkt( meinAlterNullpunkt );
}
meinDialogfeld.destroy();
}
//Textrahmen für ID-Zeile bei Barcode Oben erzeugen.
function IDRahmen_Oben() {
with(myDocument){
var myPage = pages.lastItem();
with(myPage){
var meinIdRahmen = pages.lastItem().textFrames.add();
var myFrameOffset_ID_u = 4; // Unterkante des Textrahmens
var myFrameOffset_ID_o = 7; // Oberkante des Textrahmens
var myPageHeight = app.documents[0].documentPreferences.pageHeight; // SeitenHöhe
var myBounds = [myPageHeight - myFrameOffset_ID_u, 10, myPageHeight - myFrameOffset_ID_o, 100]; // Koordinaten des Textrahmens
with(meinIdRahmen){
//Größe und Position des Textrahmens.
geometricBounds = myBounds;
//Inhalt des Textrahmens aus Variablen und festem Text.
contents = (meinFeld1 + meinFeld2 + meinFeld3 + meinFeld4 + meinFeld5 + meineDruckerei + " · Printed in Germany");
//Absatzformat zuweisen.
Absatz_Light();
parentStory.appliedParagraphStyle = "ID-Zeile";
}
}
}
}
//Textrahmen für Barcode_Oben erzeugen.
function Barcode_Oben() {
with(myDocument) {
var myPage = pages.lastItem();
with(myPage){
var meinFeld1a = meinID_Feld.editContents;
var meinBarcodeRahmen = pages.lastItem().textFrames.add();
var myFrameOffset_Bar_u = 10; // Unterkante des Textrahmens
var myFrameOffset_Bar_o = 15; // Oberkante des Textrahmens
var myPageHeight = app.documents[0].documentPreferences.pageHeight; // SeitenHöhe
var myBounds = [myPageHeight - myFrameOffset_Bar_u, 10, myPageHeight - myFrameOffset_Bar_o, 100]; // Koordinaten des Textrahmens
with(meinBarcodeRahmen){
//Größe und Position des Textrahmens.
geometricBounds = myBounds;
//Inhalt des Textrahmens aus Variablen und festem Text.
contents = ("*I_" + meinFeld1a + "*");
//Absatzformat zuweisen.
Barcode();
parentStory.appliedParagraphStyle = "Barcode";
}
}
}
}
//Textrahmen für ID-Zeile bei Barcode Rechts erzeugen.
function IDRahmen_Rechts() {
with(myDocument){
var myPage = pages.lastItem();
with(myPage){
var meinIdRahmen = pages.lastItem().textFrames.add();
var myFrameOffset_ID_u = 4; // Unterkante des Textrahmens
var myFrameOffset_ID_o = 7; // Oberkante des Textrahmens
var myPageHeight = app.documents[0].documentPreferences.pageHeight; // SeitenHöhe
var myBounds = [myPageHeight - myFrameOffset_ID_u, 7.5, myPageHeight - myFrameOffset_ID_o, 100]; // Koordinaten des Textrahmens
with(meinIdRahmen){
//Größe und Position des Textrahmens.
geometricBounds = myBounds;
//Inhalt des Textrahmens aus Variablen und festem Text.
contents = (meinFeld1 + meinFeld2 + meinFeld3 + meinFeld4 + meinFeld5 + meineDruckerei + " · Printed in Germany");
//Absatzformat zuweisen.
Absatz_Light();
parentStory.appliedParagraphStyle = "ID-Zeile";
}
}
}
}
//Textrahmen für Barcode_Rechts erzeugen.
function Barcode_Rechts() {
with(myDocument) {
var myPage = pages.lastItem();
with(myPage){
var meinFeld1a = meinID_Feld.editContents;
var meinBarcodeRahmen = pages.lastItem().textFrames.add();
var myFrameOffset_Bar_u = 4.5; // Unterkante des Textrahmens
var myFrameOffset_Bar_o = 9.5; // Oberkante des Textrahmens
var myPageHeight = app.documents[0].documentPreferences.pageHeight; // SeitenHöhe
var myBounds = [myPageHeight - myFrameOffset_Bar_u, 144.5, myPageHeight - myFrameOffset_Bar_o, 205]; // Koordinaten des Textrahmens
with(meinBarcodeRahmen){
//Größe und Position des Textrahmens.
geometricBounds = myBounds;
//Inhalt des Textrahmens aus Variablen und festem Text.
contents = ("*I_" + meinFeld1a + "*");
//Absatzformat zuweisen.
Barcode();
parentStory.appliedParagraphStyle = "Barcode";
}
}
}
}
//Absatzformat "7 Punkt Light" generieren, wenn noch dieses Format noch nicht besteht.
function Absatz_Light(){
var myName, myParagraphStyle
//Abfagen ob das Format bereits existiert.
try{
myParagraphStyle = myDocument.paragraphStyles.item("ID-Zeile");
//Aufruf des nicht vorhandenen Formats liefert einen Fehler.
myName = myParagraphStyle.name;
}
catch (myError){
//Das Formt existiert noch nicht. Neu erstellen.
myParagraphStyle = myDocument.paragraphStyles.add({name:"ID-Zeile"});
//Dem Format Werte zuweisen.
with (myParagraphStyle){
appliedFont = "Univers";
//appliedFont = app.fonts.item("Univers");
fontStyle = "45 Light";
pointSize = 7
}
}
}
//Absatzformat "Barcode" generieren, wenn noch dieses Format noch nicht besteht.
function Barcode(){
var myName, meinBarcode
//Abfagen ob das Format bereits existiert.
try{
meinBarcode = myDocument.paragraphStyles.item("Barcode");
//Aufruf des nicht vorhandenen Formats liefert einen Fehler.
myName = meinBarcode.name;
}
catch (myError){
//Das Formt existiert noch nicht. Neu erstellen.
meinBarcode = myDocument.paragraphStyles.add({name:"Barcode"});
//Dem Format Werte zuweisen.
with (meinBarcode){
appliedFont = "Code-39-Logitogo";
fontStyle = "Regular";
pointSize = 12
}
}
}
var myPageWidth = myDocument.documentPreferences.pageWidth;
var myPageHeight = myDocument.documentPreferences.pageHeight;
//Nullpunkt setzen und wiederherstellen.
function SpeichernNullpunkt() {
with ( app.activeDocument ) {
var myHorizontalMeasurementUnits = viewPreferences.horizontalMeasurementUnits;
var myVerticalMeasurementUnits = viewPreferences.verticalMeasurementUnits;
var myRulerOrigin = viewPreferences.rulerOrigin;
var myZeroPoint = zeroPoint;
viewPreferences.horizontalMeasurementUnits = MeasurementUnits.MILLIMETERS;
viewPreferences.verticalMeasurementUnits = MeasurementUnits.MILLIMETERS;
viewPreferences.rulerOrigin = RulerOrigin.pageOrigin;
zeroPoint = [0,0];
}
return { h:myHorizontalMeasurementUnits, v:myVerticalMeasurementUnits, r:myRulerOrigin, z:myZeroPoint }
}
function HerstellenNullpunkt ( p ) {
with ( app.activeDocument ) {
viewPreferences.horizontalMeasurementUnits = p.h;
viewPreferences.verticalMeasurementUnits = p.v;
viewPreferences.rulerOrigin = p.r;
zeroPoint = p.z;
}
}
Bitte nicht gleich steinigen wenn der Code vielleicht etwas umständlich oder nicht ganz sauber ist. Es ist mein erstes Skript und mangels Erfahrung darin sind einzelne Teile aus den ID-Beispielen herauskopiert.
Aber nochmal mein Problem: Wenn ich in eines der Textfelder den Wert "00" eingebe, dann wird die Eingabe so interpretiert, als ob ich gar nichts eingegeben hätte.
Ich hoffe, dass jemand weiß, was ich wo ändern muss, damit eine Eingabe in diesen Feldern (egal welcher Art) auch in meinem Textrahmen erscheint.
Da mein Tag heute um 15.00 endet, habe ich heute nicht mehr die Möglichkeit eventuelle Kommentare zu beantworten. Ich bin erst morgen wieder hier vertreten.
Auf jeden Fall wünsche ich allen noch einen schönen Tag.
Vielen Dank nocheinmal und viele Grüße
Manfred