[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Dokument öffnen - innerhalb Funktion

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

Dokument öffnen - innerhalb Funktion

MarioF
Beiträge gesamt: 329

13. Apr 2021, 05:04
Beitrag # 1 von 18
Bewertung:
(1035 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,
ich kämpfe mal wieder mit function.
Außerhalb von function main() kann ich mit
Code
_doc = app.open(File(myFile); 

ein Dokument öffnen. Wenn ich dies aber innerhalb der Funktion abrufen möchte, macht er dies nicht.
Um zu überprüfen, ob myFile auch 'ankommt', habe ich in die Funktion ein alert(myFile) eingebaut. Der richtige Pfad wird mir auch angezeigt.
Ich habe es so schon einmal gemacht, aber irgendwie will er nicht.
---
Viele Grüße
Mario
X

Dokument öffnen - innerhalb Funktion

Martin Fischer
  
Beiträge gesamt: 12458

13. Apr 2021, 07:04
Beitrag # 2 von 18
Beitrag ID: #579471
Bewertung:
(1010 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mario,

kann‘s grad nicht prüfen, bin mir über die Rückgabe der Funktion app.open() jedoch etwas unsicher.

Gibt die tatsächlich ein document-Objekt zurück und nicht vielmehr einen boolschen Wert, der angibt, ob das Dokument mit Erfolg geöffnet wurde oder nicht?

Prüfe mal, was in _doc steckt.

Vermutlich braucht‘s ein _doc = app activeDocument oder ein _doc = app.documents.firstItem().

Viele Grüße
Martin




als Antwort auf: [#579470]
(Dieser Beitrag wurde von Martin Fischer am 13. Apr 2021, 07:06 geändert)

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2607

13. Apr 2021, 07:12
Beitrag # 3 von 18
Beitrag ID: #579472
Bewertung:
(999 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Mario,

rein syntaktisch fehlt Dir eine Klammer, das müsste Dir aber als Syntaxfehler angezeigt werden.

_doc definierst Du als Global-Variable, besser Local:

var _doc =

versuche es doch mal so:
Code
main(); 

/*Void*/function main(){
try{
var /*File*/file = new File("C:/Users/WernerPerplies/Source/AllIncludes/NNNNNNN/Ean/Automatisierte EAN-Erstellung/Dokumente8_Ersatzteile_BE-FR_2021.indd"),
/*Document*/doc = null;

if (file.exists){
doc = app.open(file);
alert("offene Datei: " + doc.name);
}
else
alert("Datei:\n" + file.fullName + "existiert nicht!");
}
catch (error){
alert("Fehler: " + error.message + "\nin Zeile: " + error.line + "\nFehlernummer: " + error.number);
}
}


Wichtig:
Falls die file-Variable nur ein Verzeichnis enthält, gibt es keinerlei Fehlermeldung!

Das halte ich für einen Bug.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#579470]

Dokument öffnen - innerhalb Funktion

Martin Fischer
  
Beiträge gesamt: 12458

13. Apr 2021, 07:40
Beitrag # 4 von 18
Beitrag ID: #579473
Bewertung:
(978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: app.open()

Gibt die tatsächlich ein document-Objekt zurück und nicht vielmehr einen boolschen Wert, der angibt, ob das Dokument mit Erfolg geöffnet wurde oder nicht?


Mit meiner Vermutung lag ich falsch.
app.open() gibt ein document-Objekt zurück.

Viele Grüße
Martin




als Antwort auf: [#579471]

Dokument öffnen - innerhalb Funktion

MarioF
Beiträge gesamt: 329

13. Apr 2021, 11:40
Beitrag # 5 von 18
Beitrag ID: #579476
Bewertung:
(862 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
danke für die Hilfe. Ich bekomme folgende Meldung:
Fehler: Die Anforderung kann nicht bearbeitet werden, da ein modales Dialogfeld oder eine modale Warnmeldung aktiv ist.
---
Viele Grüße
Mario


als Antwort auf: [#579472]

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2607

13. Apr 2021, 11:47
Beitrag # 6 von 18
Beitrag ID: #579477
Bewertung:
(851 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mario,

Du hast ein modales Dialogfeld offen.
Dieses Fenster musst Du zuerst schließen bevor der nächste Skriptbefehl ausgeführt werden kann.

Alert-Windows (z.B. Fehlermeldungen)sind solche Fenster.

Allegemeiner ausgedrückt:
Dein Skript oder InDesign wartet auf eine Eingabe von Dir.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#579476]

Dokument öffnen - innerhalb Funktion

MarioF
Beiträge gesamt: 329

13. Apr 2021, 11:49
Beitrag # 7 von 18
Beitrag ID: #579478
Bewertung:
(848 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ja, das habe ich mir gedacht. Nun muss ich mal schauen, wo es zickt.
---
Viele Grüße
Mario


als Antwort auf: [#579477]

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2607

13. Apr 2021, 11:59
Beitrag # 8 von 18
Beitrag ID: #579479
Bewertung:
(837 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das kann doch nicht so schwierig sein, Du müsstest den Dialog doch sehen.

Schließe ggf. alle anderen Fenster.

Wenn Du dann immer noch nichts siehst, liegt das Fenster hinter InDesign.

Für diesn Fall verkleinere das InDesignfenster und schiebe es in iregend eine Ecke, bevor Du Dein Skript neu startest.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#579478]

Dokument öffnen - innerhalb Funktion

MarioF
Beiträge gesamt: 329

13. Apr 2021, 12:06
Beitrag # 9 von 18
Beitrag ID: #579480
Bewertung:
(828 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das ist es ja: es ist kein weiterer Dialog auf.
---
Viele Grüße
Mario


als Antwort auf: [#579479]

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2607

13. Apr 2021, 12:09
Beitrag # 10 von 18
Beitrag ID: #579481
Bewertung:
(827 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das würde mich sehr wundern.

Das Fenster könnte auch sehr klein oder sogar unsichtbar sein.

Aber ohne weiter Informationen kann ich Dir dann nicht mehr helfen.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#579480]

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2607

13. Apr 2021, 12:25
Beitrag # 11 von 18
Beitrag ID: #579482
Bewertung:
(811 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Das ist es ja: es ist kein weiterer Dialog auf.


kein weiterer verwirrt mich, einer wäre schon zuviel!

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#579480]

Dokument öffnen - innerhalb Funktion

MarioF
Beiträge gesamt: 329

13. Apr 2021, 12:46
Beitrag # 12 von 18
Beitrag ID: #579483
Bewertung:
(777 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hier mal ein einfacher Dialog, der den Fehler schmeißt:
Code
var w = new Window("dialog"); 
w.text = "Test";
w.preferredSize.width = 300;
w.alignChildren = ["left", "top"];
w.spacing = 10;
w.margins = 16;

var button = w.add("button", undefined, undefined, { name: "button" });
button.text = "Ausführen";
button.onClick = function () {
this.window.close();
main();
}

w.show();

function main(){
try{
var file = new File("xxxx"),
doc = null;

if (file.exists){
doc = app.open(file);
alert("offene Datei: " + doc.name);
}
else
alert("Datei:\n" + file.fullName + "existiert nicht!");
}
catch (error){
alert("Fehler: " + error.message + "\nin Zeile: " + error.line + "\nFehlernummer: " + error.number);
}
}

---
Viele Grüße
Mario


als Antwort auf: [#579482]

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2607

13. Apr 2021, 13:06
Beitrag # 13 von 18
Beitrag ID: #579484
Bewertung:
(737 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mario,

Dein Skript funktioniert, natürlich musst Du den "Ausführen"-Button anklicken.

Dennoch sähe meine Fassung so aus:
Code
main(); 

/*Void*/function main(){
try{
var /*File*/file = new File("xxxx"),
/*Document*/doc = null; var w = new Window("dialog"),
/*Any*/result = dialogWindow();

if (file.exists){
doc = app.open(file);
alert("offene Datei: " + doc.name);
}
else
alert("Datei:\n" + file.fullName + "existiert nicht!");

/*Any*/ function dialogWindow(){
var /*Window*/w = new Window("dialog"),
/*Button*/ button = null;

w.text = "Test";
w.preferredSize.width = 300;
w.alignChildren = ["left", "top"];
w.spacing = 10;
w.margins = 16;

var button = w.add("button", undefined, undefined, { name: "button" });
button.text = "Ausführen";
button.onClick = function () {
this.window.close();
}
return w.show();
}
}
catch (error){
alert("Fehler: " + error.message + "\nin Zeile: " + error.line + "\nFehlernummer: " + error.number);
}
}


Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#579483]

Dokument öffnen - innerhalb Funktion

MarioF
Beiträge gesamt: 329

13. Apr 2021, 13:42
Beitrag # 14 von 18
Beitrag ID: #579485
Bewertung:
(707 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: ... natürlich musst Du den "Ausführen"-Button anklicken.

Also daran scheitert es nun nicht ;-)
---
Viele Grüße
Mario


als Antwort auf: [#579484]

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2607

13. Apr 2021, 13:45
Beitrag # 15 von 18
Beitrag ID: #579486
Bewertung:
(703 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Also daran scheitert es nun nicht ;-)

;-)
beantwortet nicht die Frage, ob Du geklickt hast!

Also funktioniert es jetzt bei Dir auch, oder?

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#579485]
X

Aktuell

PDF / Print
kalenderFebruar_kl

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
12.03.2021 - 16.07.2021

Digicomp Academy AG, Zürich oder virtuell
Freitag, 12. März 2021, 13.00 Uhr - Freitag, 16. Juli 2021, 17.00 Uhr

Lehrgang

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

Preis: CHF 6'300.-
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-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PBAS