Solved

Printing Bitmaps

Posted on 1998-06-01
5
245 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

Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
FizzBuzz challenge 9 81
MaxSpan challenge 9 96
how to use laptop or pad camera in vb.net windows application 2 72
Problem to App source 6 40
This is to be the first in a series of articles demonstrating the development of a complete windows based application using the MFC classes.  I’ll try to keep each article focused on one (or a couple) of the tasks that one may meet.   Introductio…
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…
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.
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

809 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