Follow Slashdot blog updates by subscribing to our blog RSS feed


Forgot your password?
Graphics Software

Split Print Job to Color and B&W? 30

cheros writes "I work in an office which has various printers, and printing documents with a few color diagrams in is actually a pain. Due to the high cost of the color prints the preference is to use B&W, and print the color pages separately (with obviously an finishing stage to collate and merge the two). Is there a print filter that would automatically split the PostScript print job into a feed for two different queues? (and yes, we use B&W drawings where possible ;-)."
This discussion has been archived. No new comments can be posted.

Split Print Job to Color and B&W?

Comments Filter:
  • by dschuetz ( 10924 ) <david.dasnet@org> on Tuesday March 12, 2002 @08:34AM (#3148354)
    To answer the question: I have no idea if such a filter exists, sorry. But it's a cool idea.

    On the other hand, don't most "modern" color printers (especially the toner-based ones) print b&w almost as cheaply as regular printers? I seem to recall that some Tek wax printers even came with "free black for life" to encourage use of the printer as the primary output device (you'd short-circuit their moneymaking strategy by making sure that only a few pages in the run contain any color).

    The only other thing I can think of is to send the whole document to a B&W printer, then only the color pages to the color printer, but then again, that's probably the way you do it already. :(

    If you're working with unix print servers and postscript printers, then I'd think it should be relatively easy to write such a filter. It'd get a bit hairy when you try to do double-sided stuff, as you'd have to track which side you were currently processing and send both sides (where one is color) to the color printer. But it should be reasonable to do, I'd think...

    input filter:
    - receive pages
    - scan page (or pair of pages on a single sheet)
    - is color there?
    ? yes, write this postscript snippet to file A
    ? no, write the snippet ode to file B
    - when done:
    - lpr -Pcolor a
    - lpr -Pgreyscale b
    - lprm self

    Or somesuch. Of course, I haven't screwed around with lpd print filters in, oh, 5+ years, so I may be way off base.

    My advice: Find a unix geek (preferably a PS-aware perl programmer) and promise them a six-pack of really nice beer if they can solve the problem for you. :) [of course, if you're using a windows print server, you'd better make it a case.]

    good luck!
  • SpoolQ [] reckons to split print jobs on an ad hoc basis, but not automatically colour and B&W, Sorry.OTOH a modern colour laser printer shouldn't cost more for B&W than a mono oneHTH
    • last time I did the math the Color HP's printing B&W were 2.5x more expensive than a standard B&W laser.

      The math took into account the cost of all consumables, like toner(duh), drum life, fuser, rollers, basically anything that had to be replaced.

      -- Tim
  • by CrisTUFR ( 533587 ) on Tuesday March 12, 2002 @08:42AM (#3148387)
    I have a Xerox XPrint 4920 Plus colour laser printer here, and I see where you're coming from with this question. The thing I'm wondering is why the printer you have doesn't do the job-splitting for you... Colour toners for this bad-boy cost about $350 CDN each (C,M,Y) and the black toner is only about 60-80 bucks CDN. The difference in price (and speed, as B&W prints come out at 12ppm vs. 3ppm for colour) means that I can use this printer for both my colour and black&white needs. Obviously, B&W is higher quantity, and when printing mixed documents, it seems stupid to print through the CMYK process... Well, here's where the printer gets smart -- it doesn't print the pure B&W pictures through the CMYK process. It appears that the printer figures out that it only needs the black toner and just sends the page there. I don't see why you would need to split the actual printers if the printer *should* be doing the splitting for you (and keeping costs down adequately). I guess the particular printer you're using must have a very expensive black toner... NOTE: The XPrint 4920 Plus was introduced in '95 and is by no means a 'new' printer.
    • I for one would like the ability to do this. The "cheap" HP colour laser I used to have access to was several thousand pounds, and did indeed have 4 separate toner cartridges... however the colour laser still had several drawbacks:

      • Worse b&w print quality
      • "shiny" paper effect, presumable due to a higher fuser temperature
      • Slower than the dedicated b&w printer that was available - HP 8150 (even in b&w only mode)
      • Much smaller cartridges so they run out very quickly if doing lots of b&w prints
      • More expensive black toner than for the 8150

      From my point of view an auto-splitter would have been great, print the bulk of a 100+ page report to the nice high quality HP 8150, and at the same time have the colour pages sent to the slow colour printer. This would have 2 advantages, nicer quality black print, and faster printout as the b&w part of the document doesn't have to "wait" for the colour pages to be processed.

    • Chances are yes - the printer already does that.

      If your color printer is CMYK, then you're already saving as much money as you could. Granted, you're shortening the life of the fuser by running more pages through it, but in the end the cost is so minimal that one person printing wedding shower invitations will blow your savings to hell.

      Now, if your color printer is RGB, then you are printing RGB black and it is costing you more. My suggestion (if you really want to save money in the long run) is to get a CMYK color printer to do double duty. You'll only be using one printer to do all your printing, and as the parent post said the black toner is a lot cheaper than the color.

      Note: to my knowledge, the HP color printers are all RGB. Coming from a print environment, this does really suck.

  • I don't know of any software that does the trick - but I don't think it would be that difficult to implement.

    One solution to this problem would be to filter postscript files by searching if they contain any color command (like setrgb, sethsb, colorimage). This solution is fast, but not very efficient: many postscript job contain headers that call the color operators, even if they are not needed (often they included by code that overloads such calls with a grayscale equivalent). Still this would be a first (fast) mean of finding black and white postscript filter.

    A more complex, and more effective solution would be something like this.

    1. Convert each page of the job to a low resolution bitmap (this can be done using gs and postscript management scripts)
    2. For each bitmap page, check for colors (grascale pixel are R==G==B).
    The problem of this approach is that it is quite expensive in terms of performance.

    Finnally, one trick that could work would be to add some functions in the postscript header. Basically, overload all color operators so that if they are called, they flag the current page (or better they check if the color or image they are passed is really color).
    If the flag is present ignore the next showpage operator and flush the graphic state.

    This way you can send the job to the black and white printer, and only the color pages will show. You send a slightly different version to the color printer, but in this case, you only print the flagged pages. Voilà

    That said, make sure that the black and white and the color printer are somehow similar (same resolution) if not, the two sets of pages (color and black and white), will look to different.

    • one trick that could work would be to add some functions in the postscript header. Basically, overload all color operators so that if they are called, they flag the current page (or better they check if the color or image they are passed is really color). If the flag is present ignore the next showpage operator and flush the graphic state.

      Oooh, I like this one. Combine this with what I'd described earlier -- have the input filter add this to the heder, with "ignore==color" and send to the B&W printer, then again with "ignore==b&w" and send to the color printer.

      Again, though, I think you're going to depend on having a geeky-geek there to write it for you (and more importantly, fix it when it runs across really weird data that doesn't quite fit right...)

  • Assuming that:
    • The B&W printer is signifcantly cheaper than printing black on the color printer and
    • There really is very little color printing to be done
    Why not just print everything B&W and the print the individual color pages to the color printer?
    • You are missing the point. The original request was to automate this process such that you do not have to look through the document and identify the pages that have color and then print them seperately. Depending on the document, this could take a considerable amount of time.
  • My experience is limited to an HP 4500, but it, at least, prints B&W only pages with only the black toner, noticeably faster than the color pages (one pass, I assume).

    The question would have been relevant for color lasers a few years ago, but I think the manufacturers have taken care of this.

    Now, if your color device is something painfully slow like a network-attached inkjet, then that's another story.

    If you're using PostScript it should be a fairly straightforward PS filter.
    • Read on and see that HP has solved this at the printer....

      I also delt with a HP 4500c at my old job. Besides needing to be vaccuumed out every month, and having the $170 immaging drum run out every 3-4 months, it did have the four toners, and a fifth extra big black only toner that ran a lot faster. The manual also said that if it was a b&w only page it went off the jumbo black toner, but if there was even a single pixle of color, it ran against all four color toners. (C,M,Y,& black).

      Our other office had the 8500c, but there always seemed to be a reason it was not in use... needing parts, new pickup pads, damaged roller, no yellow toner available, paper jam.
  • Most of these replies just aren't getting the idea of what you are trying to do... What he is trying to do is send the B&W portions of documents to some their B&W printers and the color portions to some of their color printers. The advantage of this is that B&W printers are inherently cheaper and faster than their color counterparts. Also, since color printers are slower than the B&W printers, printing only the few color pages to the color printer will keep the color printer free to print only color documents while the B&W prints are sent to the faster, cheaper B&W printers. If you find anything that does this, please let me know. We have HP 4500/4550s and they are slower than X-mas. We have Xerox N32/N3225/N4525 printers and they scream! Best of luck
  • by ip_vjl ( 410654 ) on Tuesday March 12, 2002 @10:31AM (#3149098) Homepage
    there's a page [] on richoh's site dealing with their Velocity product that seems to do this.

    Velocity Workflow software features a modular design that enables you to manage multiple print engines, balance print jobs or split print jobs between Aficio color and/or black and white print engines.

    This seems to be for those using their systems, but seems to offer evidence that the idea at least exists out there. Years back when I worked at Xerox, I thought I remembered something in development to balance a job between the B&W DocuTech and a color printer ... but don't know if it ever became a product, got worked into existing stuff, or became obsolete due to reduced printing costs on the color devices.


    BTW - searching google for split print color b&w popped this up first result.

  • by xiox ( 66483 )
    I have a script which isn't generally appropriate, but it might give you an idea of how to do it. It takes a dvi file and generates a set of postscript files, each contain black and white and colour sections.

    See []

    (released under the GPL)

    It works by generating postscripts for each page, converting to a bitmap, then scanning the bitmap for colour pixels. Not very clever, but works. I tried to examine the postscript itself, but it's very hard to find the colour in a postscript. It can easily be "encoded" in a jpg bitmap, or something else.

  • Think I did this... (Score:3, Informative)

    by Bazman ( 4849 ) on Tuesday March 12, 2002 @11:50AM (#3149751) Journal
    ..but I cant find the code. How did it work? Well, maybe like this...

    Write some postscript that redefines all the colour-setting commands and the colour bitmap commands. The redefined commands set a variable to say this page is colour.

    Redefine 'showpage' to only do a real 'showpage' if the 'page-is-colour' variable is set. Clear the variable.

    Now rerun, but reverse the logic to do 'showpage' on the mono pages. You can pass the sense of the logic to ghostscript on the command line.

    Of course this wont tell you if there is a grey-scale bitmap in a colour image command. You could always redefine the image command to check that all the pixels have the same r,g,b colours....

    I'll try and dig the code out.

    • This is a tremendously cool way to do it. One of the few truly excellent uses of Postscript as a language instead of just a page description thingy. (Fonts that randomly perturb themselves as you go so no two letters are alike is the other example I can think of.)
      • Except it doesn't always work and I've just found out why. StarOffice, for example, emits PostScript that looks like this:
        % initialise...

        % do stuff, draw things, set text, change colours...
        Now the problem here is that my code hooks into the postscript colour-changing functions and sets a variable if its colour. But the save/restore pair mean that whatever I change it to, it gets restored to the initial state by the restore! *sob*. Even objects in the systemdict get restored! The only thing that survives a save/restore is the graphics on the page.

        One last chance - I'll have to write the colour/mono state to a file! Yes!


  • I recommend the Phaser 860N du

    Free black ink for the life of the printer!

    You can't beat that!
    • I recommend the Phaser 860N

      We have one of these and I would issue only a cautious recommendation.

      • It will not print 1-color gray (!!!) in enhanced or high-quality mode. Instead you get a 4-color composite gray that looks like a yellowish tan. This is the number one problem we have the printer and frankly, it's ridiculous behavior, making it useless for a large number of basic print jobs. I've spent a lot of time on the phone with Xerox/Tektronix about this and the nutshell summary is yes, they're sorry, it is dumb, but it's not fixable.
      • The solid ink, while very vibrant, is really thick and shiny, creating a look not dissimilar to those cheapass puffy-ink business cards carried by ultimate cheesemaster door-to-door insurance salesmen.
      • Its color matching is not very good, despite all sorts of claims about Pantone calibration.
      • Effective color resolution is much lower than the HP color lasers.
      • Many light colors come out really freckled-looking because the dots are fixed-size and comparatively large.

      In short, if you're looking for a general-purpose, cost-effective printer for PowerPoint slides and printing out web pages to tack on the break-room bulletin board, this might be the printer for you.

      If, on the other hand, you're expecting to do any serious proofing, graphics work, etc., then run, don't walk, away as fast as you can.

"To IBM, 'open' means there is a modicum of interoperability among some of their equipment." -- Harv Masterson