Parametri di stampa

Moderator: Enrico Maria Giordano

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

ho preparato questo test
Code: Select all  Expand view  RUN
#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
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 6:59 pm

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
User avatar
Enrico Maria Giordano
 
Posts: 8718
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Silvio » Sat Feb 18, 2006 4:17 pm

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  RUN
# 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.
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 » Sat Feb 18, 2006 4:36 pm

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
User avatar
Enrico Maria Giordano
 
Posts: 8718
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Silvio » Wed Feb 22, 2006 11:27 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.

Code: Select all  Expand view  RUN

Grazie per l'idea .... un esempietto pratico ?
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 » Thu Feb 23, 2006 9:20 am

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  RUN
#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
User avatar
Enrico Maria Giordano
 
Posts: 8718
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Silvio » Thu Feb 23, 2006 10:28 am

scusa io intendevo un esempio per il doppio array non per l'anteprima di stampa che lo so come si fa...
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 » Thu Feb 23, 2006 10:43 am

Qualcosa del genere?

Code: Select all  Expand view  RUN
#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
User avatar
Enrico Maria Giordano
 
Posts: 8718
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Silvio » Thu Feb 23, 2006 4:21 pm

ok stasera provo
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 Maverich » Fri Jan 17, 2014 8:20 pm

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
Riccardo
User avatar
Maverich
 
Posts: 31
Joined: Sun Oct 09, 2005 8:29 pm
Location: Prato, Italia

Previous

Return to All products support

Who is online

Users browsing this forum: No registered users and 17 guests