Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Canon I-SENSYS MF3228 ? #15

Open
bazhenstvo opened this issue Aug 9, 2021 · 7 comments
Open

Canon I-SENSYS MF3228 ? #15

bazhenstvo opened this issue Aug 9, 2021 · 7 comments

Comments

@bazhenstvo
Copy link

is there any possibility to make MF3228 print on macOS BigSur somehow?

@ondrej-zary
Copy link
Owner

ondrej-zary commented Aug 9, 2021

MF3200 series is currently not supported. The data format is different and someone has to reverse engineer it first.

@bazhenstvo
Copy link
Author

@ondrej-zary Are there plans to perform reverse engineering and add support for MF3200 series?

@ondrej-zary
Copy link
Owner

I don't have time and hardware (printer) to do it. Most of the work could be done without the HW (print various patterns in Windows to a file and analyze). But once the data format is reversed, data generation requires testing on real printer. While comparing generated data with output of the Windows driver is possible, I couldn't match it exactly. The method of choosing compression type by the Windows driver is unknown - but it's not a problem as soon as the printer can print the generated data correctly.

The FAX-L120 is first in the queue because I have the printer. But no free time.

@bazhenstvo
Copy link
Author

I have this printer, so I can facilitate. However, I don't know what and how to do, so if you could instruct me or give a link to some documentation, I could give it a try and share with the results.
Or in case you have time for this, you may perform work that can be done without the printer, and I could test and do the rest.

@redjoe
Copy link

redjoe commented Dec 6, 2022

Data compression by CCITT Group 4.
Extract data from file. Converted to tiff fax2tiff -4 -X 2360 <filename> -o result.tiff where width=2360.

Header 0x6b structure:

0x6b: 
document name: 
    \x00\x04\ + magic bytes (\x00\xf0\x00\x01\x01\x00\x04\x00) + ( character count + 3) + \x00\x11 + character count + name

username: \x00\x06 + magic bytes (\x00\x07) + \x00\x11 + character count + user

time: \x00\x09 + magic bytes (\x00\x08) + \x7D\xE1\x43\x00\x0C\x12\x46\xEC	(UTC)
                                            ^^  ^ 2014
                                                ^ JANUARY
                                                    ^^ DAY (5bit) + DAY OF WEEK (3bit)
                                                        ^^ SEPARATOR
                                                            ^^ HOUR
                                                                ^^ MINUTES
                                                                    ^^  ^^ SECONDS (6bit) + MILLISECONDS (2+8bit) (?)

Bytes difference marked red color in data block.

Снимок экрана от 2022-12-05 23-01-21_

@mounaiban
Copy link

Thanks @redjoe for doing the detective work. If the MF3228 actually uses G4 compression when printing from a PC, this could make support a lot easier to implement. GhostScript already has a G4 output device (-sDEVICE=faxg4).
I am expecting the '3228 to support G4 images from any encoder, without any special requirements or restrictions.

@ondrej-zary
Copy link
Owner

Thanks for analysis. I'll try to do some testing. I have a FAX-L120, maybe it uses this format too. It makes sense as it's a fax with printing capability.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants