Gambas-it
  Blog     Wiki     Download     Il resto del Pinguino  
23 Maggio 2013, 04:10:45 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizie: Nuova grafica e funzionalità per l'homepage di www.gambas-it.org
 
   Home   Guida Ricerca Utenti Accedi Registrati  
Pagine: [1] 2   Vai giù
  Stampa  
Autore Discussione: [Risolto] pdfwriter+evince  (Letto 843 volte)
andy60
Senatore Gambero
******
Scollegato Scollegato

Messaggi: 1.228



Mostra profilo WWW
« inserito:: 05 Settembre 2010, 08:37:00 »

Posso ridimensionare la finestra di evince? non trovo su internet istruzioni su evince con linea di comando? hard hard thx


Codice:
evince -w
« Ultima modifica: 05 Settembre 2010, 10:12:52 da andy60 » Registrato

Andy60
linuxforce
Gambas 3.1.1 - Gridbox 2.99.174 - Fedora 16
dex
Gran Maestro dei Gamberi
*****
Scollegato Scollegato

Messaggi: 628



Mostra profilo
« Risposta #1 inserito:: 05 Settembre 2010, 20:46:07 »

ciao andy60

non uso evince in quanto mi dava errori su una stampante oki.

con pdfwriter non sei obbligato ad usare per forza evince, puoi usare qualsiasi altro visualizzatore, io uso acroread della adobe, ma anche quello di kde (ora mi sfugge il nome) funziona alla grande.
Registrato
andy60
Senatore Gambero
******
Scollegato Scollegato

Messaggi: 1.228



Mostra profilo WWW
« Risposta #2 inserito:: 05 Settembre 2010, 21:48:48 »

ciao andy60

non uso evince in quanto mi dava errori su una stampante oki.

con pdfwriter non sei obbligato ad usare per forza evince, puoi usare qualsiasi altro visualizzatore, io uso acroread della adobe, ma anche quello di kde (ora mi sfugge il nome) funziona alla grande.

non riesco a stampare il codice contenuto in PUBLIC FUNCTION Data(), uso il comando cell....ma non compare nulla, boh Pianto
Registrato

Andy60
linuxforce
Gambas 3.1.1 - Gridbox 2.99.174 - Fedora 16
Golia
Senatore Gambero
******
Scollegato Scollegato

Messaggi: 1.065



Mostra profilo
« Risposta #3 inserito:: 05 Settembre 2010, 22:11:40 »

Prova scrivere, dentro la funzione data una cosa semplice come questa
Codice: gambas
ME.Cell(10, 5, "Tuo testo'", TRUE, 0, "C", FALSE)

Al limite posta un pò di codice che proviamo ad aiutarti
Registrato
dex
Gran Maestro dei Gamberi
*****
Scollegato Scollegato

Messaggi: 628



Mostra profilo
« Risposta #4 inserito:: 05 Settembre 2010, 22:37:05 »

sicuramente c'è un errore sul codice

dipende dall'errore:
se ti da errore vedi il codice errore che forse si riesce a capire
se invece non ti da nessun errore e il visualizzatore vede una pagina bianca hai sbagliato le coordinate x e y

in alternativa come ha detto golia posta il codice che si risolve
Registrato
andy60
Senatore Gambero
******
Scollegato Scollegato

Messaggi: 1.228



Mostra profilo WWW
« Risposta #5 inserito:: 05 Settembre 2010, 22:40:03 »

sicuramente c'è un errore sul codice

dipende dall'errore:
se ti da errore vedi il codice errore che forse si riesce a capire
se invece non ti da nessun errore e il visualizzatore vede una pagina bianca hai sbagliato le coordinate x e y

in alternativa come ha detto golia posta il codice che si risolve


mi piacerebbe capire con un test dove in Data() ci sia solo 'hello world' all'inizio della pagina..ma non riesco

Codice:
' Gambas class file

INHERITS PdfWriter


PUBLIC SUB Header()
 
 
 
END

PUBLIC FUNCTION Data()
ME.AddPage
ME.SetFont("Arial", "B", 10)
ME.Cell(40, 10, "Hello world")
END

PUBLIC FUNCTION Footer()
 
 
 
END
Registrato

Andy60
linuxforce
Gambas 3.1.1 - Gridbox 2.99.174 - Fedora 16
Golia
Senatore Gambero
******
Scollegato Scollegato

Messaggi: 1.065



Mostra profilo
« Risposta #6 inserito:: 05 Settembre 2010, 22:53:23 »

