HANDLE hPtr = 0;
DOC_INFO_1 docinfo;
if ( !OpenPrinter("HP LaserJet 500H", &hPtr, NULL) ) {
AfxMessageBox("OpenError");
return;
}
docinfo.pDocName = "My doc";
docinfo.pOutputFile = NULL;
docinfo.pDatatype = "RAW";
if ( !StartDocPrinter(hPtr, 1, (LPBYTE)&docinfo) ) {
AfxMessageBox("StartDocError");
return;
}
if ( !StartPagePrinter(hPtr) ) {
AfxMessageBox("StartPageError");
return;
}
DWORD dwWritten = 0;
char data[21] = "AAAAAAAAAAAAAAAAAAAA";
if ( !WritePrinter(hPtr, data, 20, &dwWritten) ) {
AfxMessageBox("WriteError");
return;
}
if ( !EndPagePrinter(hPtr) ) {
AfxMessageBox("EndPageError");
return;
}
if ( !EndDocPrinter(hPtr) ) {
AfxMessageBox("EndDocError");
return;
}
if ( !ClosePrinter(hPtr) ) {
AfxMessageBox("StartPageError");
return;
}
hPtr = 0;
Печать потока данных
Код:
Проблема в том, что при исполнении этого кода в очередь печати становится новый документ, но так там и остается в состоянии "отправлен на принтер", не распечатывается. Принтер включен и нормально работает.
В чем я ошибся?
Заранее благодарен.
Цитата: nikitozz
В чем я ошибся?
в неизучении команд управления, которые должны передаваться совместно с "ААААААААААААААА". Раньше для матричных (для них кстати - до тех пор пока не передаш конец строки тоже не напечатаешь) они назывались ESC-последовательности. А для всех остальных, тем более если они GDI, уже совсем другие. Надо просто поднять спецлитературу и почитать.