Samsung SCX 4200

  • Henning Schroeder

    are there any chances that I could use this driver for the Samsung SCX 4200? It is a multifunction-printer with scanner and I would like to get rid of the proprietary driver :)


    • Arnold Theodor

      Arnold Theodor - 2008-07-01

      Hello everybody,

      I found out that the Samsung SCX-4200 works when compression is turned off (i.e Splix compiled without JBIG).

      Tested with ml2010.ppd.

      So it seems that the SCX-4200 is designed to use a compression method which is not yet supported by Splix. And it works without compression.

      For anyone interested: here is Cups' test page converted to printer data by the original driver from Samsung:

      Hey, it would be nice to have a setting for the compression method in the ppd file, and to support compression method "None".


    • Leonardo Hamada

      Leonardo Hamada - 2008-07-03

      See if this works for you.


      Experimental driver for wc3119 and scx-4200:

      Belém-Pará, Brazil - July 3, 2008 - 10:23A.M.

    • Arnold Theodor

      Arnold Theodor - 2008-07-03

      Hi Leonardo,

      your additions work perfectly here (at least for Cups' test page). Page looks same as one printed with Samsung's filter.

      I permanently switch the filter to splix2rc2+experimental_algo0x0D.

      In case someone complains I will report (not that we really print very much here at home).

      Quite impressed from you reengineering folks,

    • Ryan Hayle

      Ryan Hayle - 2008-10-12

      I would love to use this driver with my SCX-4100.  I will try to compile it without JBIG support and see what happens.  The file Leonardo posted is no longer on, any chance of seeing those changes again?  Are they in SVN?  I know I'm asking for the world, I'm just happy there is an open source effort that might get my printer working!


    • Aurélien Croc

      Aurélien Croc - 2009-04-05

      The driver for SCX-4200 is available with the splix release 2.0.0 :)


  • tim

    tim - 2009-11-08

    Hi Aurélien,

    <p>thanks very much for the driver. It works perfectly for SCX4200 (Debian lenny). </p>
    <p> Currently i'm trying to use this driver in embedded linux (small semester project :). I tested the "rastertoqpdl" with foomatic-rip in a PC, (without spooler),and it works great. I can get the QPDL content and save into file. since the size of foomatic is too big for embedded system and It invokes ghostscript externally which means more space.  i was hoping to use the "pstoqpdl" and "rastertoqpdl" directly. so that my application which generates "ps" or "raster" output can be piped to those two programs. </p>
    the process i prefer is "document->raster->qpdl->i/o backend". but i'm stuck in rastertoqpdl. i don't what kind of "raster" input is acceptable for "rastertoqpdl". i tried to use gs to convert a "ps" file to "raster", however, after pipe thru "rastertoqpdl", the qpdl output sent for printing gets error (on printed paper)

    > <p>POSITION: 0x140 (320)</p>
    > <p>SYSTEM   : H6FW/xl_tbl</p>
    > <p>LINE          : 407</p>
    > <p>VERSION : QPDL 1.40 11-14-2005</p>

    (All above processes are still tested in PC environment)

  • Leonardo Hamada

    Leonardo Hamada - 2009-11-09

    "raster" stands for cups-raster format, I guess. Check for yourself in the cups raster api docs, perhaps this helps you?


  • tim

    tim - 2009-11-09

    Hi Leonardo,

    Thx very much for pointing that out. Yes i think you are right. the "raster" is "cups-raster". i'm not familiar with graphics. was totally confused :p. (it might be a tough topic in IT field.)

    So Here is what i tried again. by "gs -h | grep cups", there is one output device "cups" specific for cups-raster, i believe. so I manually invoke `gs -sDEVICE=cups -sOutputFile=example.raster`
    in hopes of getting a "cups-raster" file. (Am i right here?). next
    `export PPD=/path/to/scx4200.ppd  #setting up the PPD environment variable`
    `/usr/lib/cups/filters/rastertoqpdl 5000 tim title 1 "" example.raster > /dev/usb/lp0` and I get the error: "SpliX Compression algorithm 0x0 does not exist". I dont know why the _compression is not set for Page class. So I modify the "**compress.cpp**", and force it to use 0x11 algorithm

    > switch (page->compression()) {
    > …
    > default:
    >  page->setCompression(0x11);
    > return _compressBandedPage(request, page);

    after I recompile the program and rerun, the result is same as previous error (last msg). What could be the mistakes i made during this process?

    Best Regards,


  • Leonardo Hamada

    Leonardo Hamada - 2009-11-09

    I've never attempted to do the way you're trying to.

    Some observations:

      gs must generate the raster with proper resolution, say 300dpi and with valid page dimension and maybe with other parameters?

    Monochromatic laser in splix filter accepts
       1-bit raster data, look at the
       specific ppd section.

        *Resolution 300dpi/300 DPI: "<</HWResolution/cupsBitsPerColor 1/cupsRowCount 0/cupsRowFeed 0/cupsRowStep 0/cupsColorSpace 3>>setpagedevice"


    scx-4200 accept compression 0xD or 0xE, up to where I'm aware of, 0x11 won't work (print).

    Eventually, you will figure out things.


  • tim

    tim - 2009-11-09

    ye. I tried to grep the output thru "foomatic-rip". The used compression algorithm is 0xd. and as mentioned in "compress.cpp" comment:

    > if algorithm 0xd did not create a plane, it means that the complementary algorithm 0xE need to be used

    and the DEBUG msg indicates the type=0xe. (one problem cleared.)

    I read some parts of the foomatic source code. It indeed does more than simply create a pipe "pstoraster | rastertoqpdl". A lot of parameters has to be sent if manually invokes gs. headache… but it's getting more fun :D

    thanks very much for you concern, Leonardo.  I'll try to read more about this.

    best regards,



Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks