Per quanto riguarda la stampa sto utilizzando questa tecnica:
il form2 (quello invisibile) è una copia esatta, per controlli e picture, al form1 (visibile). Questo perchè i controlli (label, frame, picture, ecc.) sul form2 sono molti e quindi mi è più facile aggiornare il form2 copiando i control del form1.
Non utilizzo la stampa con il metodo printer, ma con form2.printform (che è più comodo perché non devi stare a settare tutte le posizioni dei textbox, delle labels, dei frame e delle picturebox, non ti pare?!).
Per quanto rihuarda il resize del form2 avevo pensato che con PaintPicture in fase di stampa si può riscalare l'immagine del form2 copiata in clipboard alle dimensioni del foglio (ma questo metodo mi pare di capire che on si può fare, ossia funziona ma solo se copio la form2 nella clipboard solo dopo averlo reso visibile, e questo non mi piace).
Avevo pensato ad un'altra tecnica: rendere il form riscalabile con tutti i suoi controlli e poi ridimensionarlo al foglio di stampa. Ma ho ancora dei problemi: non riesco a riscalare correttamente al foglio. Per il resize del formavevo scaricato 'clResize' da qui:
------
http://www.it-lang-vb.net/archivio.asp?pag=36&info=ye
------
e questo funziona bene: è un modulo di classe (clsResize) che, quando si riscala 'manualmente' un form, modifica tutti i controlli presenti sullo stesso (eccetto i testi, probabilmente per il motivo che dici tu); con clResize avevo pensato di riscalare da programma il form e poi stamparlo: ma non riesco a fargli assumere le dimensioni del foglio che utilizzo per la stampa (mi si modificano le dimensioni in modo strano e non riesco ancora a gestirle, forse ci devo lavorare ancora un po' su!).