grebel@hpavla.AVO.HP.COM (Sue Grebel) (02/12/90)
We are looking for a Microsoft Windows printing expert. We recently
submitted the following to Microsoft Online, and they are studying
it, but we would like to find a consultant who could help us with
this if possible. Please contact either of the following if you
or someone you know could help.
Sue Grebel or Shirley Jupiter
grebel@hpavla.AVO.HP.COM jupiter@hpavla.AVO.HP.COM
(215) 268-5101 (215) 268-5864
-------------our question to Microsoft Online----------------------
Our application involves a lot of graphics output to the printer.
Basically what is involved is graphing a curve with many dense data
points. We currently create a DC for the default Windows printer
and then perform a lot of MoveTo and LineTo calls. The mapping mode
we use is MM_TEXT.
This printing is very slow. We have tried many solutions but none of
them have given us satisfactory results. We are looking to improve
both the time needed for our program to generate the output necessary
(and thus decrease the time necessary for the user to wait to be able
to use the keyboard) as well as the actual time for our graphic to
print at the printer.
Some things we have tried:
1.) We implemented banding and only draw what's in the current band.
This gained us some speed improvement.
2.) Instead of doing our graphics calls directly on a device context
created for a printer, we created a metafile with the necessary
calls. We then have a standalone application which plays the
metafile to the device (through the Spooler), while the main
application continues. This resulted in much improvement in the
time necessary for our application to generate the graph.
However, it greatly increased the time for the graph to print
at the printer.
Is there anything that can be done while creating the metafile
that will optimize it?
After the metafile is created, is there anything that can be
done to increase the performance of playing it to a printer?
Some questions:
1.) Is there any way to generate the information that the Spooler
needs to print directly instead of using the Windows GDI calls?
A solution that was printer specific would be acceptable.
2.) Are there any other techniques we can use to increase our
printing performance?