Erkennen des "schwarz/weiß" Druckmodus



  • Hallo!

    Ich habe das Problem, dass die bisherige Art und weise zur Ermittlung, ob im farb- oder SW- Modus gedruckt werden soll nicht mehr zuverlässig funktioniert.

    Hier der bisherige Ansatz:

    BOOL CMyView::OnPreparePrinting(CPrintInfo* pInfo) 
    {
    ...
    
    	// Anzeige des Druckdialoges
    	BOOL bRet = DoPreparePrinting(pInfo);
    
    	if (bRet && strDruckerName != pInfo->m_pPD->GetDeviceName()) 
    	{	
    		LPDEVMODE pDevMode = pInfo->m_pPD->GetDevMode();
    		BOOL bMonochrome = FALSE;
    
    		if (pDevMode->dmFields & DM_COLOR)
    			bMonochrome = (pDevMode->dmColor != DMCOLOR_COLOR);
    	}
    
    ...
    }
    

    Dieser Ansatz funktioniert bei Nutzung von dem Tintenstahldrucker, den wir haben. Auf den großen (postscript) Laserdruckern allerdings nicht mehr.

    Ein weiterer Ansatz:

    DWORD dwColor = DeviceCapabilities(pinfo2->pPrinterName, pinfo2->pPortName, DC_COLORDEVICE, NULL, devMode);
    

    hat auch nicht funktioniert.

    Welche Möglichkeiten gibt es noch?

    Danke im Voraus!




Anmelden zum Antworten