[comp.windows.ms] Windows printing help wanted

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?