1)
sì, purtroppo devo confermarti che in Gambas 2 (come in Gambas 1.9.x) la stampa è attualmente disponibile solo usando le Qt per cui se per la GUI usi il componente gb.gtp o il componente gb.gui ottieni quell'errore. Anch'io ho lo stesso problema.
2)
Io modifico l'immagine con questo codice:
' Gambas class file
PRIVATE Pagine AS Integer
PRIVATE Immagine AS NEW Image
PRIVATE ImmagineMod AS NEW Image
PUBLIC SUB _new()
DIM imageWidth AS Integer
DIM imageHeight AS Integer
Immagine = Image.Load(Application.Path & "/grafica/logo-bn.gif")
imageWidth = ((Immagine.Width * Printer.Resolution) / Desktop.Resolution)
imageHeight = ((Immagine.Height * Printer.Resolution) / Desktop.Resolution)
ImmagineMod = Immagine.Stretch(imageWidth, imageHeight, TRUE)
END
PUBLIC FUNCTION Stampa(Video AS Boolean, OPTIONAL NumPagine AS Integer, OPTIONAL Mensile AS Boolean) AS Boolean
DIM Comodo, Comodo2 AS String
DIM Descrizioni AS String[6]
DIM Aiuto AS Integer
DIM hStampa AS Process
DIM Aiuto2, Stampe AS Integer
DIM PagineStampate AS Integer
DIM NomFile AS String
IF NumPagine <> 0 THEN
Stampe = NumPagine
ELSE
Stampe = 3
END IF
Printer.Copies = 1
Printer.Name = ""
Printer.File = Application.Path & "/stampa.ps"
Draw.Begin(Printer)
WAIT
FOR PagineStampate = 1 TO Stampe
draw.Foreground = Color.Black
draw.Background = color.White
draw.LineWidth = 4
draw.Font.Size = 8
'TESTATA
draw.Rect(300, 300, 2200, 1000)
draw.Image(ImmagineMod, 320, 340)
(...)
Non so se il tuo problema sia simile al mio ma io mi sono accorto che se prima non adatto l'immagine alla risoluzione della stampante non ottengo nulla.
Quindi nell'evento _new della mia classe di stampa fattura carico e strecho l'immagine e la assegno ad un nuovo oggeto Image, che poi "do in pasto" alla proprietà Image dell'oggetto Draw.