1

我正在尝试使用 ExtEscape 将 postscript 数据发送到打印机,但打印机根本没有响应以下代码(第一个 ExtEscape 返回 true。第二个 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                 
                 );
4

1 回答 1

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);
于 2009-12-04T14:56:24.170 回答