MD,
quindi è un problema di compatibilità tra g2 e g3...
Scusami, ma io non ho ancora mai fatto nè stampa e molto marginalmente pdfwriter (se non per capire se è possibile fare, e come, dei report, e quindi rimandandolo a quando mi servirà nel prossimo futuro).
Mi potresti dare qualche indicazione più specifica su come stampare questo disegno (barcode) con g3, almeno per iniziare.
Ho provato a creare un'istanza dell'oggetto printer nella suddetta sub...
ed ho cambiato la riga incriminata con
ma mi restituisce il medesimo errore... ???
[EDIT]
Chiaramente non è quella la strada giusta... allora ho provato un altro tentativo.
Ho creato un'istanza pubblica dell'oggetto Printer, prn.
Al bottone "STAMPA" ho associato l'evento prn.print
Poi ho scritte le seguenti sub:
Public Sub prn_Begin()
prn.Configure
End
Public Sub prn_Draw()
modCrBcode.PrintBarcode(txtBarcode.Text, Val(txtPosX.text), Val(txtPosY.text), Val(txtHeight.text), Val(txtWidth.text), False) 'questa chiamata genera il barcode...
End
Public Sub prn_End()
prn.Cancel
End
ma non stampa niente...
PS. Anzi, quando chiudo l'eseguibile la stampante carica un foglio, e lo ricaccia senza stampare nulla.
[/EDIT]
[EDIT_2]
Cercando in giro ho trovato un post proprio di LEO sull'argomento, ed un utente ha consigliato questo codice... Io l'ho adattato al mio nella riga della stampa...
Public Sub Button1_Click()
Dim rsult As Boolean
prnter.count = 1
rsult = prnter.Print()
Print "result:" & rsult
End
'------------------------------------
Public Sub prnter_begin()
Print "begin"
End
'------------------------------------
Public Sub prnter_draw()
Print "draw"
Paint.Begin(prnter)
modCrBcode.PrintBarcode(txtBarcode.Text, Val(txtPosX.text), Val(txtPosY.text), Val(txtHeight.text), Val(txtWidth.text), False) ' --> qui c'era un Paint.Text("Ciao", 100, 100)
Paint.End
End
Ma non va neppure così... La stampante carica il foglio, ma lo ricaccia senza stampare nulla.
Ma non va neppure così... La stampante carica il foglio, ma lo ricaccia senza stampare nulla.
Dopo varie prove :hard: , e tenendo conto della frase di fsurfing: "...in linea di massima stampare e come disegnare in una drawing area... (http://www.gambas-it.org/smf/index.php?topic=1960.msg21726#msg21726 (http://www.gambas-it.org/smf/index.php?topic=1960.msg21726#msg21726)), sono riuscito a stampare con Printer così:
Public Sub Button1_Click()
With Printer1
.Configure ' apre la finestra di dialogo per impostare la stampante
.Orientation = 0 ' imposta la modalità di stampa "Verticale" (oppure "Orizzontale")
.Paper = 2 ' imposta il tipo di carta ( 2 = A4)
.FullPage = True
.Print ' <------------ effettua la stampa su foglio !
' .OutputFile = "/tmp/miaStampa.pdf" ' volendo, potrei invece stampare/creare un file .pdf o .ps:
' Però sembra che:
' - funziona se viene posto prima di .Print;
' - ponendolo prima di .Print, quest'ultimo viene escluso, disattivato.
End With
End
Public Sub Printer1_Draw()
With Paint
.Font.Size = 20 ' imposto la dimensione del font
.Rotate(45) ' ruoto il contenuto, che andrò a stampare, degli oggetti di 45°. Se voglio usare i radianti, sarà: .Rotate(Pi(0.25))
.Brush = Paint.Color(Color.DarkBlue) ' imposto il colore del testo a blu scuro. Se voglio usare il codice, sarà in esad. ad esempio: = Paint.Color(&H001F007F); ' in decimale: = Paint.Color(2031743)
.DrawText("Stampa su foglio", 500, 5000, 4000, 4000, 3) ' così mi stampa in mezzo al foglio in alto
.DrawText(TextLabel2.Text, 300, 7000, 4000, 4000, 3) ' stampo anche il contenuto di una TextLabel !
End With
End
@ vuott
la parte di codice che hai riportato nel tuo ultimo post:
With Printer1
.Configure ' apre la finestra di dialogo per impostare la stampante
.Orientation = 0 ' imposta la modalità di stampa "Verticale" (oppure "Orizzontale")
.Paper = 2 ' imposta il tipo di carta ( 2 = A4)
.FullPage = True
.Print ' <------------ effettua la stampa su foglio !
' .OutputFile = "/tmp/miaStampa.pdf" ' volendo, potrei invece stampare/creare un file .pdf o .ps:
' Però sembra che:
' - funziona se viene posto prima di .Print;
' - ponendolo prima di .Print, quest'ultimo viene escluso, disattivato.
End With
è valida solo per G3? Ho cercato in Gambas Documentation e relativamente a .Configure ho ottenuto la risposta
This symbol does not exist in version 2.0.
Peraltro, vorrei capire come calcolare il n° di caratteri che posso scrivere in una riga di foglio A4, solo che Draw, essendo un comando grafico, non ha come unità di misura il carattere, ma ... ??? ... che cosa? E come faccio a capire di quante unita si compone una riga di stampa?