Sbagli a scrivere cell
scrivi così
ME.Cell(40, 10, "Hello World'", TRUE, 0, "C", FALSE)
Registrato
andy60
Senatore Gambero
******
Scollegato Scollegato

Messaggi: 1.228



Mostra profilo WWW
« Risposta #7 inserito:: 05 Settembre 2010, 22:55:50 »

non va questo è il codice:

Codice:
' Gambas class file

INHERITS PdfWriter


PUBLIC SUB Header()
 ME.SetX(0)
  ME.SetY(5)
  ME.SetFont("Arial", "B", 10)
  ME.Cell(160, 6, "Rubrica", FALSE, 0, "L", FALSE)
  ME.SetLineWidth(0.2)     
  ME.Line(10, 10, 200, 10)
 
 
END

PUBLIC FUNCTION Data()
ME.AddPage
ME.SetFont("Arial", "B", 10)
ME.Cell(40, 10, "Hello World", TRUE, 0, "C", FALSE)
END

PUBLIC FUNCTION Footer()
 
 
 
END
Registrato

Andy60
linuxforce
Gambas 3.1.1 - Gridbox 2.99.174 - Fedora 16
dex
Gran Maestro dei Gamberi
*****
Scollegato Scollegato

Messaggi: 628



Mostra profilo
« Risposta #8 inserito:: 05 Settembre 2010, 23:04:36 »

modifica in questo modo:

in PUBLIC FUNCTION Data()
dopo ME.AddPage

iserisci

Codice:
ME.SetXY(25, 20)

Edit: Anche in PUBLIC SUB Header() le coordinate sono sbagliate prova a mettere  ME.SetXY(15, 10)

« Ultima modifica: 05 Settembre 2010, 23:08:14 da dex » Registrato
Golia
Senatore Gambero
******
Scollegato Scollegato

Messaggi: 1.065



Mostra profilo
« Risposta #9 inserito:: 05 Settembre 2010, 23:11:48 »

Ho fatto una prova con il codice che hai scritto e funziona.
Ho copiato il tuo codice dentro la classe "Class1"

poi ho lanciato la stampa così:
Codice: gambas
PUBLIC SUB stampaprova()
     DIM hStampa AS Process
   DIM pdf AS Class1
  RANDOMIZE
 pdf = NEW Class1("Portrait", "mm", "A4")
 pdf.Open()
 pdf.AliasNbPages()
 pdf.Data
 pdf.Output(User.Home & "/report.pdf", FALSE)

' hStampa = SHELL ("Okular " & User.Home & "/report.pdf")

END
Registrato
dex
Gran Maestro dei Gamberi
*****
Scollegato Scollegato

Messaggi: 628



Mostra profilo
« Risposta #10 inserito:: 05 Settembre 2010, 23:17:19 »

in pdfwriter le coordinate per le celle sono per l'asse x:
°) impostate di default a 10, ma le puoi cambiare quando vuoi con  ME.SetX(15), attenzione pero che dopo un me.(ln) si resettano a 10 per la cella successiva.
°) per l'asse y partono dal punto che tu hai impostato dalla cella precedente, nel tuo caso non avendo una cella precedente devi impostare l'asse, e con me(ln) vanno a capo utilizzando il valore y inserito nella cella precedente

Citazione
ME.Cell(40, valore y, "Hello World", TRUE, 0, "C", FALSE)

per le linee e gli oggetti il discorso è diverso, usano i valori che tu inserisci e non si spostano se sopra ci sono altri oggetti o celle.
Registrato
andy60
Senatore Gambero
******
Scollegato Scollegato

Messaggi: 1.228



Mostra profilo WWW
« Risposta #11 inserito:: 05 Settembre 2010, 23:30:40 »

@golia

funge, ma che fatica x scrivere na cosa...mi sa che prendo l'esempio che trovo su g2 printer
Registrato

Andy60
linuxforce
Gambas 3.1.1 - Gridbox 2.99.174 - Fedora 16
Golia
Senatore Gambero
******
Scollegato Scollegato

Messaggi: 1.065



Mostra profilo
« Risposta #12 inserito:: 05 Settembre 2010, 23:47:53 »

Sono contento che ci sei riuscito Sorriso
Vedi te, a parere mio adesso che hai capito il meccanismo è tutto facile.

P.S. uno di questi giorni devo guardare il tuo programma  Sorriso
Ma non a livello codice, ma a livello di utilità Occhiolino
Registrato
andy60
Senatore Gambero
******
Scollegato Scollegato

