[Solution] How to Enable “Keep Spooler Files” on Windows Printers and Convert SPL Files to PDF Automatically Using VeryPDF SPL to PDF Converter Command Line

When managing a Windows print environment, there are many situations where organizations need to preserve printed documents for auditing, compliance, troubleshooting, or automated processing. Windows can store raw print data as spooler files, and by enabling the “Keep spooler files option, you can instruct the print system to retain these files permanently.

This guide explains in detail:

  1. What SPL and SHD spooler files are
  2. How the “Keep spooler files” option works
  3. Why regular PDF tools cannot convert SPL files
  4. How to use VeryPDF SPL to PDF Converter Command Line to convert SPL files into PDF
  5. How to build a fully automated nightly conversion workflow
  6. How to clean up original spool files safely after conversion
  7. Optional enhancements and advanced usage

This article is designed to be clear, practical, and directly applicable for administrators, developers, and IT teams.


1. Understanding Windows Spooler Files (SPL and SHD)

When a document is printed in Windows, the printing system creates temporary spooler files in the spool directory:

▪ SPL file
The SPL file contains the actual printed content in raw printer format. This is not plain text or PDF. It may contain:

  • EMF (Enhanced Metafile) print data
  • PCL print stream
  • PostScript stream
  • RAW printer commands
  • Printer-language-specific binary sequences

The SPL file represents the exact data sent to the printer.

▪ SHD file
The SHD (Shadow) file contains job metadata, including:

  • Username
  • Document title
  • Page count
  • Printer name
  • Submission time
  • Job ID

Normally, after the print job finishes successfully, Windows deletes both SPL and SHD files automatically.


2. What “Keep Spooler Files” Does and Why You Need It

The “Keep spooler files” option, available in the Windows Printer Properties or Print Server settings, tells Windows to stop deleting SPL and SHD files after printing. This is useful for:

  • Auditing / Compliance – keeping a copy of all printed materials
  • Document archiving – storing an exact representation of output
  • Security monitoring – tracking what users are printing
  • Troubleshooting print errors – analyzing raw print data
  • Automated workflows – converting SPL files to PDF or image formats
  • Integration with enterprise systems – processing print activity as part of nightly batch operations

When the option is enabled, all SPL/SHD files remain in:

C:\Windows\System32\spool\PRINTERS

This folder requires administrator privileges to access.

[Solution] How to Enable “Keep Spooler Files” on Windows Printers and Convert SPL Files to PDF Automatically Using VeryPDF SPL to PDF Converter Command Line


3. Why Most PDF Converters Cannot Open SPL Files

SPL files are not document files. They contain raw printer-language data, not human-readable content. Standard PDF converters are designed to convert formats such as:

  • Word documents
  • Images
  • Text files
  • HTML
  • Office documents

These tools expect structured, high-level formats—not low-level EMF, PCL, or RAW printing instructions. This is why most commonly available PDF converters cannot interpret or convert .SPL files, even if the name looks similar to “spool output”.

To process SPL files correctly, you need a tool that understands print data streams.


4. Introduction to VeryPDF SPL to PDF Converter Command Line

VeryPDF SPL to PDF Converter Command Line is a specialized tool built explicitly for converting:

  • SPL → PDF
  • PRN → PDF
  • EMF → PDF
  • PCL → PDF
  • RAW printer streams → PDF

https://www.verypdf.com/app/hookprinter/spool-spl-to-pdf-converter.html

It supports:

  • Automatic batch conversion
  • Command-line operation
  • Scheduled tasks
  • Server-side workflows
  • Support for multiple spooler formats
  • Processing of EMF-SPL, PCL-SPL, PostScript SPL, and RAW-SPL files

The tool is ideal for environments that:

  • Keep spooler files
  • Need to convert them daily or hourly
  • Need to archive or distribute them
  • Want a reliable conversion method that does not require user interaction

5. Enabling "Keep Spooler Files" on Your Printer

Below are the steps to enable the setting on Windows:

Method 1 — Enable from Printer Properties

  1. Open Control Panel → Devices and Printers.
  2. Right-click your printer → Printer Properties.
  3. Go to the Advanced tab.
  4. Enable Keep printed documents (this is the UI name for keeping spooler files).
  5. Click OK.

[Solution] How to Enable “Keep Spooler Files” on Windows Printers and Convert SPL Files to PDF Automatically Using VeryPDF SPL to PDF Converter Command Line

Method 2 — Enable at Print Server Level

  1. Open Print Management (printmanagement.msc).
  2. Select Print Servers → [Your Server] → Printers.
  3. Right-click a printer → PropertiesAdvanced.
  4. Check Keep printed documents.

After this, SPL/SHD files will remain in the spool folder after printing.


6. Full Workflow: Convert SPL Files to PDF Automatically Every Night

A complete automation process includes:

  1. Enable “Keep spooler files”
  2. Allow SPL/SHD files to accumulate during the day
  3. Use a nightly scheduled script to:
    • Scan the spool folder
    • Convert SPL to PDF using VeryPDF SPL to PDF
    • Move generated PDFs to archive folders
    • Delete SPL/SHD files

This ensures clean daily processing, prevents file pileup, and creates orderly archives.


7. Setting Up VeryPDF SPL to PDF Converter Command Line

After installing the tool:

Locate the executable path (for example):

C:\VeryPDF\SPL2PDF\spool2pdf.exe

Test conversion manually:

spool2pdf.exe sample.spl output.pdf

Once you confirm conversion works, you can build automation around the tool.


8. Full PowerShell Automation Script (Highly Detailed)

The script below is production-grade and handles:

  • File discovery
  • Time-based filtering
  • Conversion
  • Error handling
  • Logging
  • Cleanup
  • Folder management

