Page 2 of 2

PostPosted: Wed Feb 15, 2006 5:49 pm
by Silvio
ho preparato questo test
Code: Select all  Expand view
#include "fivewin.ch"

function main()

   local oDlg, cCombo := 9, oBtn

local aItems :={ "DMPAPER_LETTER       ",  ;
"DMPAPER_LETTERSMALL  ",  ;
"DMPAPER_TABLOID      ",  ;
"DMPAPER_LEDGER       ",  ;
"DMPAPER_LEGAL        ",  ;
"DMPAPER_STATEMENT    ",  ;
"DMPAPER_EXECUTIVE    ",  ;
"DMPAPER_A3           ",  ;
"DMPAPER_A4           ",  ;
"DMPAPER_A4SMALL      ",  ;
"DMPAPER_A5           ",  ;
"DMPAPER_B4           ",  ;
"DMPAPER_B5           ",  ;
"DMPAPER_FOLIO        ",  ;
"DMPAPER_QUARTO       ",  ;
"DMPAPER_10X14        ",  ;
"DMPAPER_11X17        ",  ;
"DMPAPER_NOTE         ",  ;
"DMPAPER_ENV_9        ",  ;
"DMPAPER_ENV_10       ",  ;
"DMPAPER_ENV_11       ",  ;
"DMPAPER_ENV_12       ",  ;
"DMPAPER_ENV_14       ",  ;
"DMPAPER_CSHEET       ",  ;
"DMPAPER_DSHEET       ",  ;
"DMPAPER_ESHEET       ",  ;
"DMPAPER_ENV_DL       ",  ;
"DMPAPER_ENV_C5       ",  ;
"DMPAPER_ENV_C3       ",  ;
"DMPAPER_ENV_C4       ",  ;
"DMPAPER_ENV_C6       ",  ;
"DMPAPER_ENV_C65      ",  ;
"DMPAPER_ENV_B4       ",  ;
"DMPAPER_ENV_B5       ",  ;
"DMPAPER_ENV_B6       ",  ;
"DMPAPER_ENV_ITALY    ",  ;
"DMPAPER_ENV_MONARCH  ",  ;
"DMPAPER_ENV_PERSONAL ",  ;
"DMPAPER_FANFOLD_US   ",  ;
"DMPAPER_FANFOLD_STD_GERMAN",  ;
"DMPAPER_FANFOLD_LGL_GERMAN "}


   DEFINE DIALOG oDlg FROM 2, 2 TO 18, 60 TITLE "Selezione formati di stampa" ;
      STYLE nOr( DS_MODALFRAME, WS_POPUP, WS_CAPTION, WS_SYSMENU, 4 )


   @ 2, 2 COMBOBOX cCombo ITEMS aItems SIZE 200, 100 ON CHANGE PrnSetPage( nAT )



   @ 3,  4 BUTTON "&Ok" OF oDlg SIZE 40, 12
   @ 3, 12 BUTTON oBtn PROMPT "&Cancel" OF oDlg SIZE 40, 12 ;
      ACTION ( MsgInfo( NaT ), lExit := .t., oDlg:End() )


   ACTIVATE DIALOG oDlg CENTERED

return nil




1) non setta la pagina
2) non so come fare per darmi iparametri di lunghezza e larghezza

PostPosted: Wed Feb 15, 2006 6:59 pm
by Enrico Maria Giordano
Silvio wrote:1) non setta la pagina


Come fai a dirlo? Hai provato a stampare? Comunque ti confermo che la funzione PrnSetPage() funziona dato che l'ho usata in un programma.

Silvio wrote:2) non so come fare per darmi iparametri di lunghezza e larghezza


Con il metodo TPrinter:GetPhySize(), naturalmente dopo aver definito la stampante.

EMG

PostPosted: Sat Feb 18, 2006 4:17 pm
by Silvio
ripeto non devo stampare niente

ripeto ER lo fa non settando nessuna stampante ( ho provato il programma su un computer senza stampante installata)

Ho un vecchio programma demo della infoser ( l'anteprima di stampa di questo programma risale al 2001 , alle vecchie anteprime circa ver fw 18 -19.5)

In questo programma c'è un design e lui fa selezionare il tipo del foglio e automaticamente restituisce nei get la larghezza e l'altezza del foglio.

Quindi se si poteva fare nel 2001 si potrebbe certamente fare adesso.

Ho controllato non c'è nessun archivio con parametri dei fogli nel programma demo suddtto quindi o li hanno inseriti su un doppio array ( e questo mi appare improbabile) o c'è una funzione che noi a questo punto non conosciamo che restituisce la larghezza e l'altezza del foglio passato il tipo del foglio.

A parte che ho saputo che nella versione nuova di fw c'è pagesetup che fa in pratica quello che io voglio fare ....e anche questa funzione pare che non setta nessuna stapante(oprn) prima infatti si puo' compilare un programma con semplicemente chiamando questa funzione :
Code: Select all  Expand view
# include"fivewin.ch"
func Main()
pagesetup()
return nil


ma io volevo fare un dialog simile ( dato che non ho l'agg.) inserendo anche altri parametri che a me servono per un programma.

PostPosted: Sat Feb 18, 2006 4:36 pm
by Enrico Maria Giordano
Silvio wrote:ripeto non devo stampare niente


Tu hai detto: "PrnSetPage() non setta la pagina". Probabilmente non ho capito cosa intendevi ma come fai a dire che non setta la pagina? Hai chiamato forse qualche funzione che te lo dice? Io l'unico modo che conosco per verificare se il formato pagina scelto è stato effettivamente impostato è di provare a stampare. Io l'ho fatto e funziona, anche in anteprima di stampa.

Per quanto riguarda le dimensioni del foglio, come ho già detto, non ne so niente.

EMG

PostPosted: Wed Feb 22, 2006 11:27 pm
by Silvio
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.

Code: Select all  Expand view

Grazie per l'idea .... un esempietto pratico ?

PostPosted: Thu Feb 23, 2006 9:20 am
by Enrico Maria Giordano
Eccolo, prova con e senza la chiamata a PrnSetPage() e vedi la differenza anche in anteprima (la scritta si ingrandisce quando la pagina è A5):

Code: Select all  Expand view
#include "Fivewin.ch"


#define DMPAPER_A5 11


FUNCTION MAIN()

    LOCAL oPrn, oFnt

    PRNSETPAGE( DMPAPER_A5 )

    PRINT oPrn PREVIEW
        DEFINE FONT oFnt NAME "Arial" SIZE 0, -12 OF oPrn
        PAGE
            oPrn:Say( 100, 100, "This is a test", oFnt )
        ENDPAGE
    ENDPRINT

    RELEASE FONT oFnt

    RETURN NIL


EMG

PostPosted: Thu Feb 23, 2006 10:28 am
by Silvio
scusa io intendevo un esempio per il doppio array non per l'anteprima di stampa che lo so come si fa...

PostPosted: Thu Feb 23, 2006 10:43 am
by Enrico Maria Giordano
Qualcosa del genere?

Code: Select all  Expand view
#include "Fivewin.ch"


#define DMPAPER_A5 11


FUNCTION MAIN()

    LOCAL oDlg, oLbx

    LOCAL aFormati := { { "Formato 1", "Formato 2", "DMPAPER_A5" },;
                        { 1, 2, DMPAPER_A5 } }

    LOCAL cFormato := ""

    DEFINE DIALOG oDlg

    @ 1, 1 LISTBOX oLbx VAR cFormato ITEMS aFormati[ 1 ]

    @ 3, 1 BUTTON "&Stampa" ACTION STAMPA( aFormati[ 2, oLbx:GetPos() ] )

    ACTIVATE DIALOG oDlg;
             CENTER

    RETURN NIL


STATIC FUNCTION STAMPA( nFormato )

    LOCAL oPrn, oFnt

    PRNSETPAGE( nFormato )

    PRINT oPrn PREVIEW
        DEFINE FONT oFnt NAME "Arial" SIZE 0, -12 OF oPrn

        PAGE
            oPrn:Say( 100, 100, "This is a test", oFnt )
        ENDPAGE
    ENDPRINT

    RELEASE FONT oFnt

    RETURN NIL


EMG

PostPosted: Thu Feb 23, 2006 4:21 pm
by Silvio
ok stasera provo

Re: Parametri di stampa

PostPosted: Fri Jan 17, 2014 8:20 pm
by Maverich
Ciao,
ho reinstallato windows XP 32 bit e riportato una vecchia applicazione fivewin, che prima funzionava bene.
Ora lanciandola mi dà "There is no printer installed...", malgrado abbia una stampante fisica ed una virtuale (pdf), che funzionano correttamente con widnows.
è un problema noto? come si risolve?
Grazie,
Riccardo