The Samsung SPL2 printer language allows bands to be encoded either as big endian or as little endian. However, ML-1610 suppoers only little endian bands. Splix will encode the bands as host-endian, so on a BE machine it will generate bands that the printer does not understand and it will print a blank page. Reproducible: Always Steps to Reproduce: 1.Print to a Samsung ML-1610 printer from a big endian system 2. 3. Actual Results: The printer pushes out a blank page Expected Results: The page is printed with the correct contents, like it is when printing from a little endian host. The ML-1610 only uses compression format 0x11, so the issue can be fixed by modifying the Algo0x11 implementation to generate BandPlane::LittleEndian bands instead of BandPlane::Dependant. Fortunately the only endian-dependent data is the total length and the pointer table, so it's a simple fix.
Created attachment 558180 [details, diff] Patch for making algo0x11 always generate LE bands
Eh, sorry, I meant the length of the uncompressed prefix, not the total length. (The total length is in the band header which is always encoded as BE.) The patch is correct though. :-) // Marcus
Thanks for the report and patch! It looks good from a quick look, will commit this after testing with my printer
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=251405fcbb39497047cdd5f878dca0749286fd7b commit 251405fcbb39497047cdd5f878dca0749286fd7b Author: Bernard Cafarelli <voyageur@gentoo.org> AuthorDate: 2019-01-04 20:36:51 +0000 Commit: Bernard Cafarelli <voyageur@gentoo.org> CommitDate: 2019-01-04 20:38:16 +0000 net-print/splix: fix for big-endian hosts Closes: https://bugs.gentoo.org/673454 Package-Manager: Portage-2.3.53, Repoman-2.3.12 Signed-off-by: Bernard Cafarelli <voyageur@gentoo.org> .../files/splix-2.0.0_p20130826-algo0x11_le.patch | 33 +++++++++++ net-print/splix/splix-2.0.0_p20130826-r1.ebuild | 66 ++++++++++++++++++++++ 2 files changed, 99 insertions(+)