Ver Mensaje Individual
  #1  
Antiguo 15-12-2014
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Reputación: 11
aguml Va por buen camino
Problema al imprimir (se queda en la cola)

Ahora estoy liado con otra cosa, Hago esto para imprimir los trozos de imagen y funciona a medias. Si Elijo la impresora de NitroPDF sale la ventanita chica que dice Printing y que trae el ProgressBar y se rellena rapidamente y aparece el icono de impresora en la barra de tareas pero no veo que pase nada. Si lo hago con la impresora fisica si funciona.
Este es el codigo:

Código PHP:
void __fastcall TForm1::ButtonPrintImagesClick(TObject *Sender)
{
   
TInfoPapel info;

   if(
PrintDialog1->Execute())
   {
      
info ObtenerTamPapel();
      if(
info.orientacion == 1//Si la orientacion es vertical seguimos adelante
      
{
         switch (
info.tamPapel)
         {
            case 
DMPAPER_A5:
               
Form2->VividReport1->PaperSize A5;
               
Form2->ShowModal();
               break;

            case 
DMPAPER_A4:
               
Form2->VividReport1->PaperSize A4;
               
Form2->ShowModal();
               break;

            case 
DMPAPER_A3:
               
Form2->VividReport1->PaperSize A3;
               
Form2->ShowModal();
               break;

            default:
               
MessageBox(Application->Handle"El tamaño del papel seleccionado no es válido. Usa A5, A4, o A3""Error"MB_OK |MB_ICONERROR MB_APPLMODAL);
         }
      }else
      { 
//Si la orientacion del papel no es vertical no seguimos y avisamos de que no se puede usar otra
         
MessageBox(Handle"No se puede elegir la orientación de papel horizontal.\nEsta aplicación solo funciona con orientación vertical." "Error"MB_OK |MB_ICONERROR MB_APPLMODAL);
      }
   }
}
//---------------------------------------------------------------------------

TInfoPapel ObtenerTamPapel(void)
{
   
char MyPrinter[100];
   
char MyDriver[100];
   
char MyPort[100];
   
THandle hDevMode;
   
PDEVMODE pDevMode;
   
TInfoPapel infoPapel;

   
Printer()->GetPrinter(MyPrinterMyDriverMyPorthDevMode);

   if(
hDevMode){
      
pDevMode = (PDEVMODE)GlobalLock((void*)hDevMode);
      if(
pDevMode){
         
//El tamaño del papel debe ser para A4 DMPAPER_A4 o para A3 DMPAPER_A3
         //La orientacion vertical es 1 y la horizontal 2
         
infoPapel.tamPapel pDevMode->dmPaperSize;
         
infoPapel.orientacion pDevMode->dmOrientation;
         
GlobalUnlock((void*)hDevMode);
      }
      
//GlobalFree((void*)hDevMode);
   
}
   return 
infoPapel;
}
//---------------------------------------------------------------------------

void __fastcall TForm2::BitBtnImprimirClick(TObject *Sender)
{
        
VividReport1->Print();

¿alguna idea de que puede estar pasando?
Responder Con Cita