[GastForen Programme Print/Bildbearbeitung Adobe InDesign alle geöffneten Dokumente drucken

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

alle geöffneten Dokumente drucken

Son-Goku1984
Beiträge gesamt: 104

30. Mär 2011, 08:43
Beitrag # 1 von 19
Bewertung:
(8998 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

gibt es aus InDesign CS5 die Möglichkeit alle geöffneten Dokumente mit einem Befehl / Script zu drucken?

Viele Grüße
Goku
X

alle geöffneten Dokumente drucken

Martin Fischer
  
Beiträge gesamt: 12775

30. Mär 2011, 09:07
Beitrag # 2 von 19
Beitrag ID: #467952
Bewertung:
(8988 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Goku,

theoretisch wäre das per Skript möglich.
Aber mit welchen Einstellungen?

Für Dich mit weniger Aufwand verbunden bzw. kostengünstiger wäre eventuell eine Lösung über die Buchfunktion. Befinden sich die betroffenen Dokumente alle in einem Ordner/Verzeichnis? Dann könnten sie schnell in einem Buch zusammengefasst werden.

Beim Druck des Buchs werden alle in ihm enthaltenen Dokumente gedruckt.


als Antwort auf: [#467950]

alle geöffneten Dokumente drucken

Son-Goku1984
Beiträge gesamt: 104

30. Mär 2011, 09:50
Beitrag # 3 von 19
Beitrag ID: #467954
Bewertung:
(8975 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

die Dokumente befinden sich in einem Redaktionssystem, d.h. wenn ich diese für unseren Umbruch ausdrucke, öffne ich die Beiträge über das Redaktionssystem und sage jedem einzelnen Dokument das es ausgedruckt werden soll.

Aus diesem Grund kommt die Buchfunktion leider nicht in Frage, da hierbei alle Beiträge von Redaktionssystem gelöst werden.

Ich dachte mehr an eine Funktion "alle geöffneten Dokumente drucken"

Hat jemand eine Idee?

Gruß
Goku


als Antwort auf: [#467952]

alle geöffneten Dokumente drucken

Martin Fischer
  
Beiträge gesamt: 12775

30. Mär 2011, 10:21
Beitrag # 4 von 19
Beitrag ID: #467956
Bewertung:
(8960 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Ich dachte mehr an eine Funktion "alle geöffneten Dokumente drucken"


Ohne Angabe von bestimmten Druckeinstellungen geht das so:
Code
app.documents.everyItem().print(); 


Und zudem ohne Druckdialog:
Code
app.documents.everyItem().print( false ); 


Aber das gleicht einem Lotteriespiel: u.U. stellt sich während dem Druckvorgang heraus, dass die falsche Druckvorgabe oder der falsche Drucker verwendet wurde.


als Antwort auf: [#467954]
(Dieser Beitrag wurde von Martin Fischer am 30. Mär 2011, 12:05 geändert)

alle geöffneten Dokumente drucken

klasinger
Beiträge gesamt: 1668

30. Mär 2011, 11:02
Beitrag # 5 von 19
Beitrag ID: #467957
Bewertung:
(8933 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

genau aus dem Grund der versch. Anforderungen, kann es per Script schwierig werden – wenn es aber immer nur ein und die selbe Einstellung ist, ginge es.
Wenn es versch. Anforderungen gibt (HighRes-, LowRes-PDF, spezifische Namesngebung,...) und es etwas kosten darf, kannst du dir ja mal MadeToPrint von callas angucken (http://www.axaio.com/doku.php/de:products). Da gibt auch Editionen für Redaktionssysteme, die bspw. in Abhängigkeit des Status einer Seite PDFs o.Ä. generieren.


als Antwort auf: [#467954]

alle geöffneten Dokumente drucken

Yves Apel
Beiträge gesamt: 1724

30. Mär 2011, 11:47
Beitrag # 6 von 19
Beitrag ID: #467964
Bewertung:
(8909 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

und wenn es etwas kosten darf aber in kleinerem Budget als Made2Print liegen muss, geht auch BatchOutput von Zevrix. Das hat bei mir schon locker einiges an Zeit eingespart.


als Antwort auf: [#467957]

alle geöffneten Dokumente drucken

andih
Beiträge gesamt: 16

30. Mär 2011, 14:02
Beitrag # 7 von 19
Beitrag ID: #467975
Bewertung:
(8875 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

wir benutzen seit langem eine (Apple-)Script-Lösung.

Und das Problem mit den verschiedenen Druckeinstellungen ist nicht wirklich eines.
Wenn man vor dem "Drucke alle Seiten" eine Abfrage des gewünschten Druckstils hinterlegt (über eine ausgelesene Liste der vorhanden Stile pro User) hat mach so auch die Möglichkeit alle geöffneten Seiten kontrolliert mit dem gewünschten Stil (Druckvorgaben) auszudrucken.

Es ist auch möglich weiter Bearbeitungen vorzunehmen:
Seite speichern (ja - nein)
Seite schließen (ja - nein) usw.

Gruß
Andi


als Antwort auf: [#467950]

alle geöffneten Dokumente drucken

Martin Fischer
  
Beiträge gesamt: 12775

30. Mär 2011, 14:35
Beitrag # 8 von 19
Beitrag ID: #467979
Bewertung:
(8864 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Andi,

Antwort auf: Und das Problem mit den verschiedenen Druckeinstellungen ist nicht wirklich eines.


Das wurde auch nicht behauptet.
Es wurde darauf hingewiesen, dass die Unterlassung der Angabe einer Druckvorgabe zum Problem werden könnte.

Aber das lässt sich freilich abfangen.


Antwort auf: wir benutzen seit langem eine (Apple-)Script-Lösung.


Ist diese Lösung frei?


als Antwort auf: [#467975]

alle geöffneten Dokumente drucken

andih
Beiträge gesamt: 16

30. Mär 2011, 15:12
Beitrag # 9 von 19
Beitrag ID: #467984
Bewertung:
(8858 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

im Großen und Ganzen ist es (nun) frei. Ich musste ein paar Änderungen vornehmen bzw. ein paar Dinge entfernen.
Ich denke der ein oder andere kann auch noch ein wenig daran schrauben (die progressbar entfernen oder das automatische Schließen der Seite nach Drucken deaktivieren usw.).

Code für CS3 - siehe unten.
Anpassungen für CS5 waren nach meinen Recherchen nicht nötig - sieht man von den tell-blöcken ab -> "Adobe InDesign CS5".

Wenn was nicht geht helfe ich gerne.

Gruß
Andi



Code
--	----------------------------------------------------------------------------------------------------------------- 

-- Drucken aus Liste
-- (c) Andi Höfer - redblue - 19.03.2009

-- -----------------------------------------------------------------------------------------------------------------



-- Variabeln definieren

global myDruck
global myOrdner
global myVersion
global mySpeichern
global myAktiveSeite
set myAktiveSeite to 0
set myVersion to "Scriptversion -> 06.08.2009 | v.4.4"

-- Variabeln für Statusbar
set anzahlIterationen to 50
set breiteInPixeln to 200
set nameFenster to "Seiten werden gedruckt...."


-- user darf dialog sehen
tell application "Adobe InDesign CS3"
set user interaction level of script preferences to interact with all
end tell


tell application "Adobe InDesign CS3"
set myDokzaehler to {count document}
set mySeiten to {count document}
set mySchleifen to {count document}
set myNameSeiten to name of documents as list
set myAnzahlDrucker to count printer presets

if myAnzahlDrucker ≤ 1 then display dialog "Es gibt nur einen Druckstil! Ein bißchen wenig nicht?"
if myDokzaehler < 1 then
display dialog "Du hast kein Dokument geöffnet"
error number -128
else
set myDruckStileListe to name of printer presets as list

-- dialog aufrufen
my myDialog(myDruckStileListe)

--
-- überprüfen der seiten ob verknüpfte bilder fehler
--


--
-- Fehlende Links sammeln und als Liste ausgeben
--

set myUebersichtLinks to {} as list
repeat with myCheck from 1 to mySeiten
set myCheckDoc to item myCheck of myNameSeiten
tell document myCheckDoc
set myMissingLinks to (links whose status is link missing)
repeat with myMissingLink in myMissingLinks
activate
«event K2 show» myMissingLink
set myFileName to name of myMissingLink
set myUebersichtLinks to myUebersichtLinks & "Bild: " & myFileName & " von Seite: " & myCheckDoc & return as list
end repeat
end tell
end repeat

--
-- wenn keine Bilder fehlen dann setze myDrucken auf 1
--

if length of items of myUebersichtLinks < 1 then

set MyDrucken to 1

else
display dialog "Fehlende Bildverknüpfung(en) gefunden!" & return & return & "Dadurch dauert der Druckvorgang länger und das Ergebnis ist u. U. fehlerhaft" & return & return & myUebersichtLinks buttons {"Abbrechen", "Drucken"} default button 1
if the button returned of the result is "Drucken" then
set MyDrucken to 1
else
set MyDrucken to 0
end if
end if


--
-- wenn drucken ja - dann drucke
--

if MyDrucken is 1 then

-- progressbar anfang

set anzahlIterationen to mySchleifen
set breiteInPixeln to 450
my initProgress(anzahlIterationen, breiteInPixeln, nameFenster)
set mySeitenZaehler to 0


-- wenn nur die aktive Seite gedruckt werden soll dann setze Anzahl der Schleifen auf 1
if myAktiveSeite = 1 then set mySchleifen to 1


repeat mySchleifen times

set mySeitenZaehler to mySeitenZaehler + 1

tell application "Adobe InDesign CS3"

set openDoc to name of active document
set actDoc to active document



set myPrintPreferences to print preferences of active document
tell myPrintPreferences
set active printer preset to myDruck

-- wenn option <weisse seiten Drucken> auf aus steht - dann mach sie an
-- dies unterdrückt einen Fehler beim Drucken

set myBlank to active printer preset
tell myBlank
set myPage to print blank pages
if myPage is false then
set print blank pages to true
end if
end tell
end tell

print actDoc using myDruck without print dialog


if mySpeichern = 1 then
if saved of active document is false then
save actDoc with dialog
close active document
else
close actDoc saving yes
end if
else
close actDoc saving no
end if


end tell


set myDokzaehler to (myDokzaehler - 1)
set mySchleifen to (mySchleifen - 1)

my updateProgress(mySeitenZaehler)

end repeat

my killProgress()

set mySchleifen to 0

-- Anzahl der gedrucken Seiten auf 1 stellen wenn nur eine Seite gedruckt wurde
if myAktiveSeite = 1 then set mySeiten to 1


if mySchleifen = 0 then
tell application "Finder"
activate
display dialog "Druckstatus: " & mySeiten & " Seite(n) gedruckt!"
end tell
tell application "Adobe InDesign CS3"
activate
end tell
end if


end if

end if

end tell


on myDialog(myDruckStileListe)
tell application "Adobe InDesign CS3"

set myListe to make dialog with properties {name:"Drucken in Reihe"}
tell myListe
tell (make dialog column)
tell (make dialog row)
tell (make border panel)
tell (make dialog column)


tell (make dialog row)
tell (make dialog column)
make static text with properties {static label:"Druckstil"}
end tell

-- Druckstile aus liste in dropdownmenu bringen
tell (make dialog column)
set myDruckWahl to make dropdown with properties {string list:myDruckStileListe, selected index:0}
end tell
end tell



tell (make dialog row)

-- Nur aktive Seite Drucken ja/nein
tell (make dialog column)
set myAktiveWahl to make checkbox control with properties {static label:"Nur aktive Seite drucken", checked state:false}
end tell
end tell



tell (make dialog row)

-- Speichern der Seite ja/nein
tell (make dialog column)
set mySpeichernWahl to make checkbox control with properties {static label:"Seiten speichern", checked state:false}
end tell
end tell


end tell
end tell
end tell

-- script version abfragen
tell (make dialog row)
tell (make dialog column)
tell (make dialog row)
make static text with properties {static label:myVersion}
end tell
end tell
end tell
end tell
end tell

set myResult to show myListe

if myResult is true then



-- überprüfen ob Seiten gespeichert werden sollen oder nicht
if checked state of mySpeichernWahl = true then
set mySpeichern to 1
else
set mySpeichern to 0
end if


-- Überprüfen ob alle Seiten oder nur eine gedruckt werden sollen
-- wenn nur eine dann Status 1 - wenn alle Status 0

if checked state of myAktiveWahl = true then
set myAktiveSeite to 1
else
set myAktiveSeite to 0
end if




set myDruck to (item ((selected index of myDruckWahl) + 1)) of myDruckStileListe

destroy myListe


-- zur überprüfung
-- display dialog "Ausgewählt: " & myDruck & return & "Ordnerstatus: " & myOrdner


else
error number -128
destroy myListe
end if

end tell
end myDialog



on initProgress(maxValue, pWidth, nameFenster)
tell application "Adobe InDesign CS3"
set myJS to "#targetengine \"session\"" & return
set myJS to myJS & "var myProgressPanel;" & return
set myJS to myJS & "var myIncrement = " & maxValue & " / " & pWidth & "; " & return
set myJS to myJS & "myProgressPanel = myCreateProgressPanel(" & maxValue & ", " & pWidth & ");" & return
set myJS to myJS & "myProgressPanel.show();" & return
set myJS to myJS & "function myCreateProgressPanel(myMaximumValue, myProgressBarWidth){" & return
set myJS to myJS & "myProgressPanel = new Window('window', '" & nameFenster & "');" & return
set myJS to myJS & "with(myProgressPanel){" & return
set myJS to myJS & "myProgressPanel.myProgressBar = add('progressbar', [12, 12, myProgressBarWidth, 24], 0, myMaximumValue);" & return
set myJS to myJS & "}" & return
set myJS to myJS & "return myProgressPanel;" & return
set myJS to myJS & "}" & return
do script myJS language javascript
end tell
end initProgress

on updateProgress(aValue)
tell application "Adobe InDesign CS3"
set myJS to "#targetengine \"session\"" & return
set myJS to myJS & "myProgressPanel.myProgressBar.value = "
set myJS to myJS & aValue & ";" & return
-- set myJS to myJS & aValue & "/myIncrement;" & return
do script myJS language javascript
end tell
end updateProgress

on killProgress()
tell application "Adobe InDesign CS3"
set myJS to "#targetengine \"session\"" & return
set myJS to myJS & "myProgressPanel.myProgressBar.value = 0;" & return
set myJS to myJS & "myProgressPanel.close();" & return
do script myJS language javascript
end tell
end killProgress



als Antwort auf: [#467979]

alle geöffneten Dokumente drucken

Martin Fischer
  
Beiträge gesamt: 12775

30. Mär 2011, 15:14
Beitrag # 10 von 19
Beitrag ID: #467985
Bewertung:
(8849 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke für den umfangreichen Code.


als Antwort auf: [#467984]

alle geöffneten Dokumente drucken

Drienko
Beiträge gesamt: 4818

7. Jul 2011, 11:11
Beitrag # 11 von 19
Beitrag ID: #475378
Bewertung:
(8482 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo

Frage eines Scriptlaien.

Hat jemand schon den Code in ein fertiges Script gepackt?


als Antwort auf: [#467985]

alle geöffneten Dokumente drucken

kurtnau
Beiträge gesamt: 2170

7. Jul 2011, 15:43
Beitrag # 12 von 19
Beitrag ID: #475439
Bewertung:
(8438 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo drienko,

den text kopieren und in einen texteditor laden (z.b. den normalen editor aus win).
datei abspeichern und *.txt in *.js umbenenne. das script dann in den scriptordner legen.

gruß kurt


als Antwort auf: [#475378]

alle geöffneten Dokumente drucken

Martin Fischer
  
Beiträge gesamt: 12775

7. Jul 2011, 15:58
Beitrag # 13 von 19
Beitrag ID: #475444
Bewertung:
(8431 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kurt,

so einfach geht das nicht.
Es handelt sich nicht um ein JavaScript, sondern um ein AppleScript und das will im ScriptEditor von Apple abgespeichert werden (nicht als 'Nur Text').

Das wollte ich vorhin zwar schnell erledigen und für Bernd dabei auch gleich an CS4 anpassen. Aber es sind noch ein paar fehlerhafte Kommandoumsetzungen im Skript enthalten, die ich spontan nicht korrigieren konnte.
Code
if myAnzahlDrucker &#8804; 1 
...
«event K2 show» myMissingLink


Da geht besser einer ran, der noch regelmäßig applescriptet.


@ Bernd: Reicht das einfache JavaScript nicht?
Code
app.documents.everyItem().print( false ); 



als Antwort auf: [#475439]
(Dieser Beitrag wurde von Martin Fischer am 7. Jul 2011, 16:01 geändert)

alle geöffneten Dokumente drucken

Drienko
Beiträge gesamt: 4818

7. Jul 2011, 16:04
Beitrag # 14 von 19
Beitrag ID: #475445
Bewertung:
(8422 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin

Klar reicht mir das einfache Script, danke.


als Antwort auf: [#475444]

alle geöffneten Dokumente drucken

Martin Fischer
  
Beiträge gesamt: 12775

7. Jul 2011, 16:34
Beitrag # 15 von 19
Beitrag ID: #475452
Bewertung:
(8399 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Bernd,

hier mit vorgeschaltetem Dialog zur Auswahl einer Druckvorgabe.

Code
// printEveryOpenDoc.jsx 

//DESCRIPTION:Druckt alle geöffneten Dokumente mit einer ausgewählten Druckvorgabe
//AUTHOR:Martin Fischer
//DATE:7.7.2011

var printer_preset = get_printerpreset();
app.documents.everyItem().print( false, printer_preset );

function get_printerpreset()
{
var all_printerpresets = app.printerPresets.everyItem().name;
var _dialog = app.dialogs.add({name:"Drucken"});
with(_dialog.dialogColumns.add())
{
with(dialogRows.add())
{
with(dialogColumns.add())
{
staticTexts.add({staticLabel:"Druckvorgabe: "});
}
with(dialogColumns.add())
{
var ppr_dropdown = dropdowns.add({stringList:all_printerpresets, selectedIndex:all_printerpresets.length-1});
}
}
}
var r = _dialog.show();
if(r == true)
{
var ppres = all_printerpresets[ppr_dropdown.selectedIndex];
_dialog.destroy();
}
else
{
_dialog.destroy();
exit();
}
return ppres;
}



als Antwort auf: [#475445]
X