• Domingo 15 de Diciembre de 2024, 09:43

Autor Tema:  imprimir por medio de impresora en c++  (Leído 2997 veces)

jose10gr

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
imprimir por medio de impresora en c++
« en: Miércoles 20 de Mayo de 2009, 18:51 »
0
ok el problema q tengo es que al imprimir por medio de impresora en c++, no me funciona el gotoxy, para imprimir en donde yo quiero  salga el texto. este es el codigo si alguien me puede ayudar se lo agradeceria bastante, el borland que estoy usando es el  c++ 5.02 este es el codigo:

                  #include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <string.h>
 #include <fstream.h>//libreria que me sirve para usar la impresora

int opcion;

struct menu
{
  char entrada[10];
  char carne[10];
  char ensalada[10];
  char postre[10];
  char bebida[10];

}comida[3];



int main()
{
char  entrada1[10];//variables las cuales me sirven para ingresar los distintos platillos
 char entrada2[10];
 char entrada3[10];
 char entrada4[10];
 char entrada5[10];
 
 int i; //en este caso i nos sirve para crear el for para el arreglo y asi mismo ingresar los datos
 //del chef
 int y=3;//iniciamos y en 3 para posicionarnos en el eje y de la pantalla
 int x=0;
  printf("ENTRADAS    CARNE     ENSALADAS     POSTRE   BEBIDAnn");

  for(i=0;i<4;i++)
  {
    gotoxy(0,y);  //gotoxy me sirve para poner mi texto en el lugar que quiera mediante
    //los parametros se le asigne a x
    cin >> entrada1;


   
    gotoxy(14,y);
    cin >> entrada2;
   
    gotoxy(28,y);
    cin >> entrada3;

    gotoxy(44,y);
    cin >> entrada4;

    gotoxy(57,y);
    cin >> entrada5;

   


    strcpy(comida.entrada,entrada1); //copio la cadena entrada1 en la variable entrada
    // que pertenece a la estructura comida
     strcpy(comida.carne,entrada2);
    strcpy(comida.ensalada,entrada3);
    strcpy(comida.postre,entrada4);                    
    strcpy(comida.bebida,entrada5);




    y = y + 1; //esto me sirve para ir cambiando la posicion en donde se escriben los datos en pantalla

    }
    clrscr();

    printf("Lunes     Martes    Miercoles     Jueves    Viernes   Sabado   Domingo");

  for(i=0;i<1;i++)
  {

  printf("n%s  ",comida.entrada);
  printf("nn%s ",comida.carne);
  printf("nn%s ",comida.ensalada);
  printf("nn%s ",comida.postre);
  printf("nn%s ",comida.bebida);

  }

  for(i=1;i<2;i++)
  {

  gotoxy(11,y-4);
  cout<<comida.entrada<<endl;
 
  gotoxy(11,y-2);
  cout<<comida.carne<<endl;
  gotoxy(11,y-0);

  cout<<comida.ensalada<<endl;

  gotoxy(11,y+2);

  cout<<comida.postre<<endl;

  gotoxy(11,y+4);


  cout<<comida.bebida<<endl;

  }

 
  for(i=2;i<3;i++)
  {
  gotoxy(21,y-4);
  cout<<comida.entrada<<endl;
  gotoxy(21,y-2);
  cout<<comida.carne<<endl;
  gotoxy(21,y-0);

  cout<<comida.ensalada<<endl;

  gotoxy(21,y+2);

  cout<<comida.postre<<endl;

  gotoxy(21,y+4);

  cout<<comida.bebida<<endl;

  }
   

  for(i=1;i<2;i++)
  {
  gotoxy(35,y-4);
  cout<<comida.entrada<<endl;
  gotoxy(35,y-2);
  cout<<comida.carne<<endl;
  gotoxy(35,y-0);

  cout<<comida.ensalada<<endl;

  gotoxy(35,y+2);

  cout<<comida.postre<<endl;

  gotoxy(35,y+4);

  cout<<comida.bebida<<endl;

  }

//espera
for(i=3;i<4;i++)
  {
  gotoxy(45,y-4);
  cout<<comida.entrada<<endl;
  gotoxy(45,y-2);
  cout<<comida.carne<<endl;
  gotoxy(45,y-0);

  cout<<comida.ensalada<<endl;

  gotoxy(45,y+2);

  cout<<comida.postre<<endl;

  gotoxy(45,y+4);

  cout<<comida.bebida<<endl;

  }


for(i=1;i<2;i++)
  {
  gotoxy(55,y-4);
  cout<<comida.entrada<<endl;
  gotoxy(55,y-2);
  cout<<comida.carne<<endl;
  gotoxy(55,y-0);

  cout<<comida.ensalada<<endl;

  gotoxy(55,y+2);

  cout<<comida.postre<<endl;

  gotoxy(55,y+4);

  cout<<comida.bebida<<endl;

  }

for(i=3;i<4;i++)
  {
  gotoxy(65,y-4);
  cout<<comida.entrada<<endl;
  gotoxy(65,y-2);
  cout<<comida.carne<<endl;
  gotoxy(65,y-0);

  cout<<comida.ensalada<<endl;

  gotoxy(65,y+2);

  cout<<comida.postre<<endl;

  gotoxy(65,y+4);

  cout<<comida.bebida<<endl;

  }

printf("nDesea Imprimir");
printf("nnPresione 1 Si desea imprimir, Caso Contrario Presione 2");
scanf("%d",&opcion);
clrscr();

if(opcion==1)
{
   ofstream impresora;
   impresora.open("LPT1");

   //inicion impresion

    impresora << "Lunes     Martes    Miercoles     Jueves    Viernes   Sabado   Domingo"<< endl;

  for(i=0;i<1;i++)
  {
  gotoxy(0,y-4);

  impresora<<comida.entrada<<endl;
  gotoxy(0,y-2);

  impresora<<comida.carne<<endl;
  gotoxy(0,y-0);

  impresora<<comida.ensalada<<endl;
  gotoxy(0,y+2);

  impresora<<comida.postre<<endl;
  gotoxy(0,y+4);

  impresora<<comida.bebida<<endl;


  }

  for(i=1;i<2;i++)
  {

  gotoxy(11,y-4);
  impresora<<comida.entrada<<endl;

  gotoxy(11,y-2);
  impresora<<comida.carne<<endl;
  gotoxy(11,y-0);

  impresora<<comida.ensalada<<endl;

  gotoxy(11,y+2);

  impresora<<comida.postre<<endl;

  gotoxy(11,y+4);


  impresora<<comida.bebida<<endl;

  }


  for(i=2;i<3;i++)
  {
  gotoxy(21,y-4);
  impresora<<comida.entrada<<endl;
  gotoxy(21,y-2);
  impresora<<comida.carne<<endl;
  gotoxy(21,y-0);

  impresora<<comida.ensalada<<endl;

  gotoxy(21,y+2);

  impresora<<comida.postre<<endl;

  gotoxy(21,y+4);

  impresora<<comida.bebida<<endl;

  }


  for(i=1;i<2;i++)
  {
  gotoxy(35,y-4);
  impresora<<comida.entrada<<endl;
  gotoxy(35,y-2);
  impresora<<comida.carne<<endl;
  gotoxy(35,y-0);

  impresora<<comida.ensalada<<endl;

  gotoxy(35,y+2);

  impresora<<comida.postre<<endl;

  gotoxy(35,y+4);

  impresora<<comida.bebida<<endl;

  }

//espera
for(i=3;i<4;i++)
  {
  gotoxy(45,y-4);
  impresora<<comida.entrada<<endl;
  gotoxy(45,y-2);
  impresora<<comida.carne<<endl;
  gotoxy(45,y-0);

  impresora<<comida.ensalada<<endl;

  gotoxy(45,y+2);

  impresora<<comida.postre<<endl;

  gotoxy(45,y+4);

  impresora<<comida.bebida<<endl;

  }


for(i=1;i<2;i++)
  {
  gotoxy(55,y-4);
  impresora<<comida.entrada<<endl;
  gotoxy(55,y-2);
  impresora<<comida.carne<<endl;
  gotoxy(55,y-0);

  impresora<<comida.ensalada<<endl;

  gotoxy(55,y+2);

  impresora<<comida.postre<<endl;

  gotoxy(55,y+4);

  impresora<<comida.bebida<<endl;

  }

for(i=3;i<4;i++)
  {
  gotoxy(65,y-4);
  impresora<<comida.entrada<<endl;
  gotoxy(65,y-2);
  impresora<<comida.carne<<endl;
  gotoxy(65,y-0);

  impresora<<comida.ensalada<<endl;

  gotoxy(65,y+2);

  impresora<<comida.postre<<endl;

  gotoxy(65,y+4);

  impresora<<comida.bebida<<endl;

  }



 //fin de la impresion
   impresora.close();
   return 0;


}
else
printf("Fin del Programa");

 return 0;
}

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: imprimir por medio de impresora en c++
« Respuesta #1 en: Jueves 21 de Mayo de 2009, 10:36 »
0
Etiquetas de código... A ver si leemos las normas.  &lt;_&lt;

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Re: imprimir por medio de impresora en c++
« Respuesta #2 en: Jueves 21 de Mayo de 2009, 16:47 »
0
umm gotoxy es solo para consolas... no te vale para la impresora

"Mueve el cursor de la ventana de texto a la posición según las coordenadas especificadas por los argumentos x e y. Si las coordenadas no son válidas entonces la llamda a la función gotoxy es ignorada. Los argumentos no pueden ser 0"

cuando haces impresora << ... mandas datos a la impresora y luego, cuando haces Gotoxy cambias el cursor de la pantalla, el cual no tiene nada que ver con la impresora.

Lo mejor es que te hagas un buffer con los datos que quieres mandar a la impresora en memoria, imprimas en memoria los datos y luego vuelques todo el buffer a la vez.