On Wed, 29 Oct 2003 22:53:50 -0000, "Tim Robinson"
<tim.at.gaat.freeserve.co.uk@[EMAIL PROTECTED]
> wrote:
><r_z_aret@[EMAIL PROTECTED]
> wrote in message
>news:3fa01746.19333329@[EMAIL PROTECTED]
>> I may be missing something. StrechBlt copies from DC to DC, so I
>> assume it will work with any sort of DC, including a printer DC. Thus,
>> I figured you could do something like:
>> a) "draw" on a hidden DC instead of the actual printer DC, then use
>> StrecthBlt to copy and rotate everything to the actual printer DC
>> or
>> b) "draw" on the original printer DC, but copy to and from a
>> tem****ary, hidden DC, so you can rotate once.
>
>I don't believe this, or any solution involving blitting, will work, and
I
>think Feng Yuan (who is more qualified than me on GDI) agrees.
>
>Consider the amount of data involved if you treat a page of A4 as a
bitmap
>when targetting a 300dpi printer -- far more than one screen's worth.
Trying
>to use StretchBlt on this would involve creating a memory DC the size of
the
>page, bringing the whole page (that the application printed) into memory,
>and copying from one to the other. Then copying the whole lot back to the
>printer. Printer drivers avoid dealing with all this data at once by
banding
>their output; that is, dividing it into strips and processing each strip
at
>once. The solutions in this thread have tried to deal with everything at
>once which, even on current PCs, is a heck of a lot.
Thank you. I hope/assume no one followed my suggestion. Another case
where a little bit of knowledge is dangerous. And now that I've reread
Feng Yuan's earlier note, I can see that he wrote pretty much what you
just wrote.
>
>In my opinion, the best ways of dealing with this are:
>1. Inserting a transform into the printer DC before the application sends
>any data
>2. Hooking into the printer driver somehow to reverse all the coordinates
>3. Printing onto transparent acetate and turning it round, then
photocopying
>that onto a sheet of paper
>
>--
>Tim Robinson (MVP, Windows SDK)
>http://www.themobius.co.uk/
>
>
-----------------------------------------
To reply to me, remove the underscores (_) from my email address (and
please indicate which newsgroup and message).
Robert E. Zaret
PenFact, Inc.
500 Harrison Ave., Suite 3R
Boston, MA 02118
www.penfact.com


|