Flash: orientamento stampa

Di: alice33 | 26/09/2020 18:40:18
Perchè la stampa in orizzontale non viene impostata?
Ho messo questo code nel frame.
_root.stampante.onRelease = function() {
var stampare = new PrintJob();
if (stampare.start()) {
stampare.addPage(_root, {xMin:0, xMax:700, yMin:0, yMax:502});
stampare.orientation("landscape");
stampare.send();
}
delete stampare;
}

Risposte



Ciao alice33,
non puoi stampare in orizzontale con uno script di Flash, la proprietà orientation dell'oggetto PrintJob è di sola lettura e dipende dalle impostazioni della stampante, non la puoi impostare da Flash.

Di: Professore | 26/09/2020 18:40:18


Peccato....
Approfitto di questo filo per vedere se trovo la soluzione ad un altro problema di stampa, che mi pare misterioso:
Ho creato un clip a forma di fumetto, che è draggabile attraverso la sua "codina" e in cui si può scrivere. Ho fatto poi in modo (un modo un po' macchinoso...) che il fumetto si ridimensionasse a seconda della quantità di testo inserito, usando scale9 (novità di Flash8).
Il fumetto viene attachato su un livello della root(_root.sfondovignetta).
Funziona tutto, però a volte al momento della stampa una parte del testo contenuto nel fumetto diventa invisibile (in basso, e solo una parte che può variare da volta a volta, come se il ridimensionamento che si vede a monitor non fosse "intercettato" dalla stampante, o perlomeno non tutto. A monitor invece si vede!
Questo non succede se il fumetto viene attachato sul livello 0 della root (ho provato con un fla a parte)
Il fumetto è composto da un bacKballon (in cui ho usato scale9),a cui ho aggiunto la codina che permette il drag&drop. Con questo ho creato un mc fumetto, a cui ho aggiunto (altro livello) la casella di testo di input(testoTXT).
Con un'istanza dell'mc fumetto ho creato il mio mc ballon e gli ho assegnato questo code:
// imposto la formattazione del testo
var my_fmt:TextFormat = new TextFormat();
my_fmt.bold = true;
my_fmt.color = 000000;
my_fmt.font = "Comics";
my_fmt.size = 20;
//------------------------------------
//imposto il ridimensionamento del ballon
var ballonMC:MovieClip = this.fumetto_mc;
var testoTXT:TextField = ballonMC.testo_txt;
testoTXT.border = false;
testoTXT.text = "SCRIVI QUI";
var maxW:Number = testoTXT._width;
var maxH:Number = testoTXT._height;
var maxWballon:Number = backBallon._width;
var maxHballon:Number = backBallon._height;
testoTXT.autoSize = "left";
testoTXT.onChanged = function() {
if (this._width>maxW) {
ballonMC.backBallon._width = testoTXT._width+70;
testoTXT.wordWrap = true;
if (this._height>maxH) {
ballonMC.backBallon._height = testoTXT._height+120;
}
}
};
// richiamo la formattazione
testoTXT.setTextFormat(my_fmt);
Da cosa può dipendere?
Grazie per la pazienza...

Di: alice33 | 26/09/2020 18:40:18


Ciao alice,
ci sono due tentativi che dovresti fare per cercare di risolvere il problema:
1. Se il baloon viene stampato correttamente e il problema è solo il testo, assicurati che la casella di testo input abbia incorporato tutti i caratteri che le servono, infatti se la casella ha una impostazione del tipo "usa caratteri dispositivo", le font che vedi a schermo e le font che vanno in stampa sono diverse.
2. Prova a impostare la proprietà stampare.printAsBitmap = true, in questo modo verrà mandata in stampa un'immagine alla stessa risoluzione del monitor, forse apparirà “pixellata” ma le dimensioni dovrebbero essere esatte.
La prima soluzione dovrebbe funzionare, la seconda soluzione richiede l'uso del Player versione 9, in quanto la proprietà printAsBitmap è una novità di ActionScript 3.
Se nessuna delle due soluzioni funzionasse posta un link da cui scaricare il sorgente per dargli un'occhiata.

Di: Professore | 26/09/2020 18:41:18


Grazie delle risposte sempre celeri e della disponibilità!!
Ho provato entrambi i modi e non funzionano. Anzi, se incorporo i caratteri mi sparisce la scritta "scrivi qui" e non riesco più neppure ad inserire testo...
Ho riprovato con il ballon sulla root, senza altri livelli sovrapposti ed ho scoperto che ora ha lo stesso problema ( possibile che lo faccia a volte sì a volte no?)
Io penso che dipenda dal code che fa ridimensionare la casella di testo insieme al ballon, interagendo con scale9, perchè:
1)Taglia solo l'ultima riga o pezzo di riga scritta, mentre il ballon viene visualizzato intero nell'anteprima di stampa. Taglia il testo solo quando è andato a capo, (non succede con una riga singola)e soprattutto se supera le 3 righe
2) se dopo aver visto in anteprima che il testo è tagliato ne tolgo una parte, viene comunque tagliata l'ultima parte rimasta
3)Il codice per il ridimensionamento automatico del ballon è molto empirico ed è fatto "ad occhio", infatti non è preciso, avanza sempre una parte di ballon vuoto sia a destra che in basso. Non sono riuscita a stabilire proporzioni fisse adatte all'uopo, e questo nemmeno per impostare le guide in scale9
4) Fatto stranissimo: nell'anteprima di stampa a volte il testo riempie correttamente il ballon,senza spazi inutilizzati, cosa che purtroppo non riesco a far succedere a video
Posto il link al fla... Un GRAZIE enorme
http://mio.discoremoto.alice.it/byme

Di: alice33 | 26/09/2020 18:41:18


Ciao alice,
non ho ancora la soluzione definitiva e credo che mi ci vorrà un po' per trovarla.
Intanto sono riuscito a farlo funzionare, se il tuo progetto ha una scadenza a breve usa questo sistema, intanto appena avrò un po' più di tempo proverò a trovare l'origine di questo bug.
Dal file che ho scaricato ho rimosso questo rigo di codice:
embedFonts=true;
che ho trovato dentro il movieclip “ballon1”.
Poi nella casella di testo ho incorporato i font.
A questo punto la stampa esce uguale al video.
Naturalmente si tratta di una “non soluzione”, questo Forum è fatto per trovare delle vere soluzioni, ma in mancanza di altre idee per oggi ci accontentiamo, sperando che la notte ci porti consiglio.
A domani.

Di: Professore | 26/09/2020 18:41:18


ho fatto come hai detto (embedd fonts l'avevo aggiunto all'ultimo per vedere se così poteva funzionare)e sono sempre più perplessa:
Al primo tentativo dopo aver incorporato i font ho di nuovo visto sparire la scritta "scrivi qui" ed era impossibile immettere testo
Ho rimesso tutto come prima ed ho selezionato per caso l'icona Grassetto. Ho re-incorporato i font e potevo scrivere ma NON stampava tutto
Ho chiuso la finestra di controllo e l'ho riavviata e da quel momento in poi ha funzionato!!
Non capisco ma mi adeguo.... diceva un tale
Però certo che la faccenda è davvero misteriosa!
Comunque la stampa ( ho ripetuto il tentativo una decina di volte)non sempre è uguale al video, nel senso che a volte nell'anteprima di stampa il testo è "spostato", cioè allineato, su righe diverse( se le lettere a capo sono poche e nel ballon c'è spazio le riporta sulle riga precedente). Che stranezze! Sarebbe meglio lo facesse anche a video...Potrebbe dipendere dal fatto che non è previsto il tasto invio per andare a capo?
Grazie 1000 davvero, mi hai risolto un grande problema, anche se il bug non è stato scoperto!!!!

Di: alice33 | 26/09/2020 18:41:18