Sgrufolando qua e la' ho trovato un po di info:
http://support.microsoft.com/kb/230743
http://pubs.logicalexpressions.com/Pub0009/LPMArticle.asp?ID=116
http://wordtips.vitalnews.com/Pages/T0461_Duplex_by_Default.html
l'ultimo dice di inserire dei codici di escape PCL nella testata o piede del documento per fare la stampa Duplex (fronte/retro)
I primi due invece hanno un approccio piu' brutale ma preciso al problema. Chiamano un po di API sparse qua e la' per poter impostare i parametri della stampante.
Ho pensato di convertire in vb.net il codice della Kb, poi ho preso quello piu' esteso e completo dell'altro articolo.
Ho creato una classe apposita (PrinterHelper).
Quasi tutto a posto se non che utilizzano delle Undocumented functions di VB6.
VarPtr che restituisce un puntatore (una word, se non ho capito male) ad una variabile.
Ho trovato anche che e' sostituibile con la classe GCHandle
(system.runtime.interopservices) ma siamo molto oltre le colonne d'ercole per me...
Posto che yDevModeData e' un array di bytes, la riga
VarPtr(yDevModeData(0))
come la "traduco" in vb.net ???
Questo:
Dim x As System.Runtime.InteropServices.GCHandle = System.Runtime.InteropServices.GCHandle.ToIntPtr(yDevModeData(0))
non va...
Grazie.
max.