Parametri di stampa

Moderator: Enrico Maria Giordano

Parametri di stampa

Postby Silvio » Wed Feb 15, 2006 10:54 am

Se io selezionassi un tipo di pagina per la stampa ad esempio DMPAPER 3 ( A4)
c'è un metodo o una funzione che mi restituisca il tipo di carta selezionata e i parametri della larghezza, lunghezza, margine destri, margine sinistro, superiore, inferiore ?

Grazie
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Re: Parametri di stampa

Postby Enrico Maria Giordano » Wed Feb 15, 2006 1:03 pm

Silvio wrote:Se io selezionassi un tipo di pagina per la stampa ad esempio DMPAPER 3 ( A4)
c'è un metodo o una funzione che mi restituisca il tipo di carta selezionata e i parametri della larghezza, lunghezza, margine destri, margine sinistro, superiore, inferiore ?

Grazie


Per quanto riguarda le dimensioni del foglio prova il metodo TPrinter:GetPhySize() oppure la funzione PrnGetSize(). Per i margini prova le variabili TPrinter:nXOffset (margine sinistro dell'area stampabile) e TPrinter:nYOffset (margine superiore dell'area stampabile) oppure la funzione PrnOffset().

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8243
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Silvio » Wed Feb 15, 2006 3:58 pm

si anche un altra volta mi ha detto così ....
Ma si ha il caso che io non sono sulla classe Tprinter e quindi io il foglio di carta non c'è l'ho lo devo creare ...
Spiego meglio
io ho una dialog :
Nuovo formato -> si apre una dialog con un combobox con i tipi di carta
ON CHANGE -> mi deve restituire la larghezza e la lunghezza .... poi su 4 get io posso chiedere all'utente i margini ( destro sinistro,sup,inf)

Spero che abbia capito...
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Postby Enrico Maria Giordano » Wed Feb 15, 2006 4:21 pm

Le funzioni PrnGetSize() e PrnOffset() funzionano anche prima che venga definita una stampante.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8243
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Silvio » Wed Feb 15, 2006 4:38 pm

ok provo
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Postby Silvio » Wed Feb 15, 2006 4:42 pm

PrnGetSize()

ho visto che bisogna definire hdc quindi non va bene
io non ho definito nessuna stampa
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Postby Enrico Maria Giordano » Wed Feb 15, 2006 4:52 pm

Ops, è vero. Però, pensandoci bene, non mi pare possibile definire la carta prima di definire una stampante. Il tipo di carta infatti, come confermano le API utilizzate dalle funzioni PrnGetSize() e PrnOffset(), è una caratteristica della specifica stampante utilizzata.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8243
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Silvio » Wed Feb 15, 2006 4:53 pm

io devo mettere in u combo tutti i formati che in quel momento la mia stampante supporta
c'è un metodo veloce per esempio

Code: Select all  Expand view

   LOCAL aLbx :=  dammi i formati()
   LOCAL nLbx := 1
   LOCAL lOk  := .F.
   LOCAL oDlg, oLbx, i

   DEFINE DIALOG oDlg RESOURCE "Formati" FONT ::oFont

   REDEFINE LISTBOX oLbx VAR nLbx ITEMS aLbx ID 101 OF oDlg

   REDEFINE BUTTON ID 201 ACTION ( lOk := .T., oDlg:End() )
   REDEFINE BUTTON ID 202 ACTION ( oDlg:End() )

   ACTIVATE DIALOG oDlg CENTER


  if lOk
      ? aLbx[ nLbx ]
   endif

RETURN NIL


grazie
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Postby Enrico Maria Giordano » Wed Feb 15, 2006 4:58 pm

No, perché, appunto, non hai ancora definito qual'è la "tua stampante" e quindi il sistema non può sapere a quale ti riferisci. Comunque anche definendo prima la stampante non ti saprei dire lo stesso come fare a (né se sia possibile) tirare fuori i formati di carta supportati.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8243
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Silvio » Wed Feb 15, 2006 4:59 pm

Ops, è vero. Però, pensandoci bene, non mi pare possibile definire la carta prima di definire una stampante. Il tipo di carta infatti, come confermano le API utilizzate dalle funzioni PrnGetSize() e PrnOffset(), è una caratteristica della specifica stampante utilizzata.



HAi ragione ma per esempio ho visto in ER che lui fa definire la pagina senza che nessuna stampante sia stata creata in windows cioè funzia anchese non c'ènessna stampante installata sul pc o on line
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Postby Silvio » Wed Feb 15, 2006 5:01 pm

No, perché, appunto, non hai ancora definito qual'è la "tua stampante" e quindi il sistema non può sapere a quale ti riferisci. Comunque anche definendo prima la stampante non ti saprei dire lo stesso come fare a (né se sia possibile) tirare fuori i formati di carta supportati.



Bene secondo te dovrei definire hdc diciamo che è oprn quindi oprn:prngetsize()
e per avere i formati in un array ?
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Postby Enrico Maria Giordano » Wed Feb 15, 2006 5:07 pm

Silvio wrote:HAi ragione ma per esempio ho visto in ER che lui fa definire la pagina senza che nessuna stampante sia stata creata in windows cioè funzia anchese non c'ènessna stampante installata sul pc o on line


Probabilmente riempie un array con *tutti* i principali formati disponibili (che trovi, ad esempio, in printer.prg) indipendentemente dalla stampante. Può essere?

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8243
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Enrico Maria Giordano » Wed Feb 15, 2006 5:09 pm

Silvio wrote:Bene secondo te dovrei definire hdc diciamo che è oprn quindi oprn:prngetsize() e per avere i formati in un array ?


Purtroppo, come ti ho già detto, non lo so.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8243
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Silvio » Wed Feb 15, 2006 5:20 pm

si ho provato a mettere in un array tutti i tipi che ho trovato in print ma poi selezionandoli non saprei come fare a restituirmi i valori senza definire oprn (hdc)
probabilmente sarà possibile farlo in c...
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Postby Enrico Maria Giordano » Wed Feb 15, 2006 5:37 pm

I valori sono costanti e non dipendono dalla stampante. Basta che riempi, ad esempio, un array parallelo a quello dei nomi dei formati ma contenente i valori corrispondenti e poi peschi da quest'ultimo il valore relativo all'elemento selezionato.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8243
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Next

Return to All products support

Who is online

Users browsing this forum: No registered users and 5 guests