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?