Batchjob zum Druck meherer Images gleichzeitig (print();)

Mik3e

Erfahrenes Mitglied
Guten Abend zusammen,

Ich brauche eine JS Methode, die es mir erlaubt, mehrere Objekte an den Druckerspooler zu übergeben.

Ich habe 5 Images (verschiedene Formate), die auf einmal gedruckt werden müssen. Allerdings soll er mir jedes Bild auf eine eigene Seite drucken, da es sich bei diesen Bildern um Rechnungen im Format DIN A4 handelt.

Gibt es eine Methode mir der sich das machen lässt? Habe mit print() noch nicht wirklich Erfahrungen.

Und ich brauche zusätzlich noch die Möglichkeit, das Bild ohne den Browser-Krims Krams drumrum zu drucken (URL etc.). Im Browser kann man das ja deaktivieren, müsste also auch per JS irgendwie funtkionieren.

Danke für alle Tipps & LG
Mike
 
Mik3e hat gesagt.:
Im Browser kann man das ja deaktivieren, müsste also auch per JS irgendwie funtkionieren.
Wieso müsste es dann auch per JS gehen? Gibt es irgentwo ein ehernes Coumputer-Gesetzt, das alles, was man in Menüs einsetelllen kann auch von Scriptsprachen aus ansteuerbar ist?

Was du vorhast geht mit JavaScript meines wissens nicht du könntest höchstens die Bilder in einem PopUp öffnen lassen und dann ausdrucken. Vielleicht gibt es auch etwas Brauchbares für JScript (die Microsoftvariante) also per ActiveX oder so, aber das würde dann wieder nur mit dem IE hinauen. Benutz doch einfach print().
 
Nein, das geht nicht (ActiveX).
Die Formulare sind öffentlich zugänglich und daher muss es mit einem Standard-Teil gemacht werden. Eine andere Variante wäre ein Java Applet, dass setzt aber wieder die VM voraus und führt wiederum zu Problemen...

Muss mir wohl was anderes überlegen, nur was ist die Frage...

Danke jedenfalls,
LG
Mike
 
Ich verwende etwas ähnliches folgendermaßen

Erzeuge dynamisch ein HTML-Dokument, auf der alle gewünschten Images hintereinander folgen. Füge zwischen je zwei "Seiten" einen Seitenumbruch z.B. so ein:

<p style="page-break-after:always">.</p>

Dieses <p> -Tag bewirkt nach Ausgabe des '.' einen Seitenumbruch ein. Statt des Punktes kannst Du natürlich auch beliebiegen anderen (sinnvollen) Text schreiben. Nur ohne Text wollte es mit Mozilla nicht gelingen.

Da ich es allerdings nur intern verwende, habe ich es bisher nur mit Mozilla getestet. Für den IE müßtest Du testen, ob es .

In dieses erzeugte Dokument könntesst Du dann noch als onLoad ein
<body onLoad="window.print();">
absetzen

Hoffe das hilft etwas weiter
vop
 
Hi!

Danke, das klingt interessant...
Werde das jedenfalls versuchen...

Für Dich als Tipp:
Versuch es im <p> Tag mit einem &nbsp;
Ich denke das müsste mozzila als Zeichen erkennen und es wird nicht irgendwo am Seitenende (oder anfang) ein Punkt gedruckt..
(Nur eine Theorie, hab es nicht versucht)

Danke jedenfalls & LG
Mike
 
Danke für den Tipp mit &nbsp;
Bei mir steht an dieser Stelle derzeit ein copyright-Hinweis, aber troztdem Danke.

Lass hören, wenn Du es hinbekommen hast.
vop
 
Ich geb Dir jedenfalls bescheid...
Ich stehe noch vor einem anderen Problem, vielleicht hast Du da auch eine Idee:

Habe eine "normale" Tabelle (mit einer Menge Style Parameter):
HTML:
<table id="1" height="50" width="100" border="0" cellpadding="0" cellspacing="0" OnDblClick="objectmenu(1,'include_dynamictext_edit_10.php');" onmousedown="setobject(this);" OnMouseOver="window.status='xypos'; showborder(this);" onMouseOut="window.status='';hideborder(this);" style="cursor: hand; position:absolute; top:50; left:50; z-index:1; filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0); background-color:#FFFFFF; color:#000000; font-family:Arial; font-size:12px; font-weight:normal; font-style:normal; text-align:left; vertical-align: middle"<tr><td>DAS IST DER STANDARDINHALT</td></tr></table>
In Kurzform:
HTML:
<table id="1"><tr><td>DAS IST DER STANDARDINHALT</td></tr></table>

Nun gibt es eine Funktion, die den Inhalt der Tabelle dynamisch ändern soll (hier nur der Inhalt der Funktion):
HTML:
opener.parent.ticketlayoutdesigner_main.document.getElementById(1).innerHTML='<tr><td>ALTEN INHALT DURCH DIESEN ERSETZEN</td></tr>';

Interessanterweise führ diese Funktion immer zu einem unbekannten Laufzeitfehler...
Hast du eine Idee, wo hier der "Hund begraben" sein könnte?
Danke & LG
Mike

P.S.: Lass dich nicht durch die IE-lastigen Attribute täusche, das ist ein Formulardesigner im Backend, der an den IE gebunden ist (weil es sowas wie Rotation sonst bei keinem Browser gibt. Ist hier aber sowieso zweitrangig)
 
Scheint mit innerText zu klappen (zumindest ohne Laufzeitfehler). Allerdings bekomme ich im Moment noch keine ausgabe (tabelleninhalt ist leer).
 
Danzu ein Zitat von dir selber:
Mik3e hat gesagt.:
Im Anschluss an folgenden Thread (der mir bei meinem Problem leider nicht wirklich weiterhilft) http://www.tutorials.de/tutorials143457.html&highlight=innerText
Und jetzt schau dir mal genau an, was SvenMintel da in dem Thread, den du sogar selber (!) gelinkt hast geschreiben hat:
Sven Mintel hat gesagt.:
JO, es geht auf jeden Fall mit innerHTML....einzige Ausnahme sind im IE Tabellen.... die Elemente <tr> und <td> kannst du nicht mit innerHTML erzeugen, da musst du bei Bedarf die Methoden insertRow() und insertCell() verwenden.

innerText hingegen kann das nicht....und ist im Gegensatz zu innerHTML IE-only.
Warum machst du das dann trotzdem?

Versuchs so:
HTML:
<table><tr><td id="1">DAS IST DER STANDARDINHALT</td></tr></table>
      document.getElementById('1').innerHTML='ALTEN INHALT DURCH DIESEN ERSETZEN';

In so ziemlich allen anderen Browsern bis auf den IE funktioniert übriges dein erster Versuch. Ansonten versuch's mal mit dem DOM und dem childNode-Array.
 
Zuletzt bearbeitet:
Zurück