You can place this script in:

C:\Scripts\ConvertSPLtoPDF.ps1

PowerShell Script

# ==========================================================
# ConvertSPLtoPDF.ps1 - Automated SPL to PDF Conversion
# ==========================================================

# --------------------------
# CONFIGURATION
# --------------------------
$SpoolFolder   = "C:\Windows\System32\spool\PRINTERS"
$OutputFolder  = "D:\ArchivedPDFs"
$LogFolder     = "D:\SPL_Logs"
$WorkingFolder = "D:\SPL_Work"
$ConverterPath = "C:\VeryPDF\SPL2PDF\spool2pdf.exe"

# Delay (in minutes) to avoid processing files still being written
$MinimumAge = 10

# --------------------------
# INITIAL SETUP
# --------------------------
$LogFile = Join-Path $LogFolder "SPLtoPDF-" + (Get-Date -Format "yyyyMMdd") + ".log"

foreach ($path in @($OutputFolder, $LogFolder, $WorkingFolder)) {
    if (!(Test-Path $path)) { New-Item -ItemType Directory -Path $path | Out-Null }
}

function WriteLog($msg) {
    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    "$timestamp`t$msg" | Out-File -Append -Encoding UTF8 $LogFile
}

WriteLog "---------- Script Started ----------"

# --------------------------
# FILE DISCOVERY
# --------------------------
$Cutoff = (Get-Date).AddMinutes(-$MinimumAge)

$SPLFiles = Get-ChildItem -Path $SpoolFolder -Filter *.spl |
            Where-Object { $_.LastWriteTime -lt $Cutoff }

foreach ($spl in $SPLFiles) {

    $BaseName = $spl.BaseName
    $SHDFile  = Join-Path $SpoolFolder ($BaseName + ".shd")

    WriteLog "Processing $($spl.FullName)"

    # Output PDF path
    $TimeStamp = Get-Date -Format "yyyyMMdd-HHmmss"
    $TempPDF   = Join-Path $WorkingFolder ("Job_" + $TimeStamp + "_" + $BaseName + ".pdf")

    # --------------------------
    # RUN CONVERTER
    # --------------------------
    $Arguments = @("-i", "`"$($spl.FullName)`"", "-o", "`"$TempPDF`"")

    WriteLog "Running converter: $ConverterPath $Arguments"
    $Process = Start-Process $ConverterPath -ArgumentList $Arguments -Wait -NoNewWindow -PassThru

    if ($Process.ExitCode -eq 0 -and (Test-Path $TempPDF)) {
        WriteLog "Conversion succeeded: $TempPDF"

        # Move PDF to final location
        $FinalPDF = Join-Path $OutputFolder (Split-Path $TempPDF -Leaf)
        Move-Item $TempPDF $FinalPDF -Force

        # --------------------------
        # CLEANUP ORIGINAL FILES
        # --------------------------
        try {
            Remove-Item $spl.FullName -Force
            if (Test-Path $SHDFile) { Remove-Item $SHDFile -Force }
            WriteLog "Deleted SPL/SHD originals for $BaseName"
        }
        catch {
            WriteLog "Error deleting originals: $_"
        }
    }
    else {
        WriteLog "Conversion FAILED for $($spl.FullName)"
        WriteLog "Exit Code: $($Process.ExitCode)"

        # Keep SPL/SHD for troubleshooting
    }
}

WriteLog "---------- Script Completed ----------"

9. Scheduling the Script to Run Automatically Each Night

Use Windows Task Scheduler:

  1. Open Task Scheduler
  2. Click Create Task
  3. General tab
    • Name: Convert SPL to PDF Automatically
    • Run whether user is logged on or not
    • Run with highest privileges
  4. Triggers tab
    • New → Daily → Set time (e.g., 2:00 AM)
  5. Actions tab
    • Program: powershell.exe
    • Arguments:
      -ExecutionPolicy Bypass -File "C:\Scripts\ConvertSPLtoPDF.ps1"
  6. Save and enter credentials
  7. Right-click → Run to test

After that, conversion occurs automatically every night.


10. Recommended Naming Conventions for Converted PDFs

Many organizations want meaningful file names. Examples:

  • {JobID}_{User}_{Timestamp}.pdf
  • {PrinterName}_{Date}_{Sequence}.pdf
  • {OriginalDocumentName}.pdf (requires SHD parsing)

You can modify the script to incorporate:

  • Username from SHD
  • Job ID from SHD
  • Print time
  • Printer name

If you need a more advanced SHD parser, I can generate a script for that as well.


11. Optional Enhancements

You may expand the workflow by adding:

● PDF Encryption

Password-protect PDFs for sensitive print jobs.

● PDF/A Archival

Ensure long-term archival suitability.

● Uploading PDFs Automatically

Upload to:

  • SharePoint
  • Amazon S3
  • OneDrive
  • FTP/SFTP servers
  • Internal document management systems
● Email Notifications

Send alerts if:

  • Conversion fails
  • Output folder is empty
  • Unexpected SPL types appear
● File Retention Policies

Automatically delete PDFs older than X days.


12. Summary

By enabling "Keep spooler files" on Printer Driver, Windows preserves all printed SPL and SHD files. Using VeryPDF SPL to PDF Converter Command Line, you can convert these raw print data files into high-quality PDF documents.

With the PowerShell automation script and Task Scheduler method described above, you can:

  • Convert all SPL files nightly
  • Archive PDFs in a structured location
  • Automatically remove original spooler files
  • Reduce manual work to zero
  • Maintain full audit trails of printing activity

This solution is reliable, fully automatic, and suitable for small businesses, enterprises, and IT departments that need precise control over print output.

Related Posts