2010-02-25 508 views
1

這是我用來製作圖像的代碼。C++發送圖像到打印機,(打印)

Bitmap bitmap; 
bitmap.CreateBitmap(715, 844,1,1, NULL); 

CDC memDC; 
memDC.CreateCompatibleDC(NULL); 
memDC.SelectObject(&bitmap); 

CString SS="Sun Goes Down"; 
memDC.TextOutA(1,2,SS); 

     CImage image; 
     image.Attach(bitmap); 
     image.Save(_T("C:\\test.bmp"), Gdiplus::ImageFormatJPEG); 

,一切都OK,現在我要的是發送圖像打印...

我使用

DWORD pcchBuffer=100; 

    char * pszBuffer=new char[100]; 

GetDefaultPrinter(pszBuffer,&pcchBuffer); 

又一切正常。

得到defaulet printername,對於打印我知道WritePrinter函數,但該函數給argumens打印LPVOID緩衝區,我如何發送我的圖像打印? 很多很多謝謝!

+0

這看起來像Windows代碼,但由於答案將是操作系統特定的,所以您應該提及您的操作系統。 – 2010-02-25 09:29:10

回答

3

代替把圖像,保存它,然後再打印的,你應該:

查找MSDN上所有的詳細步驟。

+0

好的,謝謝!這是正確的,但問題是 - 我想要的圖像和打印,是否可以創建新的CDC打印描述,並做所有的繪圖,因爲它爲圖像? (圖紙是大碼,我不想這樣做,打印和圖像)。如果可以的話,請幫助我! – 2010-02-25 11:42:15

+0

您可以先將所有複雜的圖像繪製到位圖的DC中(如您的問題),然後保存它,爲打印機打開DC,然後在打印機的DC中繪製位圖。這樣,你只需要做一次複雜的繪圖。 – Patrick 2010-02-25 13:20:32