Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-09-2006, 19:57   #1 (permalink)
---
 
Benutzerbild von LeBensch
 
Registriert seit: Jan 2002
Ort: Baden-Baden
Beiträge: 172
Neuigkeiten zum mehrseitigen Druck von dynamischen Textfeldern?

Hallo zusammen,

nachdem ich jetzt so ziemlich alle Seiten durchgelesen habe, die mir die Suche zu den Stichwörtern "dynamisches Textfeld" und "printjob" ausgegeben hat, und ich immer noch nicht schlauer geworden bin, frag ich einfach nochmal

Gibts was neues zum Thema "mehrseitiger Druck eines dynamischen Textfeldes"?

Mein Problem ist, dass ich ein dynamisches Textfeld mit viiiiiiiiel Inhalt füllen und es dann über mehrere Seiten verteilt ausdrucken lassen möchte. Ich kann nur im vorneherein nicht sagen, wieviel Inhalt in das Textfeld geladen wird. Manchmal sind es nur 2 Zeilen, das nächste mal 172, etc. Konkret heißt das also, dass manchmal nur eine Seite ausgedruckt werden muss, ein anderes mal aber mehrere und das ganze soll dynamisch automatisch geregelt werden.

Mein erster Ansatz war, den Inhalt des Textfeldes in zwei For-Schleifen in Häppchen á soundsoviel Zeilen pro Seite zu packen. In etwa so:

PHP-Code:
//Printjob
var Ausgabe_pj = new PrintJob();
var 
AusgabeResult Ausgabe_pj.start();

var 
SeitenZaehler = (alle_zeilen/zeilen_pro_seite); //Wieviele Seiten werden benötigt?

for(i=0;i<(SeitenZaehler+1);i++){

    var 
SZ zeilen_pro_seite*i;  //Das ergibt so ne Art Offset für die zweie Schleife
    
var SeitenEnde SZ+zeilen_pro_seite// Bis wohin soll die zweite Schleife laufen

        
for(g=SZ;g<SeitenEnde;g++){ //
              
TextFeld_txt.htmlText += '<FONT FACE="Arial" SIZE="10">'+diesUndDas+'</FONT>';
              
TextFeld_txt._height += 16//um Platz für den nächsten Eintrag zu schaffen 
//(bin mir jetzt aber grad nicht sicher, ob das nötig ist, 
//wenn man das Textfeld vorher auf multiline gesetzt hat..hmmm
        
}

        
AusgabeResult Ausgabe_pj.addPage ("mcSoUndSo"
                                {
xMin:0xMax:570yMin:0yMax:700}, 
                                {
printAsBitmap:false},
                                 
1);    
}

Ausgabe_pj.pageWidth 550;
Ausgabe_pj.orientation "portrait";        
Ausgabe_pj.send();
delete Ausgabe_pj
Aber so ganz haut das nicht hin. Da krieg ich zwar mehrere Seiten, aber alle fangen bei der ersten Zeile wieder an.

Hat hier jemand schonmal das selbe Problem gehabt und im besten Falle auch gleich ne Lösung dazu parat?

Viele Grüßles
LeBensch
__________________
Es gibt nichts gutes, außer man tut es
--
Wenn man keine Ahnung hat: Einfach mal die Fresse halten!
--
Helga: Hägar, du hörst immer nur was du hören willst. Du bist der perfekte Ignorant!
Hägar: Perfekt? Meinst du wirklich?
--
Die Dinge im Leben sind nicht nur schwarz oder weiß. Sie existieren in einem Kontinuum von Graustufen und diese sind im besten Falle auch noch bunt!
LeBensch ist offline   Mit Zitat antworten
Alt 13-09-2006, 20:17   #2 (permalink)
---
 
Benutzerbild von LeBensch
 
Registriert seit: Jan 2002
Ort: Baden-Baden
Beiträge: 172
HA! Wahnsinn!
Und kaum hab ich meine Frage hier gestellt, hab ich mir sie auch gleich selbst beantwortet

Wen es interessiert und vielleicht hilfts ja dem ein oder anderen. Der Ansatz war gar nicht mal so falsch:
PHP-Code:

//Printjob
var Ausgabe_pj = new PrintJob();
var 
AusgabeResult Ausgabe_pj.start();

var 
SeitenZaehler = (alle_zeilen/zeilen_pro_seite); //Wieviele Seiten werden benötigt?

for(i=0;i<(SeitenZaehler+1);i++){

    var 
SZ zeilen_pro_seite*i;  //Das ergibt so ne Art Offset für die zweite Schleife
    
var SeitenEnde SZ+zeilen_pro_seite// Bis wohin soll die zweite Schleife laufen

        
for(g=SZ;g<SeitenEnde;g++){ //
              
TextFeld_txt.htmlText += '<FONT FACE="Arial" SIZE="10">'+diesUndDas+'</FONT>';
              
TextFeld_txt._height += 16//um Platz für den nächsten Eintrag zu schaffen 
//(bin mir jetzt aber grad nicht sicher, ob das nötig ist, 
//wenn man das Textfeld vorher auf multiline gesetzt hat..hmmm
        
}

        
AusgabeResult Ausgabe_pj.addPage ("mcSoUndSo"
                                {
xMin:0xMax:570yMin:0yMax:700}, 
                                {
printAsBitmap:false},
                                 
1);    
TextFeld_txt.htmlText " ";
}

Ausgabe_pj.pageWidth 550;
Ausgabe_pj.orientation "portrait";        
Ausgabe_pj.send();
delete Ausgabe_pj
War eigentlich ganz einfach. Man muss lediglich, nachdem addPage ausgeführt wurde, den Inhalt des Textfeldes wieder löschen: TextFeld_txt.htmlText = " ";.
Wer sich wundert, woher ich die Werte für "alle_zeilen" und "zeilen_pro_seite" habe: Letzters durch ausprobieren, ersteres konnte ich leicht durch einfaches durchzählen bestimmen, da bei mir jede neue Zeile ein Eintrag in einem Array ist.

Coole Sache..das ist ein tolles Gefühl, wenn man nach stundenlangem Überlegen, dann doch noch auf die Lösung gekommen ist. Ich muss mich selber loben

Grüßles
LeBensch
__________________
Es gibt nichts gutes, außer man tut es
--
Wenn man keine Ahnung hat: Einfach mal die Fresse halten!
--
Helga: Hägar, du hörst immer nur was du hören willst. Du bist der perfekte Ignorant!
Hägar: Perfekt? Meinst du wirklich?
--
Die Dinge im Leben sind nicht nur schwarz oder weiß. Sie existieren in einem Kontinuum von Graustufen und diese sind im besten Falle auch noch bunt!
LeBensch ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:19 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele