Imprimir

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

Post by pymsoft »

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
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Pedro,

Code: Select all

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: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

o bien:

Code: Select all

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
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

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

#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
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Pedro,

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

Antonio Linares
www.fivetechsoft.com
User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

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
Post Reply