# VBForums UtilityBank > UtilityBank - Utilities >  EMF Spoolfile Viewer

## Merrion

*Description*
In Windows NT, 2000, XP and 2003 the printer spool file can be generated in EMF.  This application allows you to view those spool files on screen.  This is useful if you want to see what has been printed out on a printer.

To save the spool files, select the printer in control panel and in the properties screen select the checkbox "Keep printed documents".  


*System Requirements*
Requires the .NET framework and the spool files must be generated on Windows NT, 2000, XP or 2003.

----------


## wayneh

Hi - 

I'm having an issue where a file printed from my application takes about 3 minutes to come out of a printer, but the same file printed from another (commercial) application takes less than 20 seconds.

The printer spool files are created in about the same amount of time.

Do you have any ideas as to what can cause this?

I have captured 2 SPL files, one mine and the other form the other app.
I can view them with your viewer fine, but I'm much more interested in 
header info, etc.
Do you have a way for me to see that info?
(I don't use .NET - I use VB 6 so I can't use your viewer code unfortunately...)

Thanks.

----------


## Merrion

The spool header file (*.shd)  is documented here - the code is .NET but the structure is readily converted to VB6 (I think)

----------


## wayneh

Any ideas on why one app's spool file will process so much faster than another, given that they have the same contents?

Thanks for the link too.

----------


## Merrion

are they exactly the same content - i.e. if you do a file diff on the two spool files they are the same?

----------


## wayneh

No, the content isn't exactly the same which is why I want to 'decode' the files and see what's in them.

The image content is the same, but even opening the binary files in wordpad I can see differences in the headers since they came from two different apps.

I've uploaded them if you want to see what you can see....

I can't understand why one file "avspool.spl" prints in about 20 seconds, but the other "vlspool.spl" takes up to 3 minutes.
Both are created on the same machine and take about the same time to make the spl file, even though the files sizes are different.

----------


## Merrion

OK - I will add some code to analyse the actual EMF records tomorrow.

The basic differences are:
VLSpool = 9652 EMF records, 287680 bytes
AVSpool = 8218 EMF records, 147716 bytes

----------


## wayneh

Thanks - that's very kind of you.

----------


## Merrion

Right ho - summary attached...

The main difference seems to be that VLSpool creates 290 font objects whereas AVSpool creates only 2.  The creation and deletion of these font objects is what is slowing the print down...

----------


## wayneh

That's quite interesting but quite odd.

In most cases, the VL documents print quite fast - normally, in fact.

The document uses the same 2 fonts in multiple places.
Is it possible that the printer (Driver) is downloading a font for each font object, whereas other printers/drivers would only download the two fonts one time?

Can this be tested somehow?

Can I find out how you determined the records for these spl files?

----------


## wayneh

Sorry - one more question - 

If the font creation was the issue, wouldn't it take about the same time on any printer? Or more precisely, wouldn't the VL file always take a lot longer to print than the AV file regardless of the printer used?
And then, couldn't you (or I) test this simply by viewing the two files and printing them to our own printers?

----------

