Автор | Сообщение |
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 28.01.05 14:32. Заголовок: A3
Вопрос по TPrinter Как определить, поддерживает девайс формат A3 ? Устанавливается формат методом SetPage, а как определить, поддерживается ли этот метод ? Если FW это не умеет, как сделать через WinAPI ? Или любой харборовской gui-библиотекой ?
| |
|
Ответов - 3
[только новые]
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 28.01.05 19:57. Заголовок: Re: A3
winapi: используй(те?) функцию DeviceCapabilities: void readPrinterParameters(){ int i, j; char mess[512], sTmp[512]; WORD aWord[200]; LPVOID lpMsgBuf; ‹...› i=DeviceCapabilities(/*«hp LaserJet 1300 PCL6»*/«FinePrint 2000», NULL, DC_PAPERS, (LPSTR)aWord, NULL); if (i!=-1){ sprintf(mess, »%d», i); strcpy(mess, »»); for (j=0; j‹i; j++){ sprintf(sTmp, », %d», aWord[j]); strcat(mess, sTmp); } MessageBox(hWnd, mess, «device capabilities», MB_OK); } else{ FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER¦FORMA T_MESSAGE_FROM_SYSTEM¦FORMAT_MESSAGE_IGNORE_INSERT S,\ NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL); MessageBox( NULL, (LPCTSTR)lpMsgBuf, »- ошибка считывания параметров принтера - », MB_OK ¦ MB_ICONSTOP ); LocalFree( lpMsgBuf ); } }
| |
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 28.01.05 21:43. Заголовок: Re: A3
void readPrinterParameters(){ int i, j; char mess[512], sTmp[512]; WORD aWord[200]; LPVOID lpMsgBuf; i=DeviceCapabilities(/*«hp LaserJet 1300 PCL6»*/"FinePrint 2000", NULL, DC_PAPERS, (LPSTR)aWord, NULL); if (i!=-1){ sprintf(mess, "%d", i); strcpy(mess, ""); for (j=0; j<i; j++){ sprintf(sTmp, ", %d", aWord[j]); strcat(mess, sTmp); } MessageBox(hWnd, mess, "device capabilities", MB_OK); } else{ FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER ¦FORMA T_MESSAGE_FROM_SYSTEM¦\ FORMAT_MESSAGE_IGNORE_INSERTS,\ NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),\ (LPTSTR) &lpMsgBuf, 0, NULL); MessageBox( NULL, (LPCTSTR)lpMsgBuf, "- ошибка считывания параметров принтера - ", MB_OK ¦ MB_ICONSTOP ); LocalFree( lpMsgBuf ); } }
| |
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 28.01.05 22:46. Заголовок: Re: A3
Спасибо ! Этой функцией (DeviceCapabilities) и буду вытаскивать все что надо В MiniGUI тоже есть примерчик: HB_FUNC (RR_DEVICECAPABILITIES) { LPBYTE cBuffer,pBuffer,nBuffer,sBuffer,bnBuffer,bwBuffer, bcBuffer; DWORD numpapers,numbins,i; LPPOINT lp; numbins=DeviceCapabilities(pi2-›pPrinterName,pi2-› pPortName,DC_BINNAMES,NULL,NULL); numpapers=DeviceCapabilities(pi2-›pPrinterName,pi2 -›pPortName,DC_PAPERNAMES,NULL,NULL); if (numpapers›0) { pBuffer = GlobalAlloc(GPTR,numpapers*64); nBuffer = GlobalAlloc(GPTR,numpapers*sizeof(WORD)); sBuffer = GlobalAlloc(GPTR,numpapers*sizeof(POINT)); cBuffer = GlobalAlloc(GPTR,numpapers*128); DeviceCapabilities(pi2-›pPrinterName,pi2-›pPortNam e,DC_PAPERNAMES,pBuffer,pi2-›pDevMode); DeviceCapabilities(pi2-›pPrinterName,pi2-›pPortNam e,DC_PAPERS,nBuffer,pi2-›pDevMode); DeviceCapabilities(pi2-›pPrinterName,pi2-›pPortNam e,DC_PAPERSIZE,sBuffer,pi2-›pDevMode); for ( i = 0; i ‹ numpapers; i++) { и так далее
| |
|
|
|