[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Dialogeingabe - Größe Textrahmen

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

Dialogeingabe - Größe Textrahmen

MarioF
Beiträge gesamt: 390

12. Mai 2019, 23:23
Beitrag # 1 von 3
Bewertung:
(18036 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ich beschäftige mich mal wieder mit dem Thema Scripten und bastele an einem Lernstück.
Dazu habe ich eine Dialogbox erstellt, über die man einen Textrahmen anlegen kann. Dabei kann die Größe des TR eingetragen werden. Der Textrahmen wird dann erstellt:
Code
//Maßeinheit Linial auf mm setzen 
_dok.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.millimeters;
_dok.viewPreferences.verticalMeasurementUnits = MeasurementUnits.millimeters;

//Textrahmen erstellen
// Koordinaten + Angaben zu Höhe und Breite
var _tfPos = [10, 10]; // y1, x1 oben links
var _tfHoehe = _tfH.text;
var _tfBreite = _tfB.text;

// aktive Seite
var _tfPage = app.layoutWindows[0].activePage;

// Textrahmen auf der aktiven Seite erstellen
var _tfN = _tfPage.textFrames.add();

// Textrahmen Position, Breite und Höhe zuweisen
_tfN.geometricBounds = [_tfPos[0], _tfPos[1], _tfPos[0] + _tfHoehe, _tfPos[1] + _tfBreite];
_tfN.name = "_tf1"
_tfN.contents = "Breite: " + _tfB.text +"\rHöhe: " + _tfH.text + "\r" + _tfT.text;


Gebe ich bei Breite und Höhe 1 ein, hat der TR eine Größe von 91mm, bei 2 eine Größe von 92mm und bei 10 eine Größe von 1000 mm.

Wieso rechnet er die Werte so um?

Hier das gesamte Script:
Code
var _tf = new Window("dialog"); 
_tf.text = "Neuer Textrahmen";
_tf.preferredSize.width = 400;
_tf.preferredSize.height = 300;
_tf.orientation = "column";
_tf.alignChildren = ["center", "top"];
_tf.spacing = 10;
_tf.margins = 16;

// PANEL1
// ======
var panel1 = _tf.add("panel");
panel1.text = "Textrahmengröße";
panel1.orientation = "column";
panel1.alignChildren = ["left", "top"];
panel1.spacing = 10;
panel1.margins = 10;
panel1.alignment = ["left", "top"];

var statictext1 = panel1.add("group");
statictext1.orientation = "column";
statictext1.alignChildren = ["left", "center"];
statictext1.spacing = 0;
statictext1.alignment = ["left", "top"];

statictext1.add("statictext", undefined, "");
statictext1.add("statictext", undefined, "Breite mm");

var _tfB = panel1.add("edittext");
_tfB.preferredSize.width = 100;
_tfB.alignment = ["left", "top"];

var statictext2 = panel1.add("group");
statictext2.orientation = "column";
statictext2.alignChildren = ["right", "center"];
statictext2.spacing = 0;

statictext2.add("statictext", undefined, "");
statictext2.add("statictext", undefined, "Höhe mm");

var _tfH = panel1.add("edittext");
_tfH.preferredSize.width = 100;
_tfH.alignment = ["left", "top"];

// PANEL2
// ======
var panel2 = _tf.add("panel");
panel2.text = "Text";
panel2.orientation = "column";
panel2.alignChildren = ["left", "top"];
panel2.spacing = 10;
panel2.margins = 10;
panel2.alignment = ["left", "top"];

var _tfCheck = panel2.add("checkbox");
_tfCheck.value = true;
_tfCheck.text = "Text platzieren";

var _tfT = panel2.add("edittext", [0, 0, 400, 80], undefined, { multiline: true });
_tfT.text = "EditText";

// _TF
// ===
var button1 = _tf.add("button");
button1.text = "OK";
button1.preferredSize.width = 200;
button1.justify = "center";

_tf.show();

var _dok = app.activeDocument;

//Maßeinheit Linial auf mm setzen
_dok.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.millimeters;
_dok.viewPreferences.verticalMeasurementUnits = MeasurementUnits.millimeters;

//Textrahmen erstellen
// Koordinaten + Angaben zu Höhe und Breite
var _tfPos = [10, 10]; // y1, x1 oben links
var _tfHoehe = _tfH.text;
var _tfBreite = _tfB.text;

// aktive Seite
var _tfPage = app.layoutWindows[0].activePage;

// Textrahmen auf der aktiven Seite erstellen
var _tfN = _tfPage.textFrames.add();

// Textrahmen Position, Breite und Höhe zuweisen
_tfN.geometricBounds = [_tfPos[0], _tfPos[1], _tfPos[0] + _tfHoehe, _tfPos[1] + _tfBreite];
_tfN.name = "_tf1"
_tfN.contents = "Breite: " + _tfB.text +"\rHöhe: " + _tfH.text + "\r" + _tfT.text;

X

Dialogeingabe - Größe Textrahmen

Hans Haesler
  
Beiträge gesamt: 5826

13. Mai 2019, 08:54
Beitrag # 2 von 3
Beitrag ID: #570134
Bewertung:
(17393 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mario,

die Werte, welche der Dialog zurückgibt, sind Strings. Diese werden nicht zur Zahl 10 addiert, sondern mit dieser zu einer neuen Textkette zusammengesetzt.

Diese kurze Demo ...
Code
alert (10 + "1"); 

... zeigt "101" an.

*****
Abhilfe: Die erhaltenen Strings durch Multiplizieren mit 1 in Zahlen verwandeln:

Code
var _tfHoehe  = _tfH.text*1; 
var _tfBreite = _tfB.text*1;

In den Zeilen 80 und 81.

*****
Eine korrektere Alternative wäre das Einsetzen der Number-Methode:

Code
var _tfHoehe  = Number(_tfH.text); 
var _tfBreite = Number(_tfB.text);

Siehe https://www.w3schools.com/...s_number_methods.asp
Hinunterscrollen bis Global JavaScript Methods, unter welchen auch parseInt() und parseFloat() demonstriert werden.

Gruss, Hans


als Antwort auf: [#570132]
(Dieser Beitrag wurde von Hans Haesler am 13. Mai 2019, 09:10 geändert)

Dialogeingabe - Größe Textrahmen

MarioF
Beiträge gesamt: 390

13. Mai 2019, 10:32
Beitrag # 3 von 3
Beitrag ID: #570135
Bewertung:
(17245 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
vielen Dank für Deine Erklärung. Wieder etwas Licht im Dunkeln.


als Antwort auf: [#570134]

Aktuell

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!