-
×InformationNeed Windows 11 help?Check documents on compatibility, FAQs, upgrade information and available fixes.
Windows 11 Support Center. -
-
×InformationNeed Windows 11 help?Check documents on compatibility, FAQs, upgrade information and available fixes.
Windows 11 Support Center. -
- HP Community
- Printers
- Printer Setup, Software & Drivers
- How to print pure colors?

Create an account on the HP Community to personalize your profile and ask a question
03-11-2025 02:32 AM
Greetings!
I have a HP Envy 6455e printer that uses the HP printing app downloaded from the Microsoft Store for Windows 10
I also have the HP print apps downloaded onto my Android-13 telephone.
Reference article:
Question:
Is it possible to command the printer to print using only one, pure, color at a time?
As the previous poster said, if I try to print a pure color, (such as yellow), it always contains an admixture of Magenta and Cyan. What I wish to do is print pure "yellow" without any other color admixture, similarly with Magenta, Cyan, or Black.
Are there PCL commands that I can send that will accomplish this? Is it possible to send raw printer commands either through a terminal window or via a Python program?
Any help would be gratefully appreciated.
Solved! Go to Solution.
Accepted Solutions
03-27-2025 02:33 PM
@jharris1993, Thank you for your response.
Yes! You can capture the raw print data that is sent to your HP Envy 6455e printer using different methods. This will help you analyze how the printer processes color requests.
Method 1: Enable Print Logging in Windows (Easiest)
Windows can log print job data, including the raw spool file.
Steps:
1. Open the Print Queue
Press Win + R, type control printers, and hit Enter.
Right-click your HP Envy 6455e printer → Click Printer Properties.
2. Enable Print Logging
Go to the Advanced tab.
Check the box Keep printed documents.
Click Apply and OK.
3. Print a Test Page
Print a page with a solid yellow color from any app (Word, Photoshop, etc.).
4. Find the Raw Print File
Navigate to C:\Windows\System32\spool\PRINTERS\
Look for files with .SPL and .SHD extensions.
These contain the raw data sent to the printer.
5. Analyze the File
Open the .SPL file using Notepad++, Wireshark, or a hex editor.
If it's a PostScript or PDF-based job, it will have readable text commands.
Method 2: Print to a File
This method lets you capture the exact data sent to the printer without actually printing.
Steps:
1. Install a Generic Text Printer Driver
Go to Control Panel > Devices and Printers.
Click Add a printer → Select The printer that I want isn’t listed.
Choose Add a local printer.
Select PORTPROMPT: (Local Port) and click Next.
Choose Generic > Generic / Text Only → Click Next.
Name it Raw Print Capture → Click Finish.
2. Print to File
Select the Raw Print Capture printer.
Click Print → It will ask you where to save the file.
Save it as output.prn.
3. Analyze the File
Open output.prn in Notepad++ or a hex editor.
You should see raw print commands.
I hope this helps!
If my response resolves your issue, please click “Accepted Solution” to help others find the answer. Also, don’t forget to click the “Kudos/Thumbs Up” button to say thanks!
Take care and have a great day.
Max3Aj
HP Support
03-14-2025 08:16 AM
Hi @jharris1993, Welcome to HP Support Community.
Thank you for posting your query, I will be glad to help you.
Yes, it is possible to send raw PCL (Printer Command Language) commands to a printer, but consumer-grade inkjet printers like the HP Envy 6455e do not typically support full PCL 5 or PCL 6 functionality. Instead, they use a proprietary HP PageWide or Inkjet printing protocol, which may not allow direct control over individual color channels.
Why Does Yellow Contain Other Colors?
Most inkjet printers use color profiles and dithering algorithms to improve print quality. Even when printing "pure" yellow, the printer driver may add small amounts of magenta and cyan to balance the color.
Possible Workarounds:
Use an Image Editing Program (GIMP/Photoshop)
- Create an image with only 100% yellow (RGB: 255,255,0).
- Print using "Best Quality" and disable color management.
- Some printers still mix colors, but this increases the chances of getting pure yellow.
Print in Grayscale Mode for Black-Only Printing
- If you only want pure black (without color mixing), enable "Grayscale" or "Black Ink Only" in the printer settings.
I hope this helps.
Take care and have a good day.
Please click “Accepted Solution” if you feel my post solved your issue, it will help others find the solution. Click the “Kudos/Thumbs Up" on the bottom right to say “Thanks” for helping!
Max3Aj
HP Support
03-27-2025 12:58 AM
Is there some way to capture the raw print job, (the data that goes to the printer that causes it to do what it does to actually print).
For example:
If you open a PDF document, it's mostly specialized "pdf" programming commands and vector image descriptions. (Kinda' like a LaTex or PostScript document.)
I would like to see the raw file the computer sends to the printer when I ask it to print something.
03-27-2025 02:33 PM
@jharris1993, Thank you for your response.
Yes! You can capture the raw print data that is sent to your HP Envy 6455e printer using different methods. This will help you analyze how the printer processes color requests.
Method 1: Enable Print Logging in Windows (Easiest)
Windows can log print job data, including the raw spool file.
Steps:
1. Open the Print Queue
Press Win + R, type control printers, and hit Enter.
Right-click your HP Envy 6455e printer → Click Printer Properties.
2. Enable Print Logging
Go to the Advanced tab.
Check the box Keep printed documents.
Click Apply and OK.
3. Print a Test Page
Print a page with a solid yellow color from any app (Word, Photoshop, etc.).
4. Find the Raw Print File
Navigate to C:\Windows\System32\spool\PRINTERS\
Look for files with .SPL and .SHD extensions.
These contain the raw data sent to the printer.
5. Analyze the File
Open the .SPL file using Notepad++, Wireshark, or a hex editor.
If it's a PostScript or PDF-based job, it will have readable text commands.
Method 2: Print to a File
This method lets you capture the exact data sent to the printer without actually printing.
Steps:
1. Install a Generic Text Printer Driver
Go to Control Panel > Devices and Printers.
Click Add a printer → Select The printer that I want isn’t listed.
Choose Add a local printer.
Select PORTPROMPT: (Local Port) and click Next.
Choose Generic > Generic / Text Only → Click Next.
Name it Raw Print Capture → Click Finish.
2. Print to File
Select the Raw Print Capture printer.
Click Print → It will ask you where to save the file.
Save it as output.prn.
3. Analyze the File
Open output.prn in Notepad++ or a hex editor.
You should see raw print commands.
I hope this helps!
If my response resolves your issue, please click “Accepted Solution” to help others find the answer. Also, don’t forget to click the “Kudos/Thumbs Up” button to say thanks!
Take care and have a great day.
Max3Aj
HP Support
04-11-2025 11:18 AM
Follow-up question:
Looking at a raw print file it looks like something encrypted by the CIA, (wink!), containing a lot of characters and symbols in a disorganized pattern.
I could "print" the file but I suspect that I would receive a page with the garbage text printed on it instead of what the printer would render if given that file directly as print commands.
Is it possible to send the raw file to the printer in such a way that it would render the original document instead of the seemingly random assortment of characters?
Thanks!
04-12-2025 12:52 PM - edited 04-12-2025 12:53 PM
@jharris1993, Thank you for your response.
Great follow-up — and you're absolutely right! What you're seeing in the raw print file is not garbage (even if it looks like a secret NSA drop 😄); it's actually encoded binary data (often in printer-specific language, such as PCL, PDF, PostScript, or even HP's proprietary inkjet raster format). If you try to print the file like a text document, you'll get gibberish on paper.
But yes — you can send that raw file back to the printer, and if done correctly, it will render exactly as it did originally.
How to Send a Raw Print File to the Printer (Correctly)
🔸 Windows (Using print or copy command)
If your printer is connected via USB or shared over the network and you're on Windows:
Option 1: Using copy to LPT or USB Port
copy /b "C:\path\to\your\file.prn" \\your-printer-name
Or, if it's on a USB virtual port like USB001, you could try:
copy /b "C:\path\to\file.prn" "\\spooler\HP ENVY 6455e series"
- /b tells copy to send it as binary.
- You must use the raw path or share name of the printer (not just the friendly name).
Option 2: Using PowerShell with RawPrint
Start-Process -FilePath "C:\path\to\file.prn" -Verb PrintTo -ArgumentList '"HP ENVY 6455e series"'
🔸 Python Method (Programmatically Send Raw Data)
If you're up for a bit of scripting:
import win32print
printer_name = "HP ENVY 6455e series"
hprinter = win32print.OpenPrinter(printer_name)
job = win32print.StartDocPrinter(hprinter, 1, ("Raw Print Job", None, "RAW"))
win32print.StartPagePrinter(hprinter)
with open("C:\\path\\to\\file.prn", "rb") as f:
raw_data = f.read()
win32print.WritePrinter(hprinter, raw_data)
win32print.EndPagePrinter(hprinter)
win32print.EndDocPrinter(hprinter)
win32print.ClosePrinter(hprinter)
Make sure the file is opened in binary mode ('rb') to avoid corruption.
⚠️ A Few Gotchas:
- Your printer must support raw job reception. Most inkjets do, but they may restrict raw jobs sent outside of the official print pipeline.
- Ensure the file you're sending is valid for your printer model (e.g., not a PostScript file for a non-PostScript printer).
- Some apps may create XPS, EMF, or GDI print formats which cannot be replayed easily outside their original driver environment.
I hope this helps!
If my response resolves your issue, please click “Accepted Solution” to help others find the answer. Also, don’t forget to click the “Kudos/Thumbs Up” button to say thanks!
Take care and have a great day.
Max3Aj
HP Support
04-13-2025 12:29 AM
So, (in essence), if I copy it direct to the print spool name and/or direct to the device, it should "print" the original document, sort-of like copying direct to a device in Linux (/dev/sda - a hard drive, etc.).
I assumed that the "gibberish" was something like a rasterized image of the document or something similar. (Great for seeding a random number generator or providing entropy for an RSA key.)
Is it possible to "virtualize" the printer so I can try things and see the result without sending pages to the actual printer?
Is there any development documentation for this printer?
Thanks!
04-13-2025 01:54 PM - edited 04-13-2025 01:54 PM
@jharris1993, Thank you for your response.
You nailed it with the Linux analogy — sending a raw print job directly to a printer in Windows is very much like doing a cat file > /dev/lp0 or /dev/usb/lp0 in Linux. If you send it the correct type of job (PCL, PDF, raster, etc.) and the printer is set to interpret raw data, it will print it just as it did originally.
Clarifying What That “Gibberish” Is
You're also spot on again — that “gibberish” in the .SPL file is typically either:
- PCL 3 GUI / PCLm: A compressed raster format HP uses for inkjet printers (especially in their newer Envy and DeskJet lines).
- Raster graphics in a proprietary format HP doesn’t publicly document in full.
- PDF-like structures for newer driverless ("AirPrint" or "IPP Everywhere") print paths.
So yes — like a pre-chewed bitmap image or a weird custom PDF built to speak to HP’s internal firmware.
And yes — it would absolutely be great for entropy 😂
🧪 Is It Possible to Virtualize the Printer?
Yes — and there are a few powerful ways to do this. You can create a fake printer and inspect what would’ve been sent.
✅ Option 1: Microsoft’s Print to File (PRN/RAW Capture)
This gives you a .prn file you can replay later, as we discussed earlier. Not a full virtualization, but easy to test outputs.
✅ Option 2: Use a Virtual Printer Emulator (Software)
1. Printfil
- Emulates a printer port (LPT, USB, or raw IP) and captures output.
- Saves jobs to files (PCL, PostScript, PDF).
- Good for visualizing print jobs.
2. PPR (Printer Protocol Router) / CUPS in Linux
- You can set up CUPS on Linux to emulate a printer using cups-pdf, gutenprint, or even ghostscript-based filters.
- Point a Windows system to this “printer” over IP or SMB.
- Logs and stores jobs so you can inspect them.
3. [Ghostscript + cups-pdf on Linux/macOS/WSL]
- Acts like a printer and lets you analyze PostScript/PDF print data before sending to a physical device.
- With filters like ps2pdf, pdf2ps, rastertopcl, you can see exactly what happens inside the printer driver stack.
4. [Virtual USB Printer in QEMU (Advanced)]
- Emulates a USB printer device at the kernel level.
- Very advanced — you'd use this if you're writing firmware or fuzzing print protocols.
If You're Experimenting...
Here’s a good combo to try:
- Create a CUPS virtual printer with cups-pdf or gutenprint.
- Share that printer over IP/SMB to Windows.
- Print from Windows → capture & analyze the output files.
- Compare those files to what gets sent to the real HP Envy.
It gives you a safe sandbox for experimentation — no paper wasted, no ink spilled.
I hope this helps!
If my response resolves your issue, please click “Accepted Solution” to help others find the answer. Also, don’t forget to click the “Kudos/Thumbs Up” button to say thanks!
Take care and have a great day.
Max3Aj
HP Support