Imprimir

Postby pymsoft » Fri Nov 17, 2006 8:56 am

Antonio, ME FUNCIONA LA IMPRESION!!!



Dear Mr. Pedro

To warm up the printer, it needs to take a few milliseconds.

We modified your code, and it work.

HB_FUNC( PRT_TESTPRINT )
{
CPrinter * printer = new CPrinter;

printer->Prt_Open();
Sleep(30);
printer->Prt_TestPrint();
}

But I do not recommend to use Prt_Open() function at the same routine together with any printing commands.



Visto que me recomiendan usar Prt_Open() al abrir el programa y no todo junto, como puedo hacer para crear un objeto (el objeto printer) y tenerlo ahi y usarlo cuando quiera.
Por ejemplo asi:


oPrn := ClaseCPrinter()

oPrn:TestPrint()

o

TestPrint( oPrn )

Gracias
Pedro Gonzalez
User avatar
pymsoft
 
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia

Postby Antonio Linares » Fri Nov 17, 2006 12:51 pm

Pedro,
Code: Select all  Expand view
static CPrinter * printer = NULL;

HB_FUNC( PRT_TESTPRINT )
{
   if( printer == NULL )
      printer = new CPrinter;

   printer->Prt_Open();
   Sleep(30);
   printer->Prt_TestPrint();
}
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Antonio Linares » Fri Nov 17, 2006 12:52 pm

o bien:
Code: Select all  Expand view
static CPrinter * printer = NULL;

HB_FUNC( PRT_TESTPRINT )
{
   if( printer == NULL )
   {
      printer = new CPrinter;
      printer->Prt_Open();
      Sleep(30);
   }

   printer->Prt_TestPrint();
}
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby pymsoft » Fri Nov 17, 2006 1:50 pm

Antonio,


Un espectaculo!!!! FUNCIONA :D


Muchas gracias por tu invalorable ayuda.
De verdad, no se que hubiera hecho si no me respondías tu.

Ya empecé a escribir las primeras funciones que necesito para imprimir:


Code: Select all  Expand view
#ifdef MOBITRON

#pragma BEGINDUMP

#include "hbapi.h"
#include "windows.h"
#include "c:\lavwin\teve\mobitron\inc\Printer.h" 
#include "c:\lavwin\teve\mobitron\inc\Beep.h"


static CPrinter * printer = NULL;

HB_FUNC( PRT_OPEN )
{
   if( printer == NULL )
   {
      printer = new CPrinter;
   }
   printer->Prt_Open();
   Sleep(30);
}


HB_FUNC( PRT_CLOSE )
{
   if( printer == NULL )
   {
      printer = new CPrinter;
   }
   printer->Prt_Close();
}



HB_FUNC( PRT_PRINTTEXT )
{
   if( printer == NULL )
   {
      printer = new CPrinter;
   }
   printer->Prt_PrintText( hb_parc(1), hb_parni(2) );
}


HB_FUNC( PRT_SETLINESPACING )
{
   if( printer == NULL )
   {
      printer = new CPrinter;
   }
   printer->Prt_SetLineSpacing( hb_parni(1) );
}


HB_FUNC( PRT_LINEFEEDBYLINE )
{
   if( printer == NULL )
   {
      printer = new CPrinter;
   }
   printer->Prt_LineFeedByLine( hb_parni(1) );
}


HB_FUNC( PRT_TESTPRINT )
{
   CPrinter * printer = new CPrinter;

   printer->Prt_Open();
   Sleep(30);
   printer->Prt_TestPrint();
   //printer->Prt_Close();
}


HB_FUNC( BEEP_ON ) // nTone, nTime
{
   CBeep * Beep = new CBeep;

   Beep->Beep_On( hb_parni(1), hb_parni(2));

}

#pragma ENDDUMP

#else
  FUNCTION Prt_TestPrint(); RETURN 0
  FUNCTION Beep_On(); RETURN 0
#endif



Solo me queda una cosa para resolver, que de todos modos no
es un grave problema, pero es lo siguiente, mando a imprimir y no lo hace
hasta que no pongo un msginfo(), y bueno, le pongo uno que dice msginfo("FIN IMPRESION")
sin esto, imprime solo una linea y nada mas...

GRACIAS, GRACIAS, GRACIAS
:D
Pedro Gonzalez
User avatar
pymsoft
 
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia

Postby Antonio Linares » Fri Nov 17, 2006 4:52 pm

Pedro,

Prueba a llamar a SysRefresh() en vez de llamar a MsgInfo()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby pymsoft » Fri Nov 17, 2006 5:45 pm

Antonio,

Probé a aponer el sysrefresh, pero por algun motivo no imprime ni siquiera una linea.
Seguramente es que apago la impresora antes de que comience a imprimir.

De este modo mando a imprimir, pongo el mensaje, luego que hago click en el mensaje cierro la impresora.


Gracias
Pedro Gonzalez
User avatar
pymsoft
 
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia

Previous

Return to FiveWin para Pocket PC

Who is online

Users browsing this forum: No registered users and 10 guests