Проблема - Отправка данных PostScript на принтер с помощью ExtEscape

Я пытаюсь отправить данные PostScript на принтер с помощью ExtEscape, но принтер вообще не отвечает на следующий код (1-й ExtEscape вернул true. 2-й ExtEscape также вернул true, но печать не вышла). Я ценю любую помощь.

escapeCode = POSTSCRIPT_PASSTHROUGH;
if (bReturn = ExtEscape( printerDC, QUERYESCSUPPORT, sizeof(int), 
                        (LPCSTR)&escapeCode, 0, NULL ) <= 0)
    return;


bReturn = ExtEscape(
                 hdcPrint,
                 escapeCode,  
                 sizeof(temp_out_ptr),     
                 temp_out_ptr,      // this contains postscript data            
                 0,                   
                 NULL                 
                 );

person Bongsun Lee    schedule 03.12.2009    source источник


Ответы (1)


Знаете ли вы, что при использовании этого метода ваши данные будут вставлены в середину вывода драйвера PostScript.

Если вы хотите спулировать весь файл PostScript непосредственно на принтер, минуя драйвер принтера, вам нужно что-то вроде этого:

HANDLE ph = 0;
OpenPrinter(PrinterName, &ph, NULL);

DOC_INFO_1 di;
di.pDatatype = _T("RAW");
di.pDocName = DocumentName;
di.pOutputFile = NULL;

StartDocPrinter(ph, 1, (LPBYTE)(&di));
StartPagePrinter(ph);
DWORD dwWritten;
WritePrinter(ph, Data, LengthOfData, &dwWritten);
EndPagePrinter(ph);
EndDocPrinter(ph);
ClosePrinter(ph);
person Tony Edgecombe    schedule 04.12.2009
comment
Это то, что я делаю. Спасибо! - person Bongsun Lee; 04.12.2009