Solved

Printing Bitmaps

Posted on 1998-06-01
5
242 Views
Last Modified: 2013-11-19
I'm currently working on a project in Visual C++ 1.52 on a Windows for Workgroups 3.11 system.  I am trying to print a bitmap image to a thermal receipt printer.  I know the printer has the capabilities to print graphics because I can print the image from Paintbrush.  I know the basics of output of an image an am confused as to why it won't work in this situation.  I have the following code in my OnDraw function in my View class (derived from CFormView):

// Display the bitmap
CDC* pDisplayMemDC = new CDC;
CBitmap *pBitmap = new CBitmap;                            pBitmap->LoadBitmap(IDB_DEPART_BITMAP);         pDisplayMemDC->CreateCompatibleDC(pDC);
pDisplayMemDC->SelectObject(pBitmap);
pDC->BitBlt( 0, 0, 5000, 5000, pDisplayMemDC, 0, 0,                     SRCCOPY);

When I try to print nothing is output.  When I put the same code in the OnDraw but don't condition before it with "if (IsPrinting)" I have no problem.  It comes right up on screen.  Any help would be appreciated.
      delete pDisplayMemDC;
      delete pBitmap;
0
Comment
Question by:jstephe1
  • 3
5 Comments
 
LVL 2

Accepted Solution

by:
SamratAshok earned 100 total points
ID: 1315867
You cannot print a bitmap directly. You have to convert it into
DIB (Device Indepedant Bitmap) and then render it using StretchBlt API function to render it on printer device.

If you have MFC example code, look for application like Diblook
or something like that.

Hope this helps
0
 
LVL 23

Expert Comment

by:chensu
ID: 1315868
You can print a bitmap (DDB) directly. A printer DC is just like a screen DC.
0
 
LVL 2

Expert Comment

by:SamratAshok
ID: 1315869
Well Chensu.

I tried a lot for that. My application had something like 60 to 70 bitmaps
and I had to do convert each one of them to DDB before producing acceptable
output on paper.

Eventually, I used to saved the convert bitmaps as DDB files in order to make code a bit faster and less resource consuming.

I even dug up some microsoft references, but all seemed
to say the same.
0
 

Author Comment

by:jstephe1
ID: 1315870
I tried the same code and displaying it on screen was no problem.  I know I have a pointer to the print device since I can output text.  How do I take a file (test.bmp) and make it print?  Does anyone have sample code?
0
 
LVL 2

Expert Comment

by:SamratAshok
ID: 1315871
If you have sample examples, look under sample called DIBLOOK. Iam not sure if
it comes with VC 1.52. You will have to mess around with code a bit, to get what you
want, but it is not too difficult.

If not, please post your email address where I can send you
the code. (There are about 4 to 5 files involved)


0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Decoding 32 bit binary streams 6 37
VB.NET how to use the Vertical ScrollBar 5 90
fizzArray2 challenge 1 72
matchUp  challenge 6 53
Introduction: Dynamic window placements and drawing on a form, simple usage of windows registry as a storage place for information. Continuing from the first article about sudoku.  There we have designed the application and put a lot of user int…
Introduction: Dialogs (1) modal - maintaining the database. Continuing from the ninth article about sudoku.   You might have heard of modal and modeless dialogs.  Here with this Sudoku application will we use one of each type: a modal dialog …
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.

910 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

24 Experts available now in Live!

Get 1:1 Help Now