Messaggi: 1.228



Mostra profilo WWW
« Risposta #13 inserito:: 07 Settembre 2010, 18:07:18 »

Sono contento che ci sei riuscito Sorriso
Vedi te, a parere mio adesso che hai capito il meccanismo è tutto facile.

P.S. uno di questi giorni devo guardare il tuo programma  Sorriso
Ma non a livello codice, ma a livello di utilità Occhiolino


a tua disposizione per qualunque info sull'utilizzo della dieta a zona.

Ritorno un attimo sulla Function Data(): la mie necessità è fare 3 semplici tipo di report
1) tabella di 8 colonne che prende i dati da un recordset
2)    "          1                            "
3)  altra tabella uguale alla seconda

Ho visto su wiki che si parla di multicell, devo usare quella funzione?

thx
Registrato

Andy60
linuxforce
Gambas 3.1.1 - Gridbox 2.99.174 - Fedora 16
Golia
Senatore Gambero
******
Scollegato Scollegato

Messaggi: 1.065



Mostra profilo
« Risposta #14 inserito:: 07 Settembre 2010, 22:45:31 »

Per fare 3 tipi di report, io farei 3 classi, le puoi clonare e cambiare solo la griglia.
Se nella griglia avrai dati che ci stanno nello spazio che imposti (cioè senza andare a capo) puoi usare semplicemente Me.Cell
Ecco l'esempio per 8 colonne:
Codice: gambas
          FOR EACH MyRS ' MyRS = recordeset
                 ME.Cell(10, 5, MyRS!val1, TRUE, 0, "C", FALSE)
                 ME.Cell(21, 5, MyRS!val2, TRUE, 0, "C", FALSE)
                 ME.Cell(22, 5, MyRS!val3, TRUE, 0, "C", FALSE)
                 ME.Cell(23, 5, MyRS!val4, TRUE, 0, "C", FALSE)
                 ME.Cell(24, 5, MyRS!val5, TRUE, 0, "C", FALSE)
                 ME.Cell(25, 5, MyRS!val6, TRUE, 0, "C", FALSE)
                 ME.Cell(26, 5, MyRS!val7, TRUE, 0, "C", FALSE)
                 ME.Cell(27, 5, MyRS!val8, TRUE, 0, "C", FALSE)
                 ME.Ln()
         NEXT

Se hai dati che non ci stanno nella cella, quindi devi andare a capo, devi usare Multiriga (Attenzione questa funzione non è presente nel PdfWriter che trovi nella sezione download, ma dagli esempi che erano stati fatti quì http://www.gambas-it.org/smf/index.php?action=dlattach;topic=1056.0;attach=630. Inoltre nella prossima versione che MD9327 metterà a disposizione cambierà nome)
Ecco come fare con Multiriga:
Codice: gambas
          FOR EACH MyRS ' MyRS = recordeset
                 ME.MultiRiga(10, 5, MyRS!val1, FALSE, "L", FALSE)
                 ME.MultiRiga(21, 5, MyRS!val2, FALSE, "L", FALSE)
                 ME.MultiRiga(22, 5, MyRS!val3, FALSE, "L", FALSE)
                 ME.MultiRiga(23, 5, MyRS!val4, FALSE, "L", FALSE)
                 ME.MultiRiga(24, 5, MyRS!val5, FALSE, "L", FALSE)
                 ME.MultiRiga(25, 5, MyRS!val6, FALSE, "L", FALSE)
                 ME.MultiRiga(26, 5, MyRS!val7, FALSE, "L", FALSE)
                 ME.MultiRiga(27, 5, MyRS!val8, FALSE, "L", FALSE)

                 ME.MultiRect(10, 21, 21, 23, 24, 25, 26, 27, 0, 0 ,0) ' questo serve per disegnare la griglia, i valori sono gli stessi che hai utilizzato per il valore x di multiriga
                 ME.Lnm() ' attenzione usare questo solo per multiriga
         NEXT

Per una colonna soltanto puoi usare "multicell" (và anche a capo)
Codice: gambas
          FOR EACH MyRS ' MyRS = recordeset
                 ME.multicell(120, 6, MyRS!val1, TRUE, "L", FALSE)
                 ME.Ln()
         NEXT
Registrato
Pagine: [1] 2   Vai su
  Stampa  
 
Vai a:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2006-2009, Simple Machines XHTML 1.0 valido! CSS valido!
Se vuoi sostenere Gambas-it.org puoi fare una piccola donazione utilizzando PayPal: