Clipper 5.3 e stampe laser (un po fuori tema)

152 views
Skip to first unread message

Fabio Pagliarin

unread,
Feb 25, 2012, 4:16:47 AM2/25/12
to Harbour supporto utenti in italiano
gesito generico su clipper .
ho questo problema se effettuo delle stampe associando le stampe
generate da clipper e immagni laser PCL e stampo da porta parallela
o porta usb la cosa cosa funziona perfettamente mentre se stampo su
stampanti con porta di rete mi esce un foglio con immagine pcl e un'
altro con i dati e devo dire che non e' molto bello,questo problema
l'ho riscontrato su diverse stampanti di rete per cui il problema non
e' la mia stampante ma qualcosa legato alla tecnica che utilizzo per
generare queste stampe.

Grazie

Fabio Pagliarin

Massimo Belgrano

unread,
Feb 25, 2012, 7:43:15 AM2/25/12
to harbo...@googlegroups.com
prova a postare porzioni del tuo codice
magari un esempio piccolo e da riprovare
in rete e in locale
e darti suggerimenti

Questo gruppo usa il compilatore clipper harbour
che va molto oltre a clipper 



Fabio Pagliarin

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Harbour supporto utenti in italiano" di Google Gruppi.
Per postare messaggi in questo gruppo, invia un'email a harbo...@googlegroups.com.
Per annullare l'iscrizione a questo gruppo, invia un'email a harbourITA+...@googlegroups.com.
Per ulteriori opzioni, visita il gruppo all'indirizzo http://groups.google.com/group/harbourITA?hl=it.




--
Massimo Belgrano

Delta Informatica S.r.l. (http://www.deltain.it/) (+39 0321 455962)
Analisi e sviluppo software per Lan e Web -  Consulenza informatica - Formazione

Fabio Pagliarin

unread,
Feb 25, 2012, 10:51:58 AM2/25/12
to Harbour supporto utenti in italiano
ti mando email con il sorgente il pcl e la base dati visto che sono
vari fliles


potrai postare tutto quello che credi per aiutare altri utenti con il
mio stesso problema

On 25 Feb, 13:43, Massimo Belgrano <mbelgr...@deltain.it> wrote:
> prova a postare porzioni del tuo codice
> magari un esempio piccolo e da riprovare
> in rete e in locale
> e darti suggerimenti
>
> Questo gruppo usa il compilatore clipper harbourhttp://www.harbour-project.org/
> che va molto oltre a clipper
>
> Il giorno 25 febbraio 2012 10:16, Fabio Pagliarin <fabio.paglia...@gmail.com
> Formazione- Nascondi testo citato
>
> - Mostra testo citato -

Massimo Belgrano

unread,
Feb 26, 2012, 8:00:48 AM2/26/12
to harbo...@googlegroups.com
 Devi pensare a cosa faceva questo vecchio comando
 RUN ("COPY C:\EBS\LASER\DICPER02\IVA_2.PCL /B LPT1 > NUL ")
copiava sulla stampante locale che non è controllata da nessun timeout
e aspetta mentre una stampante di rete ha dei timemout e non può aspettare 
deve liberarsi per gli altri utenti della rete

Devi Aggiornare il programma non per incompatibilità di harbour ma per l'evoluzione delle nuove tecnologie

devi portare una logica condivisa dove condivisione mancava
cerca spiunti in CONTRIB\HBWIN\TESTS\testprn.prg

Per evitare di mappare ti consiglio di fare qualcosa come
func main
local aPrinter := {}
local nPrt := 0
setmode(25,80)
aPrinter  := WIN_PRINTERLIST()
 nPrt := AChoice( 10,10,10 + Len(aPrinter ),70,aPrinter )
 set printer to  WIN_PRINTERPORTTONAME( nPrt 
set printer to ( WIN_PRINTERGETDEFAULT ())
..
Devi buttare nel flusso di stampa 


? memoread "C:\EBS\LASER\DICPER02\IVA_2.PCL"
oppure usa qualche veccio comando 
mi sempra che vi fosse un comando text che consente di avere i pcl nel sorgente
init text
 "C:\EBS\LASER\DICPER02\IVA_2.PCL"

o forse 
procedure dsPrint( cFile )
LOCAL cMsg := ""
LOCAL cPrinter := ALLTRIM( WIN_PRINTERGETDEFAULT() )
LOCAL nResult := WIN_PRINTFILERAW( cPrinter, cFile, "Harbour print" )      
    DO CASE  
      CASE nResult == -1 
         cMsg += "Invalid parameters passed to function" 
      CASE nResult == -2 
         cMsg += "WinAPI OpenPrinter() call failed"       
      CASE nResult == -3 
         cMsg += "WinAPI StartDocPrinter() call failed"   
      CASE nResult == -4 
         cMsg += "WinAPI StartPagePrinter() call failed"  
      CASE nResult == -5 
         cMsg += "WinAPI malloc() of memory failed"       
      CASE nResult == -6 
         cMsg += "File " + cFile + " not found"           
      OTHERWISE 
         cMsg += cFile + " PRINTED OK!!!" 
      ENDCASE 
      IF nResult < 0; Alert(cMsg); ENDIF
Return


chiedo a te ed altri che postassero esempi di postare 
la funzione di creazione dbf ed altri oggetto nel sorgente come la sottostante
 DBCREATE(pPath+"\CUST", {{"FIRST", "C", 20, 0}, {"LAST", "C", 20, 0}},, .T.)
   DBAPPEND();  FIRST := "A" ;LAST="Aa"
   DBAPPEND();  FISRT := "B";LAST="Aa"
   DBCLOSEALL()
e i pcl con fcreate(),fwrite


Posto il tuo codice 
cosi altri possono fare suggerimenti

 T_CODDOS = '  '
T1       = SPACE(59)
TR_COD_FIS  = SPACE(16)
TR_PAR_IVA  = SPACE(11)
T_ANNO1     = SPACE(4)
T_MESE1     = SPACE(2)
T_TRIM      = SPACE(1)
T_CODA      = SPACE(5)
IMPON_VE    = 0
IMP_VE_I    = 0
IMP_VE_A    = 0
IMP_VE_E    = 0
IMPON_AC    = 0
IMP_AC_I    = 0
IMP_AC_A    = 0
IMP_AC_E    = 0
T_I_DEB     = 0
T_I_CRE     = 0
VP7D  = 0
VP7C  = 0
TR_DIC_CAR  = SPACE(1)
TR_DIC_CF  =  SPACE(16)
FLAG = 0
*-----> Leggo i campi del File DIC_FILE


*-----> Leggo i campi del File DIC_FILE

T_F24 = "C:\FABIO23\per.DAT"
 USE F24_IVA.TRA
 ZAP
 APPEND FROM &T_F24 SDF
 CLOSE DATABASE

 SELECT 1
  USE F24_IVA.TRA
  UNLOCK

 SELECT 1

 DO WHILE .T.

     IF EOF()
        IF FLAG = 1
            RUN ("COPY C:\EBS\LASER\DICPER02\IVA_2.PCL /B LPT1 > NUL ")
            STMP_F24 ()
            RUN ("COPY C:\EBS\LASER\DICPER02\EJECT.PCL /B LPT1 > NUL ")
          ENDIF
        EXIT
     ENDIF

* T_RIMB = " "

*************
* Record  1 *
*************
T_RK      = SUBSTR(F24HOST,001,1)
* Frontespizio
  IF T_RK = '1'
      IF FLAG = 1
         RUN ("COPY C:\EBS\LASER\DICPER02\IVA_2.PCL /B LPT1 > NUL ")
         STMP_F24 ()
      ELSE
         FLAG = 1
      ENDIF
     T_CODDOS =  SUBSTR(F24HOST,010,16)
  ENDIF
  IF T_RK = '2'
     T1       =  SUBSTR(F24HOST,020,59)
  ENDIF
  IF T_RK = '3'
     TR_COD_FIS =  SUBSTR(F24HOST,020,16)
  ENDIF
  IF T_RK = '4'
     TR_PAR_IVA =  SUBSTR(F24HOST,007,11)
     T_ANNO1    =  SUBSTR(F24HOST,031,4)
     T_MESE1    =  SUBSTR(F24HOST,037,2)
     T_TRIM1    =  SUBSTR(F24HOST,041,1)
     T_CODA     =  SUBSTR(F24HOST,044,5)
  ENDIF
  IF T_RK = '6'
     IMPON_VE     =  VAL(SUBSTR(F24HOST,020,11))
     IMP_VE_I     =  VAL(SUBSTR(F24HOST,032,11))
     IMP_VE_E     =  VAL(SUBSTR(F24HOST,044,11))
     IMP_VE_A     =  VAL(SUBSTR(F24HOST,056,11))
  ENDIF
  IF T_RK = '7'
     IMPON_AC     =  VAL(SUBSTR(F24HOST,020,11))
     IMP_AC_I     =  VAL(SUBSTR(F24HOST,032,11))
     IMP_AC_E     =  VAL(SUBSTR(F24HOST,044,11))
     IMP_AC_A     =  VAL(SUBSTR(F24HOST,056,11))
  ENDIF
  IF T_RK = 'N'
     T_I_DEB      =  VAL(SUBSTR(F24HOST,015,11))
  ENDIF
  IF T_RK = 'O'
     T_I_CRE      =  VAL(SUBSTR(F24HOST,031,11))
  ENDIF
  IF T_RK = 'A'
     VP7D         =  VAL(SUBSTR(F24HOST,015,11))
     VP7C         =  VAL(SUBSTR(F24HOST,031,11))
  ENDIF
  IF T_RK = 'H'
     TR_DIC_CF =  SUBSTR(F24HOST,020,16)
     TR_DIC_CAR =  VAL(SUBSTR(F24HOST,051,2))
  ENDIF
  SKIP
 ENDDO
CLOSE DATABASE

RETURN


PROCEDURE STMP_F24
SET DEVICE TO PRINT
SETPRC(0, 0)
T_ESC1 = 'CHR(27)+"(10U"+CHR(27)+"(s0p10.00h4099t&l65fs2B"+chr(27)+"&a1r&a1C"'
*T_ESC1 = 'CHR(27)+"(10U"+CHR(27)+"(s0p10.00h4099T"'
@ 0,0 SAY &T_ESC1

      @ 01,20 SAY "Dossier  " + T_CODDOS
      @ 05,33 SAY T1
      @ 08,33 SAY TR_COD_FIS PICTURE "@R 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9"
      @ 11,18 SAY T_ANNO1        PICTURE '@R 9 9 9 9'
      @ 14,18 SAY TR_PAR_IVA PICTURE "@R 9 9 9 9 9 9 9 9 9 9 9"
      @ 14,66 SAY T_CODA         PICTURE '@R 9 9 9 9 9'
      @ 19,18 SAY TR_DIC_CF PICTURE "@R 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9"
      @ 19,72 SAY TR_DIC_CAR
      @ 24,31 SAY IMPON_VE      PICTURE '@ZE 999,999,999,999'
      @ 25,59 SAY IMP_VE_I      PICTURE '@ZE 999,999,999,999'
      @ 26,59 SAY IMP_VE_E      PICTURE '@ZE 999,999,999,999'
      @ 27,59 SAY IMP_VE_A      PICTURE '@ZE 999,999,999,999'
      @ 30,31 SAY IMPON_AC      PICTURE '@ZE 999,999,999,999'
      @ 31,59 SAY IMP_AC_I      PICTURE '@ZE 999,999,999,999'
      @ 32,59 SAY IMP_AC_E      PICTURE '@ZE 999,999,999,999'
      @ 33,59 SAY IMP_AC_A      PICTURE '@ZE 999,999,999,999'
      @ 38,31 SAY T_I_DEB       PICTURE '@ZE 999,999,999,999'
      @ 40,59 SAY T_I_CRE       PICTURE '@ZE 999,999,999,999'
      @ 42,31 SAY VP7D          PICTURE '@ZE 999,999,999,999'
      @ 42,59 SAY VP7C          PICTURE '@ZE 999,999,999,999'
SET DEVICE TO SCREEN
RETURN

francesco perillo

unread,
Feb 26, 2012, 8:26:56 AM2/26/12
to harbo...@googlegroups.com
Devi guardare se nel settaggio delle code di stampa puoi settare di non avere il salto pagina automatico a fine stampa/dopo un timeout.

Come dice Massimo, in rete la stampante non è "tua" ed essendo condivisa il sistema si preoccupa di lasciarla in uno stato conosciuto pronto per la prossima stampa.

Hai quindi davanti a te diverse possibilità, la migliore della quale (a mio avviso) è di riscrivere le parti della stampa in ottica moderna, ovvero o creando un PDF (ed è una funzionalità che è attiva anche su linux/mac) oppure usare le chiamate a win32 (ovviamente va bene solo su windows).


Ah, noto ora che parlavi di clipper e non di harbour... quanto sopra è per harbour ma penso che anche per clipper potrai trovare librerie appropriate. Oppure vai di porting....

PROCEDURE STMP_F24 è veramente piccola, riscriverla è semplice.

Immagino che il comando
RUN ("COPY C:\EBS\LASER\DICPER02\IVA_2.PCL /B LPT1 > NUL ")
provveda ad inviare alla stampante un layout di un form.

Prova a salvare tutto in un file temporaneo e poi mandare quello alla stampante, tutto insieme...

Massimo Belgrano

unread,
Feb 26, 2012, 9:19:27 AM2/26/12
to harbo...@googlegroups.com
Se usi ancora il compilatore clipper ti consiglio  di scaricare harbour  da quà l'ultima versione notturna
installa con l'ide e usa c:\hb31\\bin\hbmk2 tuo.prg  per ricompilare velocemente il progetto in modo moderno
Ho convertito con successo i miei progetti ad Harbour  che ritengo migliore perché moderno ed è supporta i moderni sistemi operativi (Window Xp a Window 7, linux, Mac os)
Inoltre se hai dei problemi su harbour trovi una comunita a cui  chiedere supporto in italiano  o in Inglese


------------
Fate girare tra i vostri amici questo consiglio tramite messaggio su Facebook , Twitter o google+
Passaparola
------------
Il giorno 26 febbraio 2012 14:26, francesco perillo <fper...@gmail.com> ha scritto:

Ah, noto ora che parlavi di clipper e non di harbour... quanto sopra è per harbour ma penso che anche per clipper potrai trovare librerie appropriate. Oppure vai di porting....


-- 

--
Massimo Belgrano


Maurizio la Cecilia

unread,
Feb 26, 2012, 7:25:45 PM2/26/12
to harbo...@googlegroups.com
Vorrei sapere se utilizzi un file pcl standard, cioè direttamente scaricato dal sito dell'Agenzia, o se l'hai modificato.
Da quello che ricordo dai tempi del Clipper i file pcl contengono il carattere form feed e causano un salto pagina incondizionato.
Mi sembra strano che la stampa funzioni correttamente su stampanti locali, perciò penso che tu abbia modificato i file.
Personalmente, in Clipper ho sempre utilizzato un trucco per poter stampare senza problemi e ricordo che funzionava anche sulle stampanti di rete.
In pratica stampavo il file pcl escludendo gli ultimi byte, a partire dal form feed, dopo di che accodavo praticamente la stessa sequenza di comandi che usi tu in stmp_f24.
Se vuoi approfondire dovrei avere ancora i sorgenti di quella funzione.
Ciao.
Maurizio
  • Italiano - rilevata
  • Italiano
  • Inglese
  • Italiano
  • Inglese

Massimo Belgrano

unread,
Feb 27, 2012, 3:59:39 AM2/27/12
to harbo...@googlegroups.com
In allegato file di stampa 
Varie.zip

Fabio Pagliarin

unread,
Feb 27, 2012, 9:59:06 AM2/27/12
to Harbour supporto utenti in italiano
Grazie per tutte le informazioni

On 27 Feb, 09:59, Massimo Belgrano <mbelgr...@deltain.it> wrote:
> In allegato file di stampa
>
> Il giorno 27 febbraio 2012 01:25, Maurizio la Cecilia <m.laceci...@gmail.com
>
>
>
>
>
> > ha scritto:
> >  Vorrei sapere se utilizzi un file pcl standard, cioè direttamente
> > scaricato dal sito dell'Agenzia, o se l'hai modificato.
> > Da quello che ricordo dai tempi del Clipper i file pcl contengono il
> > carattere form feed e causano un salto pagina incondizionato.
> > Mi sembra strano che la stampa funzioni correttamente su stampanti locali,
> > perciò penso che tu abbia modificato i file.
> > Personalmente, in Clipper ho sempre utilizzato un trucco per poter
> > stampare senza problemi e ricordo che funzionava anche sulle stampanti di
> > rete.
> > In pratica stampavo il file pcl escludendo gli ultimi byte, a partire dal
> > form feed, dopo di che accodavo praticamente la stessa sequenza di comandi
> > che usi tu in stmp_f24.
> > Se vuoi approfondire dovrei avere ancora i sorgenti di quella funzione.
> > Ciao.
> > Maurizio
>
> > Il 25/02/2012 16:51, Fabio Pagliarin ha scritto:
>
> > ti mando email con il sorgente il pcl e la base dati visto che sono
> > vari fliles
>
> > potrai postare tutto quello che credi per aiutare altri utenti con il
> > mio stesso  problema
>
> > On 25 Feb, 13:43, Massimo Belgrano <mbelgr...@deltain.it> <mbelgr...@deltain.it> wrote:
>
> >  prova a postare porzioni del tuo codice
> > magari un esempio piccolo e da riprovare
> > in rete e in locale
> > e darti suggerimenti
>
> > Questo gruppo usa il compilatore clipper harbourhttp://www.harbour-project.org/
> > che va molto oltre a clipper
>
> > Il giorno 25 febbraio 2012 10:16, Fabio Pagliarin <fabio.paglia...@gmail.com
>
> >  ha scritto:
> > gesito generico su clipper .
> > ho questo problema se effettuo delle stampe associando le stampe
> > generate da clipper  e immagni laser PCL e stampo  da porta parallela
> > o porta usb la cosa cosa funziona perfettamente mentre se stampo su
> > stampanti con porta di rete mi esce un foglio con immagine pcl e un'
> > altro con i dati e devo dire che non e' molto bello,questo problema
> > l'ho riscontrato su diverse stampanti di rete per cui il problema non
> > e' la mia stampante ma qualcosa legato alla tecnica  che utilizzo per
> > generare queste stampe.
>
> >   Grazie
>
> >   Fabio Pagliarin
>
> >   --
> > Hai ricevuto questo messaggio perché sei iscritto al gruppo "Harbour
> > supporto utenti in italiano" di Google Gruppi.
> > Per postare messaggi in questo gruppo, invia un'email aharb...@googlegroups.com.
> > Per annullare l'iscrizione a questo gruppo, invia un'email aharbourITA...@googlegroups.com.
> > Per ulteriori opzioni, visita il gruppo all'indirizzohttp://groups.google.com/group/harbourITA?hl=it.
>
> >  --
> > Massimo Belgrano
>
> > Delta Informatica S.r.l. (http://www.deltain.it/) (+39 0321 455962)
> > Analisi e sviluppo software per Lan e Web -  Consulenza informatica -
> > Formazione- Nascondi testo citato
>
> > - Mostra testo citato -
>
> >    - Italiano - rilevata
> >    - Italiano
> >    - Inglese
>
> >    - Italiano
> >    - Inglese
>
> >       --
> > Hai ricevuto questo messaggio perché sei iscritto al gruppo "Harbour
> > supporto utenti in italiano" di Google Gruppi.
> > Per postare messaggi in questo gruppo, invia un'email a
> > harbo...@googlegroups.com.
> > Per annullare l'iscrizione a questo gruppo, invia un'email a
> > harbourITA+...@googlegroups.com.
> > Per ulteriori opzioni, visita il gruppo all'indirizzo
> >http://groups.google.com/group/harbourITA?hl=it.
>
> --
> Massimo Belgrano
>
>  Varie.zip
> 16KVisualizzaScarica- Nascondi testo citato

Roberto Redondi

unread,
Oct 19, 2024, 11:02:31 AM10/19/24
to Harbour supporto utenti in italiano
Buongiorno Maurizio,
lo so che è passato parecchio tempo però spero tu possa aiutarmi...
Ho letto nei precedenti post della tua funzione per togliere gli ultimi caratteri dal file PCL per poi aggiungere altri caratteri stampati con l'istruzioni SAY, riusciresti a postarmela?
Volevo anche chiederti come fai ad ottenere facilmente il formato PCL5 (modificabile e quindi stampabile) partendo partendo da un altro formato di file es. DOC o PDF. 
Grazie per l'aiuto
Roberto

Reply all
Reply to author
Forward
0 new messages