[GastForen Programme Print/Bildbearbeitung QuarkXPress JavaScript mit QuarkXPress (QX.js) und QXML DOM

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

JavaScript mit QuarkXPress (QX.js) und QXML DOM

mguenther
Beiträge gesamt: 1539

18. Jul 2018, 19:07
Beitrag # 1 von 9
Bewertung: |||||
(49625 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
N'Abend,

Hier eine Zusammenfassung aller Ressourcen zu JavaScript (QX.js) mit QuarkXPress 2018 und zum QXML.
Da Entwickler meist Englisch lesen/schreiben/verstehen, alles auf Englisch… Cheers

QX.js Scripting Guide (Einführung):
http://files.quark.com/...cripting%20Guide.pdf

QX.js API reference (Schnittstellenbeschreibung, Referenz):
http://www.quark.com/...s%20API%20Reference/

QXML DOM API Reference (Objektmodell von QuarkXPress Dokumenten erklärt):
http://www.quark.com/...rence/qxml/qxml.html

QX.js GitHub Repository (Beispielskripte):
https://github.com/qxpjs

Getting Started with JavaScript in QuarkXPress (Schritt-für-Schritt Übungen):
https://github.com/qxpjs/GettingStarted

Gruß
Matthias
X

JavaScript mit QuarkXPress (QX.js) und QXML DOM

Drienko
Beiträge gesamt: 4818

1. Aug 2018, 10:48
Beitrag # 2 von 9
Beitrag ID: #565219
Bewertung:
(49493 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallole Zusammen

Ich habe mal den Beitrag oben fixiert, ist doch alles sehr neu in QXP.


als Antwort auf: [#564946]

JavaScript mit QuarkXPress (QX.js) und QXML DOM

mguenther
Beiträge gesamt: 1539

1. Aug 2018, 13:01
Beitrag # 3 von 9
Beitrag ID: #565224
Bewertung:
(49485 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hier nochmal ein paar Beispiele (Ein- oder Zweizeiler):

QX.js: Alle Rahmen in einem Layout auslesen:
Code
var DOM = app.activeLayoutDOM(); 
var boxes = DOM.getElementsByTagName("qx-box");


QX.js: Alle Bildrahmen in einem Layout auslesen:
Code
app.activeLayoutDOM().querySelectorAll("qx-box[box-content-type='picture']"); 


QX.js: Benutzereingabe (Dialog):
Code
var name = prompt("your name:"); 
alert("Hello ", name);


QX.js: Textdatei lesen:
Code
fs.readFileSync(path) 


Gruß
Matthias


als Antwort auf: [#565219]

JavaScript mit QuarkXPress (QX.js) und QXML DOM

mguenther
Beiträge gesamt: 1539

1. Aug 2018, 13:27
Beitrag # 4 von 9
Beitrag ID: #565225
Bewertung:
(49481 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Weiterhin bietet das Juli Update für QuarkXPress 2018 (14.0.1) ein neues Beispielskript:

"Find and Replace Text from List"
Suchen & Ersetzen mit Suchpaaren, die in einer Liste (CSV, kommagetrennte Liste) definiert sind.

Gruß
Matthias


als Antwort auf: [#565224]

JavaScript mit QuarkXPress (QX.js) und QXML DOM

Uwe Laubender
Beiträge gesamt: 5320

1. Aug 2018, 14:07
Beitrag # 5 von 9
Beitrag ID: #565227
Bewertung:
(49477 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf:
QX.js: Benutzereingabe (Dialog):
Code
var name = prompt("your name:"); 
alert("Hello ", name);



Hallo Matthias,
müsste da nicht noch eine Zeile rein für den Fall, dass der Anwender den Prompt abbricht, die Variable name also den Wert null annimmt?
Auch könnte die Methode prompt ein zweites Argument vertragen, sonst steht da womöglich im Textfeld undefined drin. Ein leerer String müsste es tun.

Nicht getestet:
Code
( function() 
{
var name = prompt("your name:" , "" );
if( name == null ){ return };

alert( "Hello ", name ); // Why not: alert( "Hello " + name );
}() )



als Antwort auf: [#565224]

JavaScript mit QuarkXPress (QX.js) und QXML DOM

mguenther
Beiträge gesamt: 1539

1. Aug 2018, 15:34
Beitrag # 6 von 9
Beitrag ID: #565234
Bewertung:
(49458 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Besser
Code
if(name != null) 
{
alert( "Hello ", name );

}


Zitat Why not: alert( "Hello " + name );

Zum Plus, oft eine Frage des Stils.

Guter Artikel dazu: https://stackoverflow.com/...in-different-pattern

Gruß
Matthias


als Antwort auf: [#565227]

JavaScript mit QuarkXPress (QX.js) und QXML DOM

Uwe Laubender
Beiträge gesamt: 5320

1. Aug 2018, 17:14
Beitrag # 7 von 9
Beitrag ID: #565244
Bewertung:
(49444 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Matthias,

ich bevorzuge das + beim Zusammenfügen von Strings.

Diese Schreibweise ist dann beispielsweise kompatibel mit ExtendScripts Core JavaScript, das der Methode alert() drei Argumente mitgegeben hat. Dort würde der mit Komma abgetrennte Teil als zweites Argument, als Titel des Alerts erscheinen.

Mit JavaScript für QuarkXPress ist das offenbar nicht der Fall. Das deckt sich dann mit window.alert() aus JavaScript für's Web. Bei einem Argument für Methode alert() ist das sichtbare Ergebnis mit + oder , identisch.

Zur Frage mit dem if:

Meiner Meinung nach ist meine Schreibweise klarer.
Aber das mag Ansichtssache oder Stilfrage sein.

Ich ummantele nur ungern auszuführenden Code mit { }, wenn er länger ist.

Das if( name == null ){ return } ist für mich das klare Statement, dass code unterhalb nicht ausgeführt wird, wenn der Ausdruck in den ( ) Klammern positiv beschieden wird. Funktioniert natürlich nur, weil ich den gesamten Code in eine selbstausführende annonyme Funktion gepackt habe:

Code
( function() 
{

/*
All code goes here.
*/

}() )



als Antwort auf: [#565234]

JavaScript mit QuarkXPress (QX.js) und QXML DOM

mguenther
Beiträge gesamt: 1539

2. Aug 2018, 10:02
Beitrag # 8 von 9
Beitrag ID: #565263
Bewertung:
(49411 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf:
Code
( function() 
{

/*
All code goes here.
*/

}() )



Tolle Funktion, danke! ;-)


als Antwort auf: [#565244]

JavaScript mit QuarkXPress (QX.js) und QXML DOM

mguenther
Beiträge gesamt: 1539

2. Aug 2018, 10:04
Beitrag # 9 von 9
Beitrag ID: #565264
Bewertung:
(49412 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Übrigens, das Juli Update für QuarkXPress 2018 fügt ein paar neue QX.js JavaScript Methoden hinzu:

- closeDialog
- openDialog
- openFileDialog
- openFolderDialog
- openProgressDialog
- saveFileDialog

Damit muss man nun den Pfad nicht mehr in ein Freifeld tippen/einsetzen, sondern kann einen Dialog aufrufen.

Gruß
Matthias


als Antwort auf: [#565263]
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
18.06.2024

Online
Dienstag, 18. Juni 2024, 10.00 - 10.30 Uhr

Webinar

In diesen beiden kostenlose Webinaren erfahren Sie, wie Sie mit Hilfe von Enfocus Griffin und dem Impressed Workflow Server Ihren LFP-Workflows optimieren können. 18.06.2024: So optimieren Sie Ihre Prozesse mit Enfocus Griffin 02.07.2024: So sparen Sie Zeit und Geld mit Impressed Workflow Server in der LFP-Edition Griffin: Griffin ist das leistungsstarke Kraftpaket für das automatische Nesting im Großformatdruck. Dank eines ausgeklügelten, KI-basierten Nesting-Algorithmus können Sie mit Griffin Vorlagen schnell und effizient vernutzen – und das klappt auch mit unregelmäßigen Formen perfekt. Das spart Ihnen unzählige Stunden, die Sie bisher mit dem manuellen Nesting und Ausschießen verbracht haben. Einige wichtige Funktionen ≡ Anlage von Beschnittzugaben ≡ Automatische Erzeugung der Schnittkontur ≡ Erstellung von Strichcodes, Textmarkierungen und Registrierungen IWS LFP Edition: 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? Mit dem IWS LFP Edition automatisieren Sie Ihre Produktion von der Übernahme der Daten aus dem ERP-System bis zur Erzeugung der verschachtelten Druckform und der Übergabe an den RIP. Phoenix Core ist eine hochentwickelte KI-Technologie für die Planung und das Nesting von Druckerzeugnissen. Anders als herkömmliche Ausschießlösungen arbeitet Phoenix nicht auf Basis von Vorlagen, sondern erzeugt entsprechend der Maschinen- und Produktionsanforderungen druckfertige Layouts „on-the-fly“.

kostenlos

Ja

Organisator: Impressed GmbH

https://www.impressed.de/schulung.php?c=sDetail&sid=328

So optimieren Sie Ihren LFP-Workflow
Veranstaltungen
02.07.2024

Online
Dienstag, 02. Juli 2024, 10.00 - 10.30 Uhr

Webinar

In diesen beiden kostenlose Webinaren erfahren Sie, wie Sie mit Hilfe von Enfocus Griffin und dem Impressed Workflow Server Ihren LFP-Workflows optimieren können. 18.06.2024: So optimieren Sie Ihre Prozesse mit Enfocus Griffin 02.07.2024: So sparen Sie Zeit und Geld mit Impressed Workflow Server in der LFP-Edition Griffin: Griffin ist das leistungsstarke Kraftpaket für das automatische Nesting im Großformatdruck. Dank eines ausgeklügelten, KI-basierten Nesting-Algorithmus können Sie mit Griffin Vorlagen schnell und effizient vernutzen – und das klappt auch mit unregelmäßigen Formen perfekt. Das spart Ihnen unzählige Stunden, die Sie bisher mit dem manuellen Nesting und Ausschießen verbracht haben. Einige wichtige Funktionen ≡ Anlage von Beschnittzugaben ≡ Automatische Erzeugung der Schnittkontur ≡ Erstellung von Strichcodes, Textmarkierungen und Registrierungen IWS LFP Edition: 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? Mit dem IWS LFP Edition automatisieren Sie Ihre Produktion von der Übernahme der Daten aus dem ERP-System bis zur Erzeugung der verschachtelten Druckform und der Übergabe an den RIP. Phoenix Core ist eine hochentwickelte KI-Technologie für die Planung und das Nesting von Druckerzeugnissen. Anders als herkömmliche Ausschießlösungen arbeitet Phoenix nicht auf Basis von Vorlagen, sondern erzeugt entsprechend der Maschinen- und Produktionsanforderungen druckfertige Layouts „on-the-fly“.

kostenlos

Ja

Organisator: Impressed GmbH

Kontaktinformation: E-Mailschulungen AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=328

So optimieren Sie Ihren LFP-Workflow