Hey! We’ll track down this **Windows LPR byte counting mismatch** and get a queue setting that actually works in production.
Quick scan first so I don’t guess:
• Which OS is acting as the **print server** — Windows Server 2012 R2 / 2016 / 2019 / 2022, or Windows 10/11 Pro acting as a “server”?
• Is the port type on the problem queue **Standard TCP/IP Port → LPR** to a device/print appliance, or are you printing **direct to printer** from the client?
• Symptoms: jobs stuck on **Spooling**, disappear with “Printed” but nothing comes out, **multi-page jobs truncated**, or Event Viewer logs **“bytes printed” smaller than spool file**?
• Any explicit errors like “LPR byte counting mismatch”, “Win32 error 5 / access denied”, or “The printer did not respond” in the System log?
Customer
Windows Server 2019 as a print server. Queue uses a **Standard TCP/IP Port in LPR mode** to a print solution box. Randomly we get **LPR byte counting mismatch** in the logs, jobs vanish or print only half a page. TCP 515 is open, ping works, but users just see “Sent to printer” and nothing comes out.
Got it — classic **Windows LPR/LPD** edge case.
In LPR mode the **Windows Standard TCP/IP Port monitor** tells the LPD server, “I’m about to send N bytes.” If your port has **“LPR Byte Counting Enabled”** set differently from what the device expects, or the **queue name** isn’t exactly right, you get:
• Jobs that disappear right after Spooling
• “Job printed” in the Windows queue but **nothing at the device**
• Event log entries where the **spool file size** and **bytes printed** don’t match
Plan so we fix it once:
1) Confirm this queue really needs **LPR** (not RAW 9100 / IPP).
2) Check the **Standard TCP/IP Port** properties: Protocol = LPR, correct **Queue Name**, and **LPR Byte Counting Enabled** set as the print server vendor recommends.
3) Flush stuck jobs, restart the **Print Spooler** service, and re-test with a small 1-page PDF.
4) If LPR stays flaky, create an alternate **RAW 9100** or **IPP** queue where possible, and keep LPR only for the system that truly requires it.
Customer
Where exactly do I change the **LPR byte counting** and queue? I only see the printer in Devices and Printers — no obvious LPR settings there.
Step 1 — Open the Standard TCP/IP Port and expose LPR byte counting
On the **print server** (not just your admin PC):
1) Open Print Management or Control Panel → Devices and Printers → right-click the shared printer → Printer properties.
2) Go to the Ports tab → highlight the port used by this queue (often named after the printer IP) → click Configure Port….
3) Under Protocol, choose LPR (not RAW). In LPR Settings:
• Enter the exact **Queue Name** the device or print appliance expects (common defaults: lp, raw, print, or a vendor-specific name shown in its web UI).
• Toggle **LPR Byte Counting Enabled**: if the vendor docs say “enable LPR byte counting”, tick it; if they warn it causes stalls, leave it unchecked.
4) Click OK, then print a tiny test job (1-page PDF) and watch the queue: does it go from Spooling → Printing → “Printed” with the page actually coming out?
Customer
I was editing it from my Windows 11 admin PC and only saw RAW 9100. On the server, I do see **LPR**, queue name was “lp”, and **LPR Byte Counting Enabled** was unchecked. The vendor guide says to turn it on. Should I just tick it?
Perfect, that’s the right place.
Step 2 — Rebuild the LPR port cleanly with the correct settings
To get rid of any old mis-matched configuration:
1) On the Ports tab click Add Port… → Standard TCP/IP Port → New Port… and walk through the wizard.
2) Enter the **IP or hostname** of the print box, let Windows detect it, then choose Custom → Settings….
3) Under Protocol select LPR.
4) In **LPR Settings**:
• Set Queue Name exactly as required (e.g. lp, print, or the name listed in the server’s “LPR queue” page).
• Check **LPR Byte Counting Enabled** if the vendor wants strict byte counting (many release solutions and print management systems do).
5) Back in Printer properties, switch the queue to this **newly created port** and untick any old port you aren’t using.
This way the **Standard TCP/IP Port** is in a known-good state: correct host, correct queue name, and **LPR byte counting** aligned with the device.
Customer
I recreated the port with LPR and enabled byte counting. Small jobs work, but a 10-page PDF still stops after 2–3 pages. Event Viewer shows “Size of spool file: 2,000,000 bytes, Number of bytes printed: 680,000”.
That “bytes printed” mismatch confirms the LPR session is being cut short.
Step 3 — Tune the Windows spooler and data type for LPR
1) In **Printer properties → Advanced**:
• Ensure **Spool print documents so program finishes printing faster** is selected.
• For testing, uncheck **Enable advanced printing features** so the driver sends **RAW** instead of EMF where possible (some LPR/LPD servers handle RAW better).
2) Click Print Processor… and pick the vendor’s recommended processor; if unsure, test **WinPrint → RAW**.
3) Clear all jobs from the queue, then restart the **Print Spooler** service:
• net stop spooler → delete any files in C:\Windows\System32\spool\PRINTERS → net start spooler.
4) Try that 10-page PDF again. If it still truncates, we either need to:
• Flip **LPR Byte Counting Enabled** back the other way and re-test, or
• Stop using LPR from Windows and send jobs to this device via **RAW 9100** or **IPP** if it supports those protocols.
Customer
Flipping byte counting off makes jobs finish, but then the external solution stops tracking pages correctly. Switching the whole thing to **RAW 9100** isn’t an option — they only accept LPR. Any stable compromise?
Totally get it — some pull-print / accounting systems are **LPR-only** and rely on accurate byte counts.
Step 4 — Build a “stable” LPR queue that matches the appliance
Here’s the pattern we use in production environments:
• Keep a dedicated **LPR queue** on the Windows print server with:
– Protocol = LPR, correct **Queue Name**, **LPR Byte Counting Enabled** = ON (so the appliance can bill correctly).
– **WinPrint → RAW** print processor where supported.
– **Advanced → Enable advanced printing features** disabled for reliability.
• Make sure the print management appliance is not adding its own transformations that change job size mid-stream (e.g. re-compression or watermarking), or it will clash with byte counting.
• If possible, configure the vendor system so Windows is the only LPR client and end-user devices print to the Windows queue via SMB/IPP. That way the Windows LPR port is a single, predictable path instead of hundreds of client PCs talking LPR directly.
Customer
After disabling advanced printing features and switching the print processor to RAW with LPR byte counting enabled, long jobs are now completing. Anything else I should tweak on the port? What about SNMP and bidirectional support?
Great, that’s what we want to see.
Step 5 — Clean up SNMP, firewall and bidi to avoid future LPR issues
• In Configure Port… for the Standard TCP/IP Port:
– If the device is a smart MFP that supports SNMP, leave **SNMP Status Enabled** with the correct community and index so Windows can detect “Offline”.
– If you see random “Offline” / “Error” while the printer is actually up, temporarily disable **SNMP Status Enabled** to see if status polling is interfering with the LPR sessions.
• On the **General → Preferences** and **Advanced** tabs, uncheck **Enable bidirectional support** if the driver is older or you see hangs when querying status.
• Confirm that firewalls between the print server and device allow **TCP 515** (LPR) and don’t DPI-inspect or time out long-running connections too aggressively.
These don’t directly change **byte counting**, but they often fix the “prints 3 jobs then pauses” pattern that shows up with LPR.
Customer
With SNMP off on this port and bidi disabled, the queue is behaving. Any reason to keep LPR at all if the printer also supports RAW 9100?
Good question.
• For a plain **Windows print server → printer** scenario, Microsoft and most vendors prefer **Standard TCP/IP Port in RAW mode (port 9100)** — simpler protocol, fewer **LPR byte counting mismatch** headaches.
• Use **LPR** only when something in the chain requires an LPR/LPD queue: Unix systems, certain print management servers, legacy devices, etc.
• If you must keep LPR, you’ve already done the right hardening: correct **queue name**, stable **byte counting** setting, RAW data type, and clean spooler/port config.
For many shops we keep **two queues**: a “normal” RAW queue for general printing, and a separate **LPR queue** tailored for the external solution. Users never see the LPR queue directly — only the system that needs it does.
Customer
Makes sense. After these changes, no more LPR byte counting errors and multi-page jobs all complete. Thanks for walking through the Windows queue settings!
Summary: When you see a **Windows LPR byte counting mismatch** or jobs disappear, fix the **Standard TCP/IP Port**: Protocol = LPR, correct **Queue Name**, and **LPR Byte Counting Enabled** set to what the device expects. Pair that with RAW data type, clean spooler, and sane SNMP/bidi settings. If the printer supports RAW 9100 or IPP, consider a standard TCP/IP **RAW queue** for general users and reserve LPR only where it’s truly needed. Need help mapping this to your exact print server and devices?
Open the chat.
How to verify your LPR queue and byte counting are correct
To confirm your **LPR queue setting actually works**, start with a 1–2 page PDF. In the Windows queue, watch the job move from Spooling to Printing to Printed while the device outputs every page. Then check Event Viewer → System for the print event: the **spool file size** should closely match the reported **bytes printed**. If multi-page documents truncate or jobs vanish, re-open Configure Port… for the Standard TCP/IP Port and test the opposite **LPR Byte Counting Enabled** setting, double-check the **Queue Name**, and ensure the device or print appliance is listening on TCP 515 for that queue. For long-term stability, consider a separate **RAW 9100 queue** for normal users and reserve LPR for the specific integration that needs it.
LPR byte counting — quick troubleshooting tips
Most “LPR byte counting mismatch” errors come down to three things: queue name, byte counting flag, or data type.
Quick path: on the Windows print server, open the printer’s Standard TCP/IP Port → set Protocol to LPR → enter the exact Queue Name from the printer or print appliance → toggle LPR Byte Counting Enabled as recommended by the vendor → disable advanced printing features and use a RAW print processor → clear the spooler and retest. If your device supports **RAW 9100** or **IPP**, create a second queue using those protocols to avoid relying on LPR for day-to-day printing.
Disclaimer: This information is AI-generated and intended for general guidance only. For advice specific to your environment, please consult a verified expert on Whizz-Tech before making decisions.
What does an LPR byte counting mismatch mean in Windows?
It means the **Windows LPR client** and the **LPD server** disagree on how many bytes were in the job. The spooler sends a size value when LPR Byte Counting Enabled is on; if the device receives fewer or more bytes than expected, it may drop the job or stop part-way through. This shows up as **“Size of spool file” vs “Number of bytes printed”** mismatches in Event Viewer and often causes **missing or truncated prints**.
Should I enable or disable “LPR Byte Counting Enabled” on the port?
It depends on the **printer or print appliance**. Many modern print servers, pull-print and accounting systems require **LPR byte counting enabled** so they can bill correctly and detect completed jobs. Some older or simpler devices prefer it off for performance. If vendor documentation exists, follow it; otherwise test both settings on a small multi-page job and keep the one that produces consistent output with no errors.
Windows LPR vs RAW 9100 — which is better for a print server?
For most Windows environments a **Standard TCP/IP Port in RAW mode (port 9100)** is simpler and more reliable — fewer protocol quirks, no **LPR byte counting mismatch**, and better driver support. Keep **LPR/LPD** only when a specific integration requires it (Unix systems, certain print management servers, or devices that only expose an LPR queue). You can run both: a RAW queue for users, and a dedicated LPR queue tuned for the external system.
Why do my LPR jobs disappear from the Windows queue with no error?
Common causes are a wrong **LPR queue name**, incorrect **LPR byte counting** flag, firewall issues on **TCP 515**, or an LPD server that closes idle connections. Windows marks the job as Printed, but the device never accepts it. Fixes: verify the queue name against the device UI, set **LPR Byte Counting Enabled** as recommended, confirm port 515 is open, and consider disabling SNMP status or bidirectional support on the port if status polling is causing instability.