FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index All products support Parametri di stampa
Posts: 3107
Joined: Fri Oct 07, 2005 06:28 PM
Parametri di stampa
Posted: 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
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: Parametri di stampa
Posted: Wed Feb 15, 2006 01: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
Posts: 3107
Joined: Fri Oct 07, 2005 06:28 PM
Parametri di stampa
Posted: Wed Feb 15, 2006 03: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
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Parametri di stampa
Posted: Wed Feb 15, 2006 04:21 PM

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

EMG

Posts: 3107
Joined: Fri Oct 07, 2005 06:28 PM
Parametri di stampa
Posted: Wed Feb 15, 2006 04:38 PM

ok provo

Best Regards, Saludos



Falconi Silvio
Posts: 3107
Joined: Fri Oct 07, 2005 06:28 PM
Parametri di stampa
Posted: Wed Feb 15, 2006 04:42 PM

PrnGetSize()

ho visto che bisogna definire hdc quindi non va bene
io non ho definito nessuna stampa

Best Regards, Saludos



Falconi Silvio
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Parametri di stampa
Posted: Wed Feb 15, 2006 04: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

Posts: 3107
Joined: Fri Oct 07, 2005 06:28 PM
Parametri di stampa
Posted: Wed Feb 15, 2006 04: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

   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
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Parametri di stampa
Posted: Wed Feb 15, 2006 04: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

Posts: 3107
Joined: Fri Oct 07, 2005 06:28 PM
Parametri di stampa
Posted: Wed Feb 15, 2006 04: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
Posts: 3107
Joined: Fri Oct 07, 2005 06:28 PM
Parametri di stampa
Posted: Wed Feb 15, 2006 05: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
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Parametri di stampa
Posted: Wed Feb 15, 2006 05: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
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Parametri di stampa
Posted: Wed Feb 15, 2006 05: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
Posts: 3107
Joined: Fri Oct 07, 2005 06:28 PM
Parametri di stampa
Posted: Wed Feb 15, 2006 05: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
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Parametri di stampa
Posted: Wed Feb 15, 2006 05: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