[C con Clase] consulta
Ruben Quisepe
ruben0011 en gmail.com
Mar Jun 2 07:22:14 CEST 2015
Estoy intentando imprimir documentos tipo graficos en la impresora, siempre
busque la informacion a este respecto, pero
solo lo he conseguido en Conclase, es por esto que no comprendo muy bien el
manejo y lo he copiado directamente en mi codigo y tratado de adaptarlo, mi
problema es:
1.-Cuando imprimo el documento sale muy pequeño (tanto en impresora como en
archivo PDF), adjunto captura, solo se aprecia al 800% como si fuera 100%.
Agradesco de antemano la ayuda valiosa que me puedan dar.
2.-Porque cuando imprimo me aparece como nombre del archivo Prueba.PDF
3.-Antes de realizar la impresion me aparece un dialog con los siguientes
datos:
Impresora: PDF995
Dimensiones: 2100x2970mm
Tipo: Color
Res: 600x600
Desde: 1
Hasta: 2
Copias:1
Intercalar: no
/******************************************funciones previas definidas
antes de main()****************************************/
void ImprimirDocumento(PRINTDLG *pd) {
DOCINFO di;
int pagina;
int copia;
int nCopias;
int repetirPagina;
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = "Prueba";
di.lpszOutput = NULL;
di.lpszDatatype = NULL;
di.fwType = 0;
if(pd->Flags & PD_COLLATE) {
// Intercalar las copias, imprimimos nCopies documentos:
nCopias = pd->nCopies;
repetirPagina = 1;
} else {
// No intercalar las copias, un documento con nCopies de cada
página:
nCopias = 1;
repetirPagina = pd->nCopies;
}
for(copia=0; copia < nCopias; copia++) {
pagina=1;
StartDoc(pd->hDC, &di);
if(pagina >= pd->nFromPage && pagina <= pd->nToPage)
ImprimirPagina(pd->hDC, 1, repetirPagina);
pagina++;
// if(pagina >= pd->nFromPage && pagina <= pd->nToPage)
ImprimirPagina(pd->hDC, 2, repetirPagina);
EndDoc(pd->hDC);
}
}
void ImprimirPagina(HDC hDC, int npag, int ncopias)
{
HDC memDC;
int ancho, alto;
int i,j;
HPEN hpen;POINT pts[5];
ancho = GetDeviceCaps(hDC, HORZRES);
alto = GetDeviceCaps(hDC, VERTRES);
for(i = 0; i < ncopias; i++) {
StartPage(hDC);
switch(npag) {
case 1:
SetGraphicsMode(hDC, GM_ADVANCED);
SetViewportOrgEx(hDC,oriGx , oriGy, NULL); //primero tuberias asi los
numeros d tub pueden superponerse
for(i=0;i<numero_de_objetos;i++){DrawObjeto(i,Objetos[i].tipo,Objetos[i].x,Objetos[i].y,Objetos[i].tx,Objetos[i].ty,Objetos[i].Sel,hDC,
NULL);}
if(colorpipeG){hpen=CreatePen(PS_SOLID,0,RGB(0,255,5));SelectObject(hDC,hpen);}
for(i=0;i<N_tubG;i++){if(Korrientes[i].id>-1)
{Polyline(hDC,Korrientes[i].punt,Korrientes[i].numctrl+1);}}//trazamos
todas las tuberias que se han hecho hasta el momento y xq +1? 30-12-08
DeleteObject(hpen);
hpen = CreatePen(PS_DOT, 0, RGB(255,0,0)); //25-06-2010
seleccionamos la pluma de puntos para seleccionados
SelectObject(hDC, hpen);//desapareceria si capturado lo setean a
-1 cuando LBUTOMUP entonces por esto se hace todo con punto12G
pts[0].x=punto12G[0].x;pts[0].y=punto12G[0].y;pts[1].x=punto12G[1].x;pts[1].y=punto12G[0].y;
pts[2].x=punto12G[1].x;pts[2].y=punto12G[1].y;
pts[3].x=punto12G[0].x;pts[3].y=punto12G[1].y;pts[4].x=punto12G[0].x;
pts[4].y=punto12G[0].y;//para cerrar la figura cuadrada
Polyline(hDC, pts, 5);
DeleteObject(hpen);
break;
case 2:
break;
}
EndPage(hDC);
}
}
PRINTDLG pd = {sizeof(PRINTDLG),
hwnd2, 0, 0,
0, // hDC
PD_ALLPAGES | PD_RETURNDC, // | PD_USEDEVMODECOPIESANDCOLLATE,
1, 2,
1, 2,
1, // Copias
NULL, 0, 0, 0, 0, 0, 0, 0};
/*********************************************************en mi
programa**************************/
case CM_IMPRIMIR:
if(PrintDlg(&pd)) {
dm = GlobalLock(pd.hDevMode);
wsprintf(cad, "Impresora: %s\nDimensiones: %dx%d
mm\nTipo: %s\nRes: %dx%d\nDesde: %d\nHasta: %d\nCopias: %d\nIntercalar: %s",
dm->dmDeviceName, dm->dmPaperWidth,
dm->dmPaperLength, dm->dmColor==DMCOLOR_COLOR ? "Color" : "B/W",
dm->dmPrintQuality,
dm->dmYResolution, pd.nFromPage, pd.nToPage,
pd.nCopies, (pd.Flags & PD_COLLATE) ? "si" : "no");
MessageBox(hwnd2, cad, "Selecciones", MB_OK);
GlobalUnlock(pd.hDevMode);
ImprimirDocumento(&pd);
GlobalFree(pd.hDevMode);
GlobalFree(pd.hDevNames);
DeleteDC(pd.hDC);
}
break;
/*********************************************************************************************************/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20150602/96c16900/attachment.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: D1.JPG
Type: image/jpeg
Size: 277594 bytes
Desc: no disponible
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20150602/96c16900/attachment.jpe>
Más información sobre la lista de distribución Cconclase