[GastForen Programme Print/Bildbearbeitung Adobe InDesign Drucken per Skript

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

Drucken per Skript

Krings
Beiträge gesamt: 57

9. Feb 2009, 20:40
Beitrag # 1 von 16
Bewertung:
(5958 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

hier folgt gleich mal mein neues "Sorgenkind".

Ich möchte ein Skript haben (schreiben), welches mir aus den Dateinamen bestimmte Buchstabenkombinationen ausliest und jeweils eine andere Seitenzusammenstellung ausdruckt.

Beispielsweise die Dateien: ANG_1456.indd , FJU_623.indd , FRO_4562.indd usw.

Bei ANG soll er die Seiten 3 und 59 ausdrucken, bei FJU die Seiten 64 und 66.

Geht so etwas per Skript?

Gruß Holger
X

Drucken per Skript

Martin Fischer
  
Beiträge gesamt: 12783

9. Feb 2009, 21:00
Beitrag # 2 von 16
Beitrag ID: #384801
Bewertung:
(5951 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Holger,

wenn Deine Suche im Forum erfolgreich gewesen wäre, hättest Du u.a. das Skript printWithDialog.jsx gefunden.

Dort gibt es eine Zeile myDoc.printPreferences.pageRange = myR;, die Dir zeigt, wie man den Seitenbereich für den Druck angibt.
pageRange erwartet einen String wie '3, 59' oder '3-59'.

Viel Erfolg.


als Antwort auf: [#384799]
(Dieser Beitrag wurde von Martin Fischer am 9. Feb 2009, 21:01 geändert)

Drucken per Skript

Krings
Beiträge gesamt: 57

9. Feb 2009, 21:17
Beitrag # 3 von 16
Beitrag ID: #384807
Bewertung:
(5942 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

das war nicht mein Hauptproblem. Das mit den Seiten hatte ich schon (fast) richtig.

Mein Problem ist die richtige Buchstabenkombination aus dem Dateinamen "auszulesen".

Die Zahlen ändern sich Woche für Woche, aber die Buchstabenkürzel bleiben. Und die Seiten die ich drucken will auch.

FJU_1423.indd , BDR_564.indd in dieser Woche
FJU_1424.indd , BDR_565.indd in der nächsten Woche


Also: für alle FJU immer die Seiten 3,45-47,65
für alle BDR immer die Seiten 27,65,66

Gruß Holger


als Antwort auf: [#384801]

Drucken per Skript

Martin Fischer
  
Beiträge gesamt: 12783

9. Feb 2009, 21:23
Beitrag # 4 von 16
Beitrag ID: #384809
Bewertung:
(5935 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Holger,

es tut mir leid, aber ich erkenne spontan keinen Zusammenhang zwischen den Zahlen im Dateinamen und den zu druckenden Seiten. Kannst Du das etwas genauer angeben? Vielleicht durch Fettstellung hervorheben?


als Antwort auf: [#384807]
(Dieser Beitrag wurde von Martin Fischer am 9. Feb 2009, 21:24 geändert)

Drucken per Skript

Krings
Beiträge gesamt: 57

9. Feb 2009, 21:36
Beitrag # 5 von 16
Beitrag ID: #384812
Bewertung:
(5930 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Entschuldige meine wirre Ausdrucksweise.

Die Zahlen im Dateinamen haben gar nichts mit den zu druckenden Seiten zu tun.

Die Dateien sind Heftromane, die Buchstabenkürzel stehen für den Titel und bleiben immer gleich, und die Zahl ist die Heftnummer. Jede Woche ein Zähler mehr.

Die Seitenzahlen waren auch völlig willkürlich angegegben (nur als Beispiel).

Gruß Holger


als Antwort auf: [#384809]

Drucken per Skript

Martin Fischer
  
Beiträge gesamt: 12783

9. Feb 2009, 21:41
Beitrag # 6 von 16
Beitrag ID: #384813
Bewertung:
(5928 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Holger,

an welcher Stelle bist Du stecken geblieben?

Willst Du das 'FJU' aus 'FJU_1423.indd' herauslesen?

Das geht entweder so:
Code
// Teilstring ab dem ersten bis zum dritten Buchstaben  
var s = 'FJU_1423.indd';
var sSub = s.substring (0, 3);


oder so:
Code
// Teilstring ab dem ersten Buchstaben drei Buchstaben 
var s = 'FJU_1423.indd';
var sSub = s.substr (0, 3);


oder so:
Code
// String in Array umwandeln mit '_' als Trenner 
// [0] = das erste Element des Arrays adressieren
var s = 'FJU_1423.indd';
var sSub = s.split('_')[0];



als Antwort auf: [#384812]
(Dieser Beitrag wurde von Martin Fischer am 9. Feb 2009, 21:51 geändert)

Drucken per Skript

Krings
Beiträge gesamt: 57

9. Feb 2009, 22:20
Beitrag # 7 von 16
Beitrag ID: #384817
Bewertung:
(5908 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das meinte ich!
Danke!

Aber die Nummer ist jede Woche eine andere! Kann man da "Wildcards" setzen?
Werde ich gleich morgen ausprobieren.

Jetzt bin ich erstmal müde..müde..müde.

Gute Nacht sagt
Holger


als Antwort auf: [#384813]

Drucken per Skript

Krings
Beiträge gesamt: 57

11. Feb 2009, 21:56
Beitrag # 8 von 16
Beitrag ID: #385230
Bewertung:
(5769 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

bin kurz vor dem Aufgeben.
Ich bin zu blöd, schätze ich.
Kannst du mir nicht ein Skript zeigen, das weiter nichts macht, als von einem aktiven Dokument bestimmte Seiten zu drucken, unter Verwendung eines def. Druckstiles.

Ich gebe mir ja Mühe, aber ohne diese "Ausgangsbasis" werde ich nicht fertig.

Das Skript printWithDialog.jsx ist mir zu kompliziert als Ausgangsbasis. Und außerdem will ich ja keinen Dialog.

Hilf mir bitte!

Holger


als Antwort auf: [#384813]

Drucken per Skript

Martin Fischer
  
Beiträge gesamt: 12783

11. Feb 2009, 22:05
Beitrag # 9 von 16
Beitrag ID: #385235
Bewertung:
(5767 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Holger,

die beiden wichtigsten Zeilen sind
Code
myDoc.printPreferences.pageRange = '4-5, 67, 90'; // zu druckende Seiten  
myDoc.print(false, 'Mein bester Drucker'); // Datei drucken mit der Druckvorgabe 'Mein bester Drucker'

Dabei ersetzt Du an den entsprechenden Stellen die zu druckenden Seiten und die Druckvorgabe.


als Antwort auf: [#385230]

Drucken per Skript

Krings
Beiträge gesamt: 57

11. Feb 2009, 22:56
Beitrag # 10 von 16
Beitrag ID: #385236
Bewertung:
(5760 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Martin!

Ich probier es morgen aus. Zu Hause hab ich kein InDesign und im Büro bleibt mir immer nicht soviel Zeit.

Muss ich myDoc erst definieren?
etwa
Code
myDoc = app.activeDocument() 


Bis morgen
Holger


als Antwort auf: [#385235]

Drucken per Skript

Krings
Beiträge gesamt: 57

15. Feb 2009, 15:50
Beitrag # 11 von 16
Beitrag ID: #385629
Bewertung:
(5644 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

war ein paar Tage krank, deshalb kann ich erst jetzt wieder weitertesten. Das mit dem Drucken, hab ich dank deiner Hilfe erst mal im Griff.

Was ich noch nicht hinbekomme, beschreibe ich dir mal mit Worten:

(Voraussetzung: mehrere verschiedene Documente offen.)

-----------------------------------
wenn die ersten drei Buchstaben des Dateinamens (des aktiven Documents) FJU heißen,
dann drucke folgende Seiten: 3,59,65;
danach schließe diese Datei.

wenn die ersten drei Buchstaben des Dateinamens (des aktiven Documents) FRO heißen,
dann drucke folgende Seiten: 3,27,33-36,66;
danach schließe diese Datei.
-----------------------------------
usw.

so lange, bis alle Dateien wieder geschlossen sind, und von allen definierten Dateien die vorher festgelegten Seiten ausgedruckt sind.

Geht das? Und wenn ja, wie?

Holger Krings


als Antwort auf: [#385235]

Drucken per Skript

Krings
Beiträge gesamt: 57

16. Feb 2009, 12:06
Beitrag # 12 von 16
Beitrag ID: #385698
Bewertung:
(5588 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Bitte helft mir doch!

Es muss auch nicht immer Martin sein, der antwortet. Wenn Martin keine Zeit für mich hat, weiß vielleicht jemand anderes Rat.

Bis jetzt versucht habe ich
Code
if(app.documents.length !=0){ 
var myDoc = app.activeDocument;
var s = '*.indd';
var sSub = s.substring (0,3);
if(sSub =='AGO'){
myDoc.printPreferences.pageRange = '3,59,65';
myDoc.print(false, 'Seitendruck');}}
app.activeDocument.close(SaveOptions.NO);


aber das funktioniert so nicht.


als Antwort auf: [#385629]

Drucken per Skript

Martin Fischer
  
Beiträge gesamt: 12783

16. Feb 2009, 12:38
Beitrag # 13 von 16
Beitrag ID: #385703
Bewertung:
(5582 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Holger,

wenn s = '*.indd', dann liefert s.substring(0,3) '*.i'.
Das interessiert Dich nicht.
Dich interessiert vielmehr der Anfang des Dokumentsnamens.

Versuch's mal mit
Code
var sSub = myDoc.name.substring (0,3); 



als Antwort auf: [#385698]

Drucken per Skript

Krings
Beiträge gesamt: 57

16. Feb 2009, 12:44
Beitrag # 14 von 16
Beitrag ID: #385708
Bewertung:
(5578 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Jetzt druckt er gar nichts, sondern schließt nur das erste Document.

Holger


als Antwort auf: [#385703]

Drucken per Skript

Martin Fischer
  
Beiträge gesamt: 12783

16. Feb 2009, 13:00
Beitrag # 15 von 16
Beitrag ID: #385714
Bewertung:
(5568 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Verstehe ich nicht.

Wie heißt Dein Dokument?

Code
while(app.documents.length !=0){   
var myDoc = app.activeDocument;
var s = '*.indd';
var sSub = myDoc.name.substring (0,3);
if(sSub =='AGO'){
myDoc.printPreferences.pageRange = '3,59,65';
myDoc.print(false, 'Seitendruck');
}
app.activeDocument.close(SaveOptions.NO);
}
Code


als Antwort auf: [#385708]
(Dieser Beitrag wurde von Martin Fischer am 16. Feb 2009, 13:31 geändert)

Drucken per Skript

Krings
Beiträge gesamt: 57

16. Feb 2009, 13:58
Beitrag # 16 von 16
Beitrag ID: #385731
Bewertung:
(326 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Martin,
jetzt hab ichs geschafft.

Willst du das Ergebnis sehen?
Code
//  Druck_Verlagskorrekturen.jsx 
//
// Teil 1: Öffnen aller InDesign-Dateien eines Ordners inkl. Unterordner
//
fileType = "*.indd";
var topFolder = Folder.selectDialog ("Wähle einen Ordner aus");

scanSubFolders(topFolder);

function scanSubFolders(tFolder)
{
var sFolders = new Array();
var allFiles = new Array();

sFolders[0] = tFolder;
for (var j = 0; j < sFolders.length; j++) // loop durch den gesamten Ordner
{
var procFiles = sFolders[j].getFiles();
for (var k=0;k<procFiles.length;k++) // loop durch alle Unterordner
{

if (procFiles[k] instanceof File) allFiles.push(procFiles[k]);
else if (procFiles[k] instanceof Folder) sFolders.push(procFiles[k]);
var letzt = procFiles[k];
var myArray = letzt.name.split(".");
var myLast = myArray.pop();
if (myLast == "indd") {app.open(letzt)};
}
}
}
//
// Teil 2: Drucken
//
while(app.documents.length !=0){
var myDoc = app.activeDocument;
var s = '*.indd';
var sSub = myDoc.name.substring (0,3);
if(sSub =='AGO'){ // die ersten drei Buchstaben des Dateinamens
myDoc.printPreferences.pageRange = '3,59,66'; // die zu druckenden Seiten
myDoc.print(false, 'Seitendruck Bastei'); // die Druckoption
}
if(sSub =='FRO'){
myDoc.printPreferences.pageRange = '3,59,65,66';
myDoc.print(false, 'Seitendruck Bastei');
}
if(sSub =='FJU'){
myDoc.printPreferences.pageRange = '3,59,65,66';
myDoc.print(false, 'Seitendruck Bastei');
}
if(sSub =='ANG'){
myDoc.printPreferences.pageRange = '3,59,66';
myDoc.print(false, 'Seitendruck Bastei');
}
if(sSub =='BD1'){
myDoc.printPreferences.pageRange = '3,59,65,66';
myDoc.print(false, 'Seitendruck Bastei');
}
if(sSub =='BD2'){
myDoc.printPreferences.pageRange = '3,59,65,66';
myDoc.print(false, 'Seitendruck Bastei');
}
if(sSub =='ABE'){
myDoc.printPreferences.pageRange = '3,59,65,66';
myDoc.print(false, 'Seitendruck Bastei');
}
if(sSub =='JC2'){
myDoc.printPreferences.pageRange = '3,4,65,66';
myDoc.print(false, 'Seitendruck Bastei');
}
if(sSub =='JCC'){
myDoc.printPreferences.pageRange = '3,4,66';
myDoc.print(false, 'Seitendruck Bastei');
}
if(sSub =='LA3'){
myDoc.printPreferences.pageRange = '3,59,65,66';
myDoc.print(false, 'Seitendruck Bastei');
}
if(sSub =='ZAM'){
myDoc.printPreferences.pageRange = '3,33-35,59,65,66';
myDoc.print(false, 'Seitendruck Bastei');
}
if(sSub =='STF'){
myDoc.printPreferences.pageRange = '3,33,34,59,66';
myDoc.print(false, 'Seitendruck Bastei');
}
app.activeDocument.close(SaveOptions.NO);
}


Damit öffne ich jetzt alle 12 Dokumente, drucke nur die entscheidenden Seiten aus, und schließe sie wieder.

Damit fällt jede Woche ein Haufen Arbeit flach.

Ich bin ja so dankbar, das kannst du mir glauben!

In die Tiefen des "Skriptens" bin ich aber noch lange nicht vorgedrungen. Das dauert vielleicht, bis ich was begreife! ;-)

Danke nochmals
Holger Krings


als Antwort auf: [#385714]
(Dieser Beitrag wurde von Krings am 16. Feb 2009, 14:10 geändert)
X