大家好在下向大家请教几个问题:
1. 要在喷墨打印机(Canon Bubble-Jet BJC-5500)下打印彩色测井解释图,长度不确定,要根据实际情况由程序自动计算确定,在程序中使用自定义纸张的方法如下:
................................................................
HDC PrintDC; 
DOCINFO docin; 

docin.cbSize = sizeof(DOCINFO); 
docin.lpszDocName = "TestDoc"; 
docin.lpszOutput = NULL; 

CPrintDialog PrintDialog(TRUE, PD_ALLPAGES | PD_NOPAGENUMS, NULL); 
if(!PrintDialog.GetDefaults()) return;

//if(PrintDialog.DoModal() != IDOK) return;

PrintDC = PrintDialog.CreatePrinterDC();

DEVMODE* lpDevMode = (DEVMODE*)PrintDialog.GetDevMode(); 
lpDevMode->dmFields |= -1;
//lpDevMode->dmFields |= DM_PAPERSIZE;
lpDevMode->dmPaperSize = DMPAPER_USER;
lpDevMode->dmPaperLength = 600;
lpDevMode->dmPaperWidth = 600;
ResetDC(PrintDC,lpDevMode);

StartDoc(PrintDC,&docin);
StartPage(PrintDC);
//........................
// 绘图...................
//........................
EndPage(PrintDC);
EndDoc(PrintDC);

if(DeleteDC(PrintDC))
return;
else
{
AfxMessageBox("出错",MB_OK);
return;
}
..............................................................
简单过程就是这样子,但这段程序在诸如PrintRex 820热敏绘图仪上是可行的,但在这喷墨绘图仪上就不好使,每次走纸都是A4纸长度,我的自定义纸张没起作用,请问怎么才能在喷墨打印机上用程序实现自定义纸张呢,谢谢.2. 在使用喷墨打印机时,如纸张大小为A4,使用
nPagePixelsX = GetDeviceCaps(hPrintDC, HORZRES); // 宽度方向
nPagePixelsY = GetDeviceCaps(hPrintDC, VERTRES); // 高度方向
取得的高度方向上的像素点数并不是 纸张的高度*分辨率,而是比纸张的高度*分辨率小一些,纸张宽度方向也是如此,请问这是怎么回事啊,百思不得其解啊,请知道的朋友不吝赐教,万分感谢!!!