Ciao, sto cercado di capire come funziona la stampa con la classe PdfWriter e seguendo l'esempio messo su Guida ai report dopo aver creato la sotto classe come nell'esempio e creando la funzione data
PUBLIC SUB Data()
ME.AddPage()
ME.Bookmark("Page - 1")
ME.SetFont("Arial", " ", 10)
ME.Cell(20, 6, "No", TRUE, 1, "C", FALSE)
END
poi in un form con un pulsante ho messo questo
PUBLIC SUB Button1_Click()
DIM hStampa AS Process
DIM pdf AS FTest
RANDOMIZE
pdf = NEW FTest("Portrait", "mm", "A4")
pdf.Open()
pdf.AliasNbPages()
pdf.Data
pdf.Output(User.Home & "/report.pdf", FALSE) ' qua viene creato il file pdf
hStampa = SHELL ("evince " & User.Home & "/report.pdf")
END
ho il seguente errore quando compilo Unknow identifer: Compress alla linea 3143 in PdfWriter
Poi se cambio il codice così
PUBLIC SUB Button1_Click()
DIM hStampa AS Process
DIM pdf AS FTest
RANDOMIZE
pdf = NEW FTest("Portrait", "mm", "A4")
pdf.Open()
pdf.AliasNbPages()
pdf.Data
pdf.Output(User.Home & "/report.pdf", FALSE) ' qua viene creato il file pdf
' hStampa = SHELL ("evince " & User.Home & "/report.pdf")
hStampa = SHELL ("lpr " & User.Home "/report.pdf") WAIT " ' qua lo mandiamo in stampa"
END
non capisco perchè in automatico mi da le " finali al commento ' qua lo mandiamo in stampa", comunque la cosa che non capisco e perchè mi da un altro diverso errore quando lo compilo che è questo Missing ')' alla linea 16 in TestPdf :hatecomputer:
Devi abilitare il componente gb.compress
Ok gb.compress l'ho attivato compila ma quando lo eseguo al click della anteprima PUBLIC SUB stampa()
DIM hStampa AS Process
DIM pdf AS FTest
RANDOMIZE
pdf = NEW FTest("Portrait", "mm", "A4")
mi da un altro errore Too many argumentes
Mentre se compilo senza anteprima di stampa hStampa = SHELL ("lpr " & User.Home "/report.pdf") WAIT ' qua lo mandiamo in stampa
mi da l'errore Missing ')' alla linea 13 in Ftest.class ( sembra che richiede un' altra Parentesi tonda ma dove la vuole se il comando è già chiuso nelle due parentesi? :hatecomputer:
Puoi postare il modulo Ftest?
Eccolo
PUBLIC SUB stampa()
DIM hStampa AS Process
DIM pdf AS FTest
RANDOMIZE
pdf = NEW FTest("Portrait", "mm", "A4")
pdf.Open()
pdf.AliasNbPages()
pdf.Data
pdf.Output(User.Home & "/report.pdf", FALSE) ' qua viene creato il file pdf
hStampa = SHELL ("lpr " & User.Home "/report.pdf") WAIT ' qua lo mandiamo in stampa
' hStampa = SHELL ("acroread " & User.Home & "/report.pdf")
END
PUBLIC SUB Button1_Click()
stampa
END
Metto pure la sottoclasse ' Gambas class file
INHERITS PdfWriter
PUBLIC SUB Header()
ME.SetX(0)
ME.SetY(5)
ME.SetFont("Arial", "BI", 20)
ME.Cell(160, 6, "Rubrica", FALSE, 0, "L", FALSE)
ME.SetLineWidth(0.2)
ME.Line(10, 17, 200, 17)
END
PUBLIC SUB _free()
END
'Page footer
PUBLIC SUB Footer()
END
PUBLIC SUB Data()
END
hStampa = SHELL ("lpr " & User.Home "/report.pdf") WAIT ' qua lo mandiamo in stampa
è sbagliata de mettere una &
hStampa = SHELL ("lpr " & User.Home & "/report.pdf") WAIT ' qua lo mandiamo in stampa
Ok ho messo la & al suo posto, compila ma quando cerco di mandare in stampa alla riga 8 ed esattamente qua pdf = NEW FTest("Portrait", "mm", "A4")
mi da questo errore
Too many argumentes.
Io sto seguendo l'esempio che c' è sul WIKI Guida al Report. Evidentemente chi ha creato l'esempio ha commesso qualche svista. Per capire come funziona questa classe PdfWrite. Puoi postarmi qualche esempio, per capire come diavolo mandare in stampa qualcosa. visto che nell'esempio che c'è sulla classe va tutto in stampa sul monitor e non sulla stampate.