In our software we need to be able to convert SPL files which printer drivers write to the C:\Windows\System32\spool\PRINTERS folder to PDF files. For SPL files in PCL format we perform this conversion using pcltool.exe from VeryPDF, which mostly works fine. However we are having trouble with SPL files generated by the printer driver "Canon iR-ADV C5235/5240 PCL6". As an example, the following SPL file results from printing out a single page in notepad with the word "something" on it:
http://files.etvdzs.info/00025.spl
Converting 00025.spl using pcltool.exe results in a 70-page PDF with a row of garbage characters at the top of each page. Attempting to open 00025.spl using other PCL viewers gives similar results. We asked VeryPDF and they told us it is not a valid PCL file.
Can anybody tell me what exactly is invalid about this file? Is there any possibility of converting it to valid PCL or otherwise extracting usable data from it?
Incidentally, we had a similar problem with Postscript files generated by the "Canon iR-ADV C5235/5240 PS3" printer driver. There were binary sequences beginning with $CDCA10 and ending with $FFFF000000000000000001 at various positions in the files. After removing these sequences, we were then able to convert the files as normal. I tried a similar solution for the files generated by "Canon iR-ADV C5235/5240 PCL6", but unfortunately was not successful.
EDIT (13 Sep 2013): It seems that the binary sequences are CPCA codes. I was able to obtain documentation about CPCA by signing up for the Canon Developer Support Program at the following URL:
https://www.developersupport.canon.com/user/register
After reading this documentation, I wrote a program to remove CPCA codes from spool files. This is the result of running the program on the file 00025.spl from above:
http://files.etvdzs.info/00025.cleaned.spl
Unfortunately this still doesn't seem to be a valid PCL file :-( Can anybody tell me what exactly is wrong with this file? Is there any possibility of converting it to valid PCL or otherwise extracting usable data from it?
P.S. The program I wrote does successfully convert spool files generated by the printer drivers "Canon iR-ADV C5235/5240 PCL5c" and "Canon iR-ADV C5235/5240 PS3" to valid PCL and Postscript respectively, so I don't think it is a simple matter of the program not working.