이 질문에 대한 답변을 찾아서 게시하여 다른 사람들에게 유용 할 수 있습니다.
append (ascii character) 명령을 사용하여 프린터 명령을 프린터에 추가했습니다. 여기
내가 사용하는 샘플 코드입니다 :
QString printer_name = "PrinterOne";
qDebug() << "Test printing started...";
QByteArray print_content_ba("Test Print text ");
print_content_ba.append("\n");
//add end of the receipt buffer & cut command
print_content_ba.append(27);
print_content_ba.append(105);
HANDLE p_hPrinter;
DOC_INFO_1 DocInfo;
DWORD dwJob = 0L;
DWORD dwBytesWritten = 0L;
BOOL bStatus = FALSE;
//code to convert QString to wchar_t
wchar_t szPrinterName[255];
int length = printer_name.toWCharArray(szPrinterName);
szPrinterName[length]=0;
if (OpenPrinter(szPrinterName,&p_hPrinter,NULL)){
qDebug() << "Printer opening success " << QString::fromWCharArray(szPrinterName);
DocInfo.pDocName = L"Loyalty Receipt";
DocInfo.pOutputFile = NULL;
DocInfo.pDatatype = L"RAW";
dwJob = StartDocPrinter(p_hPrinter, 1, (LPBYTE)&DocInfo);
if (dwJob > 0) {
qDebug() << "Job is set.";
bStatus = StartPagePrinter(p_hPrinter);
if (bStatus) {
qDebug() << "Writing text to printer" << print_content_ba ;
bStatus = WritePrinter(p_hPrinter,print_content_ba.data(),print_content_ba.length(),&dwBytesWritten);
if(bStatus > 0){
qDebug() << "printer write success" << bStatus;
}
EndPagePrinter(p_hPrinter);
} else {
qDebug() << "could not start printer";
}
EndDocPrinter(p_hPrinter);
qDebug() << "closing doc";
} else {
qDebug() << "Couldn't create job";
}
ClosePrinter(p_hPrinter);
qDebug() << "closing printer";
}
else{
qDebug() << "Printer opening Failed";
}