 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
mili Invitado
|
Publicado: Mie 17 Ago, 2005 12:11 am Asunto: configurar hoja de impresion |
|
|
hoa.
requiero hacer la impresion y para ello utilizo la opcion de impresion
| Código: |
TPrinter *impresion = Printer();
impresion->BeginDoc();
impresion->Canvas->TextOut(30,0,"cualquier cosa “);
impresion->EndDoc();
|
pero el mismo utiliza el tamaño de hoja establecido por la impresoera ya prederminada, se puede configurar el tamaño de impresion con codigo para que me imprima lo que deseo (que sobrepasa los limites de la hoja predeterminada), o sino por lo menos cambiar la posicion de la hoja de vertical a horizontal , se puede por fa y solo para la impresion de mi hoja luego logicamente volver a la impresora a su configuracion original
adios gracias |
|
| Volver arriba |
|
 |
Alberto Lavariega Arista Lt JG

Registrado: 22 Oct 2004Mensajes: 66Ubicación: Bahias de Huatulco, Oaxaca
|
Publicado: Mie 17 Ago, 2005 12:21 am Asunto: Cambia de metodo!! |
|
|
te recomiendo utilices el Quick Report o sino, aca te pongo el codigo de una funcion que me paso cesar alguna vez que necesitaba ayuda!
| Código: |
//-----------------------------------------------------------------------------
////////////Impresion EN MODO TEXTO PARA EVITAR EL SPOOLER DE WINDOW
// PARA IMPRESORAS DE MATRIZ TAMBIEN SIRVE PARA IMPRESORA FISCAL
// O MINIPRINTER
// LINEAS ->lo que se desea imprimir, ARREGLO DE LINEAS.
// INICIO -> HABILITAR TIPO LETRAS EN MATRIZ, "\xF"-CONDENSADO "\xE"-EXPAND
// FIN -> DESHABILITAR TIPO LETRAS "\X12" IMPRESION NORMAL
// EJECT -> EXPULSAR HOJA O PONER MAS LINEAS "\xC"-EXPL "\N\N\N"-MAS LINEAS
// IMPRESORA -> A DONDE? LOCAL "EPSON" O RED "\\EPSON" // BAJO WINDOS.
// TITULO -> TITULO DE IMPRESION.
//
// POR EJEMPLO
// TStringList* MyList = new TStringList();
// MyList->AddStrings(this->Memo1->Lines);
// ImprimirLineas(MyList,"\xF","\x12","\xC","HP DeskJet 420","PRUEBA");
//----------
// ANEXO ("\x0d\x0a" Fin y nueva linea)
////////////////////////////////////////////////////////////////////////////
void __fastcall ImprimirLineas( TStringList *LINEAS,char *INICIO,char *FIN,
char *EJECT,AnsiString IMPRESORA,
AnsiString TITULO){
struct {
char *DocName;
char *OutputFile;
char *DataType;
} DocInfo;
DocInfo.DocName = TITULO.c_str();
DocInfo.OutputFile = 0;
DocInfo.DataType = "RAW";
// Obtener un handle de impresora
HANDLE hPrinter;
if (! OpenPrinter(IMPRESORA.c_str(), &hPrinter, 0))
throw Exception("Operación inválida con la impresora");
try {
// Informar al spooler del comienzo de impresión
if (StartDocPrinter(hPrinter, 1, LPBYTE(&DocInfo)) == 0)
throw Exception("Operación inválida con la impresora");
try {
// Iniciar una página
if (! StartPagePrinter(hPrinter))
throw Exception("Operación inválida con la impresora");
try {
// Enviar los datos directamente
///////////////////////
// PREPARAR LA ULTIMA LINEA
for(int i=0;i < LINEAS->Count;i++){
// INICIO CADENA \R\N FIN
AnsiString vLinea=INICIO+LINEAS->Strings[i]+FIN+"\x0d\x0a";
char* lineToPrint;
DWORD numBytesWritten;
lineToPrint=vLinea.c_str(); // convertir linea a cadena
WritePrinter(hPrinter,(LPVOID)lineToPrint,(DWORD) strlen(lineToPrint), &numBytesWritten);
}
char* lineToPrint;
DWORD numBytesWritten;
lineToPrint=EJECT; // si lleva se expulas "\xC"
WritePrinter(hPrinter,(LPVOID)lineToPrint,(DWORD) strlen(lineToPrint), &numBytesWritten);
////////////////////
}
__finally {
// Terminar la página
if (! EndPagePrinter(hPrinter))
throw Exception("Operación inválida con la impresora");
}
}
__finally {
// Informar al spooler del fin de impresión
if (! EndDocPrinter(hPrinter))
throw Exception("Operación inválida con la impresora");
}
}
__finally {
// Devolver el handle de impresora
ClosePrinter(hPrinter);
}
}
|
saludos. _________________ Alberto Lavariega Arista |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|