externes SWF drucken (MX 04)

Jedimaster

Mitglied
Hallo Leute!

Ich habe eben versucht mittels
Code:
print("scrollpane","bmax");
den Inhalt meines Scrollpanes auszudrucken..

..das funktioniert auch, allerdings möchte ich das gesamte SWF, welches in den Scrollpane geladen wurde zum Drucker schicken - und nicht nur den sichtbaren Bereich, denn mein externes SWF ist größer als das Scrollpane..

Hat jemand eine Idee, wie ich dies bewerkstelligen könnte?

Gruß,
JediMaster
 
Hi,

normalerweise würde ich sagen, gib der print-Methode nicht den ScrollPane, sondern dessen Inhalt als Ziel an (ScrollPane.content). Da print aber scheinbar einen Instanznamen als String übergeben haben möchte, ist fraglich, ob das funktioniert.

Wenn Du mit MX2004 arbeitest, würde ich Dir die PrintJob-Klasse ans Herz legen, die mehr Freiheiten bietet.

Ansonsten würde ich das Druckziel noch ein zweites mal unsichtbar instanzieren und diese Instanz dann drucken (habs ausprobiert: MovieClips, deren Eigenschaft ._visible auf false gestellt ist, werden dennoch gedruckt).

Gruß

.
 
Hallo Datic!

Danke für den Tip!
Das mit dem Drucken will leider nicht so klappen.. also hab ich mal ein Test-File zum Posten vorbereitet.

Ich möchte die "test.swf" aus meiner Anwendung heraus ausdrucken.

Dazu gibt es zunächst einen Button "load & print"

Code:
on (press) {
	loadMovieNum("test.swf",5);
	printAsBitmapNum(5,"bmax"); 
}

Die "test.swf" wird in die Anwendung geladen und angezeigt, jedoch leider nicht in Originalgröße (Sie geht über die Höhe von 768 Pixeln hinaus.)
Mit einem Klick auf den "in _root laden"-Button, kann man sich anschauen, wie groß die "test.swf" tatsächlich ist.. so möchte ich sie auch auf eine A4-Seite skaliert ausdrucken.
Nur leider erscheint die "test.swf" nicht im Ausdruck :confused:

Der Button "unload" macht dann folgendes:

Code:
on (press) {
	unloadMovieNum(5);
}


Habt Ihr eine Idee was nicht stimmt?


Gruß,
JediMaster
 

Anhänge

Hi,

Du musst auch warten, bis der Film geladen ist. Außerdem führt loadMovieNum etc. m.E. immer zu Problemen. Probiers mal so (bei mir klappts):
PHP:
on (press) {
	container.loadMovie("test.swf", "bmax");
	_root.onEnterFrame = function() {
		if (container.getBytesLoaded() == container.getBytesTotal()) {
			printAsBitmap(container, "bmax");
			delete this.onEnterFrame;
		}
	
	}
}
Den Film kannst Du entweder direkt nach dem Drucken oder mit der Unload-Schaltfläche mit der Aktion
PHP:
container.unloadMovie();
entladen.

Gruß

.
 
Hallo!

Danke, es funktioniert! Es lag sicher bei daran, dass das SWF noch nicht geladen war.

Ein Problem gibt es aber trotzdem noch.. ich kann den MC "container" verschieben bzw. transformieren wie ich will.. außer eine Verzerrung bekomme ich keine Größenskalierung auf eine A4-Seite hin. Habs auch mit einem Container im Container versucht, aber da sehe ich gar nichts. Mein Ausdruck sieht so aus, dass der Inhalt des SWFs links oben direkt am Rand der A4-Seite liegt bzw. es gibt eigentlich gar keinen Rand. Noch dazu ist es viel zu klein- bei anderen SWFs macht die Breite macht nur ca. ein 1/3 der Seitenbreite aus.
Unten mal ein Screenshot davon..

Gibt es auch dafür eine Lösung

Gruß,
Sage
 

Anhänge

  • seite.jpg
    seite.jpg
    5,3 KB · Aufrufe: 72
Zuletzt bearbeitet:
Hi,

verwende lieber die PrintJob-Klasse (ist ausführlich in der Referenz beschrieben). Skalierungen mit print() habe ich jetzt nicht ausprobiert, aber beim PrintJob gehts auf jeden Fall.
Um einen Movieclip vor dem Ausdrucken zu skalieren, legen Sie die Eigenschaften MovieClip._xscale und MovieClip._yscale vor dem Aufruf dieser Methode fest
ggf. musst Du warten, bis sich der eingeladene Clip skalieren lässt. Das geht einfach mit einer onEnterFrame, die z.B. die Eigenschaft "´_height" abfragt.

Um den Clip auf der Seite zu positionieren, kannst Du ihn (wie Du es schon engedeutet hast) in einen Hilfs-MC packen und seine Position leicht ändern. Gedruckt wird dann der umgebende MC.

Gruß

.
 
Zurück