Drucken mit printJob- Klasse -> gutes Tutorial?

Hi,

ich muss mich korrigieren: Vollautomatisches Anlegen von identischen Instanzen wird nicht gehen, da Du z.B. bei einem MovieClip nicht herausfinden kannst, von welchem Bibliotheksobjekt er eine Instanz ist (zumindest nicht, dass ich wüsste).

Du wirst also zumindest zum Teil selbst Hand anlegen müssen: Ich würde mir ein Array anlegen, in dem für jede Komponente auf der Bühne Position und Maße der Druckansicht gespeichert sind. Dann kannst Du in der Druckfunktion alle Instanzen mit einer Schleife durchlaufen, Dir die Originalposition merken und die Objekte an die neue Position setzen. Zudem könntest Du für jedes Objekt in dem Array ein Flag anlegen, das bestimmt, ob ein Element in der Druckansicht sichtbar sein soll (z.B. Hintergrundgrafiken, Rahmen etc.). Nach dem Drucken setzt Du die Komponenten dann wieder auf ihre alte Position.

Gruß
.
 
Hallöchen,

inzwischen hab ich mal drauf losprobiert. Ich habe einen Druckbereich festgelegt und das macht er mittlerweile auch richtig.

Mit diesem Code:
PHP:
var my_pj = new PrintJob();
var myResult = my_pj.start();
			
x = _root._xscale;
y = _root._yscale;
			
_root._xscale = 65;
_root._yscale = 65;

myResult = my_pj.addPage("_root",{xMin:150, xMax:999, yMin:101, yMax:750},null,0);
			
my_pj.send();
			
_root._xscale = 100;
_root._yscale = 100;

Soweit so gut. Nun möchte ich aber noch sowas wie eine Kopf- und eine Fusszeile hinzufügen, also etwas das über und etwas das unter diesem Bereich mitgedruckt wird.
Wie könnte man das realisieren? Weil ich ja jetzt einen Druckbereich festgelegt hab. Kannich trotzdem irgendwie was oberhalb und unterhalb platzieren, zB 2 MovieClips?

Gruß
 
Hi,

nein, ich glaube nicht. Du musst den Druckbereich oben und unten entsprechend vergrößern und den Inhalt so positionieren, dass etwas Platz für Header und Footer bleibt.

Gruß
.
 
Guten Morgen,

also ich habe den Druckbereich dementsprechend wieder vergrössert und platziere meinen Druckheader undurchsichtig und setz ihn zum Drucken sichtbar, so dass er das andere überlagert...
Gerade arbeite ich am Footer, mal sehen ob es da auch so gut klappt...

Gruß
 
Hallöchen,

also ich habe jetzt den Druckbereich festgelegt, aber quasi nur links und rechts was "weggeschnitten". Dann hab ich Mcs erstellt, die unsichtbar ober- und unterhalb meines Inhalts liegen mit alpha = 0.
Wenn man nun auf drucken klickt, werden die MCs auf sichtbar gesetzt und positioniert und dann wieder unsichtbar gesetzt.

Somit war das mit dem Drucken wirklich kein Hexenwerk! Man muss einfach etwas rumprobieren. Das mit dem skalieren war noch etwas tricky, mit dem rausfinden wieviel Prozent passen und wie die Inhalte von Header und Footer trotzdem sichtbar sind und nicht abgeschnitten werden...
Ich hoffe das Ding läuft jetzt weiter so gut funktionierend...

Danke für die Hilfe!

Gruß

Hier nochmal mein Drucken Codeausschnitt:
PHP:
//Variablen zum Skalieren
var x;
var y;
meinButton.onPress = function(){
   //neue Klasse PrintJob
   var my_pj = new PrintJob();
   var myResult = my_pj.start();
			
   //MCs für Header und Footer
   _root.attachMovie("print_Top", "print_Top", 5000);
   _root["print_Top"]._alpha = 100;
   _root["print_Top"]._x = 100;

   _root.attachMovie("print_Bottom", "print_Bottom", 5001);
   _root["print_Bottom"]._alpha = 100;
   _root["print_Bottom"]._x = 0;
   _root["print_Bottom"]._y = 1225;
			
   //Hier wird dann der Film auf 65% seiner Grösse skaliert
   x = _root._xscale;
   y = _root._yscale;
			
   _root._xscale = 65;
   _root._yscale = 65;

   //Hier wird der Druckbereich festgelegt
   myResult = my_pj.addPage("_root",{xMin:100, xMax:777, yMin:0, yMax:1300},null,0);
			
   //Druckauftrag senden
   my_pj.send();
			
   //Film wieder auf 100% skalieren
   _root._xscale = 100;
   _root._yscale = 100;
   _root["print_Top"]._alpha = 0;
   _root["print_Bottom"]._alpha = 0;
	
} //end drucken
 

Neue Beiträge

Zurück