Quantcast
Channel: Adobe InDesign Skriptwerkstatt - HilfDirSelbst.ch
Viewing all 8741 articles
Browse latest View live

Script Dokumente vereinen

$
0
0
Hallo Werner,

besten Dank für Deinen Beitrag.

Ja, es ist sehr praktisch, dass die Pfade der Objekte automatisch in Strings verwandelt werden.

Gruss, Hans ... Adobe InDesign Skriptwerkstatt 8. Mai 2019, 13:09 (Hans Haesler)

Zeile aus Fließtext in nachfolgende Tabelle an Pos.1 einfügen

$
0
0
Hallo Martin,

ich könnte Dir eine IDML-Datei per E-Mail zukommen lassen um das eigentliche ID mal in Augenschein zu nehmen.

Grundsätzlich sind alle Tabellen im gleichen Stil. Unterschiede gibt es nur in der Zeilen- und Spaltenanzahl sowie das nicht alle Tabellen Fussnoten haben.

Die weitere Arbeit die wir dann noch haben, ist dass wir die Tabelle aus dem Textfluss nehmen und dies in eine Textbox einfügen. Danach wird ein Objektstil noch zugewiesen. Das wäre jedoch nicht Bestandteil des Scripts.

Mit welchen zeitlichen Aufkommen und dem daraus resultierenden Kosten müsste man rechnen?

Gruß
Uli
... Adobe InDesign Skriptwerkstatt 8. Mai 2019, 13:11 (Uli75)

Script Dokumente vereinen

$
0
0
Hallo Hans,

Zitat Ja, es ist sehr praktisch, dass die Pfade der Objekte automatisch in Strings verwandelt werden.


Na ja, dass war eigentlich nicht das, was ich rüberbringen wollte.

Kern der Aussage sollte sein, dass das Sortieren der File-Objekte nur deshalb funktionierte.

Besser funktioniert es mit meiner obigen Routine, z. B.:

files.sortThis("name") -> nach Namen
files.sortThis("created") -> nach Erstellungsdatum
files.sortThis("modified") -> Änderungsdatum
files.sortThis("length") -> Größe

usw.

Funktioniert mit jedem Array, das Objekte enthält.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING ... Adobe InDesign Skriptwerkstatt 8. Mai 2019, 14:24 (WernerPerplies)

Script Dokumente vereinen

$
0
0
Hallo Werner,

okay ...

Aber für die vorliegende Aufgabe werden nur die Dateinamen berücksichtigt. Also genügt das einfache 'sort()'.

Es sei denn, die Namen beginnen mit Ordnungszahlen, bei welchen unterlassen wurde, führende Nullen einzufügen. Doch bisher hat noch niemand dieses Problem gemeldet.

Gruss, Hans ... Adobe InDesign Skriptwerkstatt 8. Mai 2019, 14:58 (Hans Haesler)

Zeile aus Fließtext in nachfolgende Tabelle an Pos.1 einfügen

$
0
0
Hallo Uli,

Kontaktdaten und Aufwandsschätzung habe ich Dir per PM (Profil) zukommen lassen.

Viele Grüße
Martin


... Adobe InDesign Skriptwerkstatt 8. Mai 2019, 16:39 (Martin Fischer)

Script Dokumente vereinen

$
0
0
Danke für die schnelle Antwort Martin!
Dann werde ich mal schauen, ob ich Hans Haesler irgendwie kontaktieren kann...
... Adobe InDesign Skriptwerkstatt 7. Mai 2019, 16:13 (Sobi)

indexOf mit Unicode (Win10, CC2019)

$
0
0
Guten Abend,

ich versuche gerade hiermit ein Sonderzeichen zu erkennen:

Code
alert(test.indexOf('\u0x7')); 


In der Variable "test" befindet sich eine Zeichenkette, die das Zeichen "Einzug bis hierhin" enthält. Der alert wirft aber -1 aus.

Ein normales Satzzeichen wird korrekt gemeldet:
Code
alert(test.indexOf('.')); 


Mit der Bitte um Hilfe.

Gruß
Christoph
... Adobe InDesign Skriptwerkstatt 12. Mai 2019, 21:23 (cwenet)

indexOf mit Unicode (Win10, CC2019)

$
0
0
Hallo Christoph,

versuch mal

Code
test.indexOf("\x07") 



Schöne Grüße
Roland
... Adobe InDesign Skriptwerkstatt 12. Mai 2019, 22:29 (drerol74)

indexOf mit Unicode (Win10, CC2019)

$
0
0
Hallo Christoph,

okay, im Info-Fenster wird 0x7 angezeigt.

Wenn Du \u einsetzen möchtest: Nur das (oder die) Zeichen nach dem "x" nehmen
und davor mit Nullen auffüllen, bis der Wert vierstellig ist.

So sollte es funktionieren:

Code
alert(test.indexOf("\u0007")); 

Gruss, Hans ... Adobe InDesign Skriptwerkstatt 12. Mai 2019, 22:41 (Hans Haesler)

Dialogeingabe - Größe Textrahmen

$
0
0
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;

---
Viele Grüße
Mario ... Adobe InDesign Skriptwerkstatt 12. Mai 2019, 23:23 (MarioF)

indexOf mit Unicode (Win10, CC2019)

$
0
0
Guten Morgen Roland und Hans,

beides hat prima funktioniert, Dankeschön.

Einen schönen Tag und Wochenstart
Christoph
... Adobe InDesign Skriptwerkstatt 13. Mai 2019, 06:50 (cwenet)

Dialogeingabe - Größe Textrahmen

$
0
0
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 ... Adobe InDesign Skriptwerkstatt 13. Mai 2019, 08:54 (Hans Haesler)

Dialogeingabe - Größe Textrahmen

$
0
0
Hallo Hans,
vielen Dank für Deine Erklärung. Wieder etwas Licht im Dunkeln.
---
Viele Grüße
Mario ... Adobe InDesign Skriptwerkstatt 13. Mai 2019, 10:32 (MarioF)

Dokumentabmessungen in PDF

$
0
0
Guten Tag,

ich bin im Forum nicht fündig geworden und hoffe nichts übersehen zu haben.

Mene Frage: weiß jemand, ob es möglich ist, in unten stehendem Script Code zu integrieren, mit dem automatisch das Format der ersten Seite (also beispielhaft 210x297 [in mm] am Ende des Dateinamens integriert werden kann?

Kenne mich leider nicht gut genug aus. Schon jetzt: Vielen herzlichen Dank!

Mesco

___________

d = app.activeDocument;
preset1 = app.pdfExportPresets.itemByName("01WEF-PRINT_Fogra_V2+Marken+Beschnitt_X4_DB");
if (!(preset1.isValid)){
alert("One of the presets does not exist. Please check spelling carefully.");
exit();
}

mDocName = d.name.substr (0, d.name.lastIndexOf('.'));
mSourcePath = d.fullName.parent.toString();
mRootPath =mSourcePath.substr (0, mSourcePath.lastIndexOf('/'));
mTargetPath=mRootPath.concat('/RZ/../../PDF/Print/');

mNamePrint = mTargetPath.concat(mDocName,'_PRINT.pdf');

if (!d.saved){
d.save;
}

d.exportFile(ExportFormat.PDF_TYPE, new File(mNamePrint), false, preset1);

app.menuActions.itemByID(-16776832).invoke() // aktiviert sichern


___________
... Adobe InDesign Skriptwerkstatt 15. Mai 2019, 12:51 (Mesco)

Dokumentabmessungen in PDF

$
0
0
(Der Vollständigkeit halber und damit die eigentlichen Urheber nicht zu kurz kommen: den besprochenen Script habe ich dieser Seite entnommen: https://forums.adobe.com/thread/2524775 und um wenige Zeilen modizifiert)
... Adobe InDesign Skriptwerkstatt 15. Mai 2019, 14:34 (Mesco)

Dokumentabmessungen in PDF

$
0
0
Guten Tag Mesco,

herzlich willkommen in der Skriptwerkstatt auf HDS! :-)

Zunächst: Die Skriptwerkstatt ist eigentlich für Leute bestimmt, welche sich aktiv mit Script-Entwicklung befassen.

Doch bei einer freundlich gestellten Anfrage, deren Lösung nicht viel Aufwand erfordert, kann man schon mal eine Ausnahme machen ...

*****
Wenn ich die Aufgabe richtig verstanden habe, soll das Script so ergänzt werden, dass die Abmessungen der ersten InDesign-Seite in den Namen der zukünftigen PDF-Datei eingesetzt werden.

Code
d = app.activeDocument; 

preset1 = app.pdfExportPresets.itemByName("01WEF-PRINT_Fogra_V2+Marken+Beschnitt_X4_DB");
if (!(preset1.isValid)){
alert("One of the presets does not exist. Please check spelling carefully.");
exit();
}

mDocName = d.name.substr(0, d.name.lastIndexOf("."));
// die Abmessungen der ersten Seite speichern
b = d.pages[0].bounds;
// die Werte drei und zwei des Arrays runden und 'w' und 'h' zuweisen
w = Math.round(b[3]);
h = Math.round(b[2]);
// zusammensetzen, ergänzt mit Underscore und "x"
docSize = "_"+w+"x"+h;

mSourcePath = d.fullName.parent.toString();
mRootPath = mSourcePath.substr(0, mSourcePath.lastIndexOf("/"));
mTargetPath = mRootPath.concat("/RZ/../../PDF/Print/");
// 'docSize' in den PDF-Namen einfügen
mNamePrint = mTargetPath.concat(mDocName,docSize,"_PRINT.pdf");

if (!d.saved){
d.save;
}

d.exportFile(ExportFormat.PDF_TYPE, new File(mNamePrint), false, preset1);

app.menuActions.itemByID(-16776832).invoke() // aktiviert sichern

Damit wird der PDF-Name so aussehen: "Dokumentname_210x297_PRINT.pdf"

Ist das so richtig? Oder sollen die Werte vor der Endung eingefügt werden?

Gruss, Hans ... Adobe InDesign Skriptwerkstatt 17. Mai 2019, 09:51 (Hans Haesler)

Dokumentabmessungen in PDF

$
0
0
Hallo Hans – sorry, dass ich hier eine Frage gestellt habe, die woanders hingehört hat – und ganz besonderen Dank aber für die Antwort! Ja, genauso war das gedacht – es beeindruckt mich jedes Mal aufs Neue, dass und wenn jemand die Logik raushat vom Skripting! Hut ab! Ich bin begeistert.

Ich schließe zwei (+1) Frage an, ok? :-)

1. Wohin hätte meine Frage eigentlich hingehört?
2. Wo gibt es gute Einsteiger-Tutorials? Momentan versuche ich es sowohl mit "Indesign Automatisieren" (Fellenz) als auch mit einem Lynda-Tutorial von Gerald Singelmann. Gut Ding will Weile haben - ich bin kein Programmierer und komme eher aus der Vorstufe.
(3.) Lässt sich auch die Gesamtseitenanzahl des Dokuments vor dem Format integrieren? (Also z.B. 4x210x297)

Vielen, vielen Dank – ich hoffe, ich kann das auch irgendwann und beantworte Dir/jemand anderes eine Frage!

Ciao und beste Grüße!
Michael
... Adobe InDesign Skriptwerkstatt 17. Mai 2019, 10:46 (Mesco)

Dokumentabmessungen in PDF

$
0
0
Hallo Michael,
um welche Version von InDesign geht's eigentlich?

CC 2018.1 und CC 2019 können die Seitengröße mit in den Dateinamen des Ausgabe-PDFs integrieren.

Datei > Exportieren… >
Dateityp: Adobe PDF (Druck) (*.pdf) > Adobe PDF exportieren > Allgemein

[ x ] Separate PDF-Datei erstellen
Suffix: ^S
*****
Mit herzlichem Gruß,
Uwe Laubender ... Adobe InDesign Skriptwerkstatt 17. Mai 2019, 10:59 (Uwe Laubender)

Dokumentabmessungen in PDF

$
0
0
Hallo Michael,

bitte sehr. Ich bin gerade unterwegs. Sobald ich wieder zu Hause bin, werde ich die Seitenzahl einfügen und auf Deine Fragen eingehen.

Gruss, Hans ... Adobe InDesign Skriptwerkstatt 17. Mai 2019, 11:20 (Hans Haesler)

Dokumentabmessungen in PDF

$
0
0
Hallo Michael,

und hier ist das ergänzte Script. Als Antwort auf (3.):

Code
d = app.activeDocument; 

preset1 = app.pdfExportPresets.itemByName("01WEF-PRINT_Fogra_V2+Marken+Beschnitt_X4_DB");
if (!(preset1.isValid)){
alert("One of the presets does not exist. Please check spelling carefully.");
exit();
}

mDocName = d.name.substr(0, d.name.lastIndexOf("."));
// die Anzahl Seiten ermitteln
p = d.pages.length;
// die Kanten der ersten Seite speichern
b = d.pages[0].bounds;
// die Werte drei und zwei des Arrays runden und 'w' und 'h' zuweisen
w = Math.round(b[3]);
h = Math.round(b[2]);
// zusammensetzen, ergänzt mit Underscore und "x"
docValues = "_"+p+"x"+w+"x"+h;

mSourcePath = d.fullName.parent.toString();
mRootPath = mSourcePath.substr(0, mSourcePath.lastIndexOf("/"));
mTargetPath = mRootPath.concat("/RZ/../../PDF/Print/");
// 'docSize' in den PDF-Namen einfügen
mNamePrint = mTargetPath.concat(mDocName,docValues,"_PRINT.pdf");

if (!d.saved) {
d.save;
}

d.exportFile(ExportFormat.PDF_TYPE, new File(mNamePrint), false, preset1);

app.menuActions.itemByID(-16776832).invoke() // aktiviert sichern

Es geht davon aus, dass die Einheiten immer Millimeter sind und dass die Werte keine Kommastellen aufweisen.
Sollten diese Annahmen nicht zutreffen, müsste das Script entsprechend erweitert werden.

*****
Zu Deinen Fragen:
1. Gute Frage ... Die Wahl der Skriptwerkstatt war schon richtig. Aber einer gefundenen Lösung gebührt eine Aufwand-Entlöhnung. Bei einer komplizierten Aufgabe: Ein Auftrags-Script bestellen. Wenn es einfacher ist (wie im vorliegenden Fall), genügt eine Spende ans Forum: https://www.hilfdirselbst.ch/...o=payment_donation;% ;-)
2. Mit den beiden genannten Quellen bist Du schon gut bedient.

Ansonsten:
A. Dranbleiben.
B. Versuchen, einfache Aufgaben zu lösen.
C. Wenn etwas hakt: Im Forum um Hilfe bitten.

Gruss, Hans ... Adobe InDesign Skriptwerkstatt 17. Mai 2019, 13:27 (Hans Haesler)
Viewing all 8741 articles
Browse latest View live