[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Skripte für InDesign Server

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

Skripte für InDesign Server

mb_new
Beiträge gesamt: 100

9. Feb 2016, 15:20
Beitrag # 1 von 9
Bewertung:
(2835 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Zusammne!

Ist hier jemand vertreten, der sich mit dem Skripten von InDesign Server auskennt?

Falls ja, bitte melden, ich habe für einen Profi wahrscheinlich eine Kleinigkeit zu lösen.

Danke
Martin
X

Skripte für InDesign Server

WernerPerplies
Beiträge gesamt: 2659

9. Feb 2016, 15:36
Beitrag # 2 von 9
Beitrag ID: #546813
Bewertung:
(2823 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

Zitat Ist hier jemand vertreten, der sich mit dem Skripten von InDesign Server auskennt?

ein wenig! ;-)

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign Alle neuen Skripte mit
neu: WpsProjectHandler 31.05.2020, Version 3.XX, neue Funktionen.
MultiSave ist Bestandteil meines WpsProjecthandlers
Kundenstimmen


als Antwort auf: [#546812]

Skripte für InDesign Server

mb_new
Beiträge gesamt: 100

9. Feb 2016, 16:25
Beitrag # 3 von 9
Beitrag ID: #546818
Bewertung:
(2788 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,
danke für deine Antwort.

Kurz zur Erklärung: in unserem Arbeitsablauf werden die Dokumente mit K4/vjoon verwaltet.

Nun gibt es eine Funktion, die in Zusammenarbeit mit einem Seitenspiegeltool die Pagina richtig stellt.
Das tut es auch.
Einziges Problem: da Indesign Server windowsbasierend ist, weden die Pfade der Verknüpfungen verändert: es wird C:// vor den Pfad geschrieben, was dann in weiterer Folge in allen Indesign Anwendungen dazu führt, dass die Verknüpfung nicht mehr stimmt. (Auch bei der automatischne PDF Erstellung)

Nun habe ich ein Skript gebastelt, das die Verknüpfung wieder repariert:

Code
changeLinks();  

//Ändert den Pfad der Verknüpfungen
function changeLinks() {
var myDoc = app.documents.item(0);
var myImages = myDoc.allGraphics;
for (i = myImages.length-1; i >= 0 ; i--) {
var myImage = myImages[i].itemLink;
// Eingabe was ersetzt werden soll
var myNewName = myImage.filePath.replace("C/:", "");
// Änderung der Links, funktioniert nur, wenn der Pfad vorhanden ist
var myNewLink = new File (myNewName);
if (myNewLink.exists) {
myImage.relink (myNewLink);
myImage.update();
}
}
}


Das funktioniert im Indesign.

Nur ich muss das in ein Serverscript einbauen, welches so aussieht:
Code
function runScript(layoutDocument) {  
layoutDocument.k4GetServerData().k4SaveVersion();
return;
}


Irgendeine Idee wie ich das anstelle?

Mein Gedankengang war, dass am Indesignserver die Verknüpfung wieder geändert wird, danach sollte es ja sonst auch überall wieder funktionieren.

Zweite Idee war, Indesign Server die Verknüpfungen ignorieren zu lassen, doch das hab ich noch nicht weiterverfolgt.

Danke
Martin


als Antwort auf: [#546813]

Skripte für InDesign Server

WernerPerplies
Beiträge gesamt: 2659

9. Feb 2016, 17:39
Beitrag # 4 von 9
Beitrag ID: #546824
Bewertung:
(2754 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

sorry, aber da muss ich passen, die eigentliche Logik steckt in dieser Methode:
Code
layoutDocument.k4GetServerData().k4SaveVersion(); 


"layoutDocument" scheint ein Object von K4 zu sein, und ohne Doku und/oder Sourcen geht da allenfalls eventuell per Debugging, aber das ist eher unwahrscheinlich..

Die Serverprogrammierung unterscheidet sich von der Desktop-Programmierung eher marginal.

Unterschiedlich sind der Aufruf der Skripte und es fehlen eine Reihe von Properties, die die Interaktion mit dem User betreffen.

Aber warum wendest Du Dich nicht an den Hersteller? - K4?

Für mich sieht das so aus, dass in dem Modul der falsche Pfadtyp verwendet wird.

Wer und wie ruft eigentlich die Funktion "runScript" auf?

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign Alle neuen Skripte mit
neu: WpsProjectHandler 31.05.2020, Version 3.XX, neue Funktionen.
MultiSave ist Bestandteil meines WpsProjecthandlers
Kundenstimmen


als Antwort auf: [#546818]

Skripte für InDesign Server

Marc Sidon
Beiträge gesamt: 262

11. Feb 2016, 10:37
Beitrag # 5 von 9
Beitrag ID: #546913
Bewertung:
(2578 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin

Entweder das "layoutDocument" oder der parent von k4GetServerData() könnte bereits das Dokument sein.
Die Funktion k4SaveVersion() sollte (so wie ich das verstanden habe) nur für das letztendliche Speichern des Dokumentes zuständig sein.

Also Versuch mal:

Code
function runScript(layoutDocument) {   
changeLinks(layoutDocument);
layoutDocument.k4GetServerData().k4SaveVersion();
return;
}


oder

Code
function runScript(layoutDocument) {   
changeLinks(layoutDocument.k4GetServerData().parent);
layoutDocument.k4GetServerData().k4SaveVersion();
return;
}


wobei Du dann natürlich das Dokument als Eingangsparameter in Deiner Funktion verwenden musst:

Code
function changeLinks(document) {  
// Noch eine Prüfung, damit die Funktion nur ausgeführt wird,
// wenn der Eingangsparameter auch wirklich das Dokument ist...
if (document.constructor.name != "Document")
return;

var myDoc = document;
/* ... */
}


Meine Vermutung basiert hierauf:
http://theatlantic.github.io/...method-k4SaveVersion

Gruß,
Marc
------------------------------------------

modernmediasidon
Erstellung von InDesign Scripts


als Antwort auf: [#546818]
(Dieser Beitrag wurde von Marc Sidon am 11. Feb 2016, 10:44 geändert)

Skripte für InDesign Server

mb_new
Beiträge gesamt: 100

16. Feb 2016, 13:48
Beitrag # 6 von 9
Beitrag ID: #547079
Bewertung:
(2404 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marc,

danke für deinen Input.
Ich werde das in beiden Varianten testen.

Zur Sicherheit: Du meinst komplett sieht das Skript so aus:

Code
function changeLinks(document) {   
// Noch eine Prüfung, damit die Funktion nur ausgeführt wird,
// wenn der Eingangsparameter auch wirklich das Dokument ist...
if (document.constructor.name != "Document")
return;

var myDoc = document;
var myImages = myDoc.allGraphics;
for (i = myImages.length-1; i >= 0 ; i--) {
var myImage = myImages[i].itemLink;
// Eingabe was ersetzt werden soll
var myNewName = myImage.filePath.replace("C/:", "");
// Änderung der Links, funktioniert nur, wenn der Pfad vorhanden ist
var myNewLink = new File (myNewName);
if (myNewLink.exists) {
myImage.relink (myNewLink);
myImage.update();
}
}
}

function runScript(layoutDocument) {
changeLinks(layoutDocument);
layoutDocument.k4GetServerData().k4SaveVersion();
return;
}



Danke
Martin


als Antwort auf: [#546913]

Skripte für InDesign Server

mb_new
Beiträge gesamt: 100

16. Feb 2016, 16:04
Beitrag # 7 von 9
Beitrag ID: #547092
Bewertung:
(2378 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marc,

ich habs getestet. Funktioniert leider nicht.

Das Dokument wird wie gehabt aktiviert und wieder gesichert, doch die Funktion zum Ändern des Pfades greift leider nicht.

Vielleicht siehst du ja im Skript noch Verbesserungsmöglichkeiten.

lg
Martin


als Antwort auf: [#547079]

Skripte für InDesign Server

NorbertK
Beiträge gesamt: 2

22. Feb 2016, 13:35
Beitrag # 8 von 9
Beitrag ID: #547287
Bewertung:
(2109 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
also ich habe keine Ahnung ob es in Verbindung mit K4 eine Besonderheit gibt, aber normalerweise musst du auf einem InDesign Server immer
myDoc = app.documents.firstItem();
verwenden.

probier es aus.
Viel Erfolg


als Antwort auf: [#547092]

Skripte für InDesign Server

mb_new
Beiträge gesamt: 100

23. Feb 2016, 10:20
Beitrag # 9 von 9
Beitrag ID: #547319
Bewertung:
(2007 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Norbert,

danke für den Tipp. Werde ich versuchen.

Die Frage ist nur:

Ist der Beginn der function dann mit einer leeren Klammer?

Code
function changeLinks() {  

var myDoc = document;

.....


Schöne Grüße
Martin


als Antwort auf: [#547287]
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
05.02.2021 - 05.11.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 05. Feb. 2021, 13.00 Uhr - Freitag, 05. Nov. 2021, 17.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PM

Veranstaltungen
09.09.2021 - 17.12.2021

Digicomp Academy, Zürich
Donnerstag, 09. Sept. 2021, 13.00 Uhr - Freitag, 17. Dez. 2021, 19.00 Uhr

Lehrgang

Steigen Sie in die Welt des Publishings ein und erlangen Sie die Zertifizierung von Publishing NETWORK. Lernen Sie in diesem Lehrgang Druckmedien professionell zu erarbeiten, druckfertige PDFs zu erstellen und CI/CD-Vorgaben umzusetzen.

Preis: 6'300.– zzgl. 7.7% MWST
Dauer: 18 Tage(ca. 126 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt.

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberater AT digicomp DOT ch