[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: 390

13. Apr 2021, 05:04
Beitrag # 1 von 18
Bewertung:
(8700 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.
X

Dokument öffnen - innerhalb Funktion

Martin Fischer
  
Beiträge gesamt: 12783

13. Apr 2021, 07:04
Beitrag # 2 von 18
Beitrag ID: #579471
Bewertung:
(8675 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().


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: 2762

13. Apr 2021, 07:12
Beitrag # 3 von 18
Beitrag ID: #579472
Bewertung:
(8664 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.


als Antwort auf: [#579470]

Dokument öffnen - innerhalb Funktion

Martin Fischer
  
Beiträge gesamt: 12783

13. Apr 2021, 07:40
Beitrag # 4 von 18
Beitrag ID: #579473
Bewertung:
(8643 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.


als Antwort auf: [#579471]

Dokument öffnen - innerhalb Funktion

MarioF
Beiträge gesamt: 390

13. Apr 2021, 11:40
Beitrag # 5 von 18
Beitrag ID: #579476
Bewertung:
(8527 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.


als Antwort auf: [#579472]

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2762

13. Apr 2021, 11:47
Beitrag # 6 von 18
Beitrag ID: #579477
Bewertung:
(8516 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.


als Antwort auf: [#579476]

Dokument öffnen - innerhalb Funktion

MarioF
Beiträge gesamt: 390

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


als Antwort auf: [#579477]

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2762

13. Apr 2021, 11:59
Beitrag # 8 von 18
Beitrag ID: #579479
Bewertung:
(8502 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.


als Antwort auf: [#579478]

Dokument öffnen - innerhalb Funktion

MarioF
Beiträge gesamt: 390

13. Apr 2021, 12:06
Beitrag # 9 von 18
Beitrag ID: #579480
Bewertung:
(8493 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das ist es ja: es ist kein weiterer Dialog auf.


als Antwort auf: [#579479]

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2762

13. Apr 2021, 12:09
Beitrag # 10 von 18
Beitrag ID: #579481
Bewertung:
(8492 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.


als Antwort auf: [#579480]

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2762

13. Apr 2021, 12:25
Beitrag # 11 von 18
Beitrag ID: #579482
Bewertung:
(8476 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!


als Antwort auf: [#579480]

Dokument öffnen - innerhalb Funktion

MarioF
Beiträge gesamt: 390

13. Apr 2021, 12:46
Beitrag # 12 von 18
Beitrag ID: #579483
Bewertung:
(8442 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);
}
}



als Antwort auf: [#579482]

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2762

13. Apr 2021, 13:06
Beitrag # 13 von 18
Beitrag ID: #579484
Bewertung:
(8402 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);
}
}



als Antwort auf: [#579483]

Dokument öffnen - innerhalb Funktion

MarioF
Beiträge gesamt: 390

13. Apr 2021, 13:42
Beitrag # 14 von 18
Beitrag ID: #579485
Bewertung:
(8372 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 ;-)


als Antwort auf: [#579484]

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2762

13. Apr 2021, 13:45
Beitrag # 15 von 18
Beitrag ID: #579486
Bewertung:
(8368 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?


als Antwort auf: [#579485]
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
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!