If your users unknowingly print huge reports, (maybe from a mainframe?), you can turn this into a two step process.
1. Define a phony printer for the initial report that is always paused. This printer must use the same Driver and Print Processor/Default Datatype as the printer that will ultimately render the report.
2. Create a separate Spool for this phony printer by editing:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\<PrinterName>\SpoolDirectory and setting this type REG_SZ value name to a unique folder on the Print Server (<DRIVE:>\PrivateSpoolFolder).
3. Create a share for this Spool ( \\PrintServer\MainFrame maps to <DRIVE:>\PrivateSpoolFolder ).
4. Reboot the Print Server.
5. Create a batch file, RealPrinterShareName.bat, that contains:
@echo off
if "%1"=="" goto show
print /D:\\PrintServer\RealPrinterShareName \\PrintServer\MainFrame\%1.spl
del /q \\PrintServer\MainFrame\%1.s*
exit
:show
@echo Syntax: RealPrinterShareName \[SpoolRecordNumber\] - Example: HP1600C 00001
dir /od \\PrintServer\MainFrame\*.spl
exit
If they run RealPrinterShareName.bat without the SpoolRecordNumber, it will return a list of available documents:
10/16/98 | 12:41 | 12,445 | 00015.SPL |
10/16/98 | 15:01 | 598,497 | 00027.SPL |
10/16/98 | 18:33 | 199,241 | 00035.SPL |
The way a user correlates a document with the "SpoolRecordNumber" is to look at the document name in the phony printer.
If they need to see size in bytes, they can right click an entry and choose properties. On the General Tab, they will see size, Time and Date.
They can match these properties with the dir produced by the RealPrinterShareName.bat
NOTE: See How do I define a quota for a printer?