Brother printer fails to print anything but a blank page

Bug #950713 reported by Sami Haahtinen on 2012-03-09
This bug affects 13 people
Affects Status Importance Assigned to Milestone
cups-filters (Ubuntu)
Till Kamppeter

Bug Description

I've been seeing this regression from 11.10 where my Brother printer fails to print anything but an empty page. The second printer which is a HP Laserjet prints correctly.

I've tried switching drivers between the ubuntu provided ones and brother provided ones, but there doesn't appear to be any change in behaviour. This leads me to think that it must be related to cups directly.

I've run out of things to debug, so I can't really provide any more information without more information on where to look.

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: cups 1.5.2-6
ProcVersionSignature: Ubuntu 3.2.0-18.28-generic 3.2.9
Uname: Linux 3.2.0-18-generic x86_64
NonfreeKernelModules: fglrx
ApportVersion: 1.94.1-0ubuntu1
Architecture: amd64
Date: Fri Mar 9 12:41:23 2012
 device for Brother-DCP-9010CN: ipp://
 device for hp-LaserJet-2300-series: socket://
MachineType: System manufacturer System Product Name
Papersize: letter
 hp-LaserJet-2300-series: HP LaserJet 2300 pcl3, hpcups 3.12.2
 Brother-DCP-9010CN: Brother DCP-9010CN BR-Script3
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.2.0-18-generic root=/dev/mapper/hostname-root ro quiet splash vt.handoff=7
SourcePackage: cups
UpgradeStatus: Upgraded to precise on 2011-12-27 (73 days ago) 08/13/2010
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 2104
dmi.board.asset.tag: To Be Filled By O.E.M. M4A785TD-M EVO
dmi.board.vendor: ASUSTeK Computer INC.
dmi.board.version: Rev X.0x
dmi.chassis.asset.tag: Asset-1234567890
dmi.chassis.type: 3
dmi.chassis.vendor: Chassis Manufacture
dmi.chassis.version: Chassis Version
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr2104:bd08/13/2010:svnSystemmanufacturer:pnSystemProductName:pvrSystemVersion:rvnASUSTeKComputerINC.:rnM4A785TD-MEVO:rvrRevX.0x:cvnChassisManufacture:ct3:cvrChassisVersion: System Product Name
dmi.product.version: System Version
dmi.sys.vendor: System manufacturer
mtime.conffile..etc.apparmor.d.usr.sbin.cupsd: 2012-02-29T16:56:47.718832

Sami Haahtinen (ressu) wrote :
Till Kamppeter (till-kamppeter) wrote :

Can you run the following commands in a terminal window and then try to print:

cancel -a
lpadmin - p Brother-DCP-9010CN -v socket://

Does this work?

If not, try

cancel -a
lpadmin - p Brother-DCP-9010CN -v lpd://

Changed in cups (Ubuntu):
status: New → Incomplete
Sami Haahtinen (ressu) wrote :

Both of them still output an empty page.

Till Kamppeter (till-kamppeter) wrote :

Can you follow the instructions of the sections "CUPS error_log" and "Capturing print job data" on Thanks.

Sami Haahtinen (ressu) wrote :

I'll attach the error_log. As for the print job data, the output contains the original data as is, but still the output is empty on paper. The original data was in PDF format.

Till Kamppeter (till-kamppeter) wrote :

Please run the following commands:

cupsctl FileDevice=yes
lpadmin -p test -E -v file:/tmp/printout -P /etc/cups/ppd/Brother-DCP-9010CN.ppd
lpr -P test /usr/share/cups/data/testprint

Now wait until the job finishes ("lpstat -o" should not list the job any more) and enter the commands

sudo chmod 777 /tmp/printout
sudo apt-get install gv
gv /tmp/printout

Do you get a blank page displayed? Or the test page?

The commands clone your print queue with the clone printing into a file instead of to the printer. Then a test page job is sent to the clone and the PostScript data which is usually sent to the printer is displayed on the screen.

Jérôme Poulin (jeromepoulin) wrote :

Same problem with MFC-8860DN

jerome@ganas0201:~$ cupsctl FileDevice=yes
jerome@ganas0201:~$ lpadmin -p test -E -v file:/tmp/printout -P /etc/cups/ppd/Brother_MFC-8860DN.ppd
jerome@ganas0201:~$ lpr -P test /usr/share/cups/data/testprint
jerome@ganas0201:~$ lpstat -o
jerome@ganas0201:~$ gv /tmp/printout

I get colored circles.

Jérôme Poulin (jeromepoulin) wrote :

I forgot to add that I also get blank pages on MFC-9840CDW.

Till Kamppeter (till-kamppeter) wrote :

TiCPU, do you get the complete test page in comment #7 or only the colored circles?

Sami Haahtinen (ressu) wrote :

Just finished the tests in comment #6, the /tmp/printout file contains coloured circles as I would expect.

Can you send the /tmp/printout file to yor printer unfiltered:

lpr -P Brother_MFC-8860DN -oraw /tmp/printout

Do you get a correct printout or a blank page?

Sami Haahtinen (ressu) wrote :

I still get an empty page with raw output.

Do you still have a machine with old Ubuntu version where printing still worked for you?

If so (or booting an old live CD) please follow my instructions of comment #6 also on the old system and verify that the /tmp/printout there works ( comment #11).

Please attach the /tmp/printout files of both the old and the new systems.

Sami Haahtinen (ressu) wrote :

Here is a printout that works, collected from Ubuntu 11.10

Sami Haahtinen (ressu) wrote :

And here is a printout that doesn't work from 12.04

Can you print one and the same PDF file, via

lpr -P test file.pdf

on both systems, verify that raw printing the /tmp/printout file works only on the old system and then attach the two /tmp/printout files? This way I can compare the results.

Try to do the unfiltered printing (on 12.04) with the following command

nc -w1 9100 < /tmp/printout


sudo apt-get install netcat-openbsd

if you do not have "nc" installed.

Does it print this way?

Jérôme Poulin (jeromepoulin) wrote :

I can confirm to see the whole test page in gv from printout, with Ubuntu, color circles and job information with border.
I then tried sending it to the printer and I get a blank page out.

For your information, even jobs with multiples pages only output a single page.

TiCPU, did you also try to do the unfiltered sending of the /tmp/printout file as described in comment #17? Replace the IP address by your printer's IP address if this one was not yours.

Jérôme Poulin (jeromepoulin) wrote :

Yes, this is what I tried, I sent the /tmp/printout file to my printer on port 9100 and a blank page was printed.

On Mon, Mar 12, 2012 at 15:48, Till Kamppeter <email address hidden> wrote:
> Try to do the unfiltered printing (on 12.04) with the following command
> nc -w1 9100 < /tmp/printout

I did 3 tests:

% nc -w1 9100 < /tmp/printout-11.10
% nc -w1 9100 < /tmp/printout-12.04
% lpr -P Brother-DCP-9010CN -oraw /tmp/printout-11.10

11.10 printouts provided a working output while 12.04 only resulted in
an empty page.

Sami Haahtinen
Bad Wolf Oy

icb410 (ian-berke) wrote :

I have this problem with a Brother HL-5250DN printer also. Don't know if it's related, but I get an info message in the printer properties dialog that the Toner is empty. However, that shouldn't be a problem since it was changed fairly recently.

icb410 (ian-berke) wrote :

Using the files above, I can print the 11.10 file with
> lpr -P Brother-HL-5250DN-series -oraw printout-11.10
but not
> lpr -P Brother-HL-5250DN-series -oraw printout-12.04

Again, I don't know if it's meaningful, but there is quite a delay with the working file (like the printer is parsing data) and none at all with the non-working file (get blank page spit out immediately).

I finally fixed it by going through all the drivers... This one works for me:
 Brother HL-5250DN Foomatic/pxlmono

I'll attach the output from the original, recommended driver (BR-Script3) that doesn't work and the new driver.

Here's the one that doesn't work.

Jérôme Poulin (jeromepoulin) wrote :

On my side one has a toner low message, the other is in ready state.

Perhaps you have the same problem as I have found out together with another users on Kyocera printers. Current Ghostscript produces PostScript which the printer does not print. See bug 951627, comment #11:

Deeper investigation shows that most probably the problem is Ghostscript. The PostScript generated by Ghostscript 9.04 (Oneiric) prints on Kyocera printers and the PostScript from Ghostscript 9.05 (Precise) does not print on Kyocera printers.

Perhaps the same applies to Brother printers.

Open an application like evince, gedit, Firefox, ... Print a document into a PDF file by using the "Print to file" function of the print dialog. Choose PDF as output format.

Copy the resulting file to your Oneiric box.

On the Oneiric box run

pdf2ps file.pdf

and copy the resulting file back to your Precise box.

On the Precise box run

pdf2ps file.pdf

Attach the two PostScript files to this bug report.

Print both files unfiltered, with the "nc" command from comment #17.

Do they print?

icb410 (ian-berke) wrote :

Here's the one that works from the Foomatic/pxlmono driver, but it's a binary file

Note that pxlmono should always print and that this would be the quick workaround until we have the real fix.

icb410, you forgot to attach the working file.

icb410 (ian-berke) wrote :

See comment #26 for the file. There were posts while I was finding the file to attach.


Comment #26 has a pxlmono file attached. What I need is the PostScript output of 11.10 (which works) and of 12.04 (which does not work).

What is missing is the PostScript output file of 11.10.

Please also follow the instructions of comment #25.

Also have this bug with a Brother HL-5280DW printer. Ubuntu 12.04 Beta 1. 32-bit.

Can you all turn on the facility of error message page printing on your Brother printers, using the front panel menues or the printer's web interface (http://<printer's IP>/), then send the PostScript file from Precise again and scan/photograph the error message page (should come out in addition to the empty page).

Can everyone please do the following tests:

In comment #25 I asked to create a PDF file via "Print to file" and to convert it to PostScript using Ghostscript. Please add parameters to the pdf2ps command now, one at a time. Try the following parameters:

-dCompressPages=false -dCompressFonts=false

For example

pdf2ps -dLanguageLevel=2 file.pdf

Print the output file unfiltered, with the "nc" command of comment #17.

What is the reaction: Blank page, no page, what is printed on an error message page if you get one?

If none of the parameters helps, try also combinations of more than one parameter.

If you are still out of luck try also to print a PostScript file of an empty page and/or a fontless page, reate with LibreOffice, export to PDF, open with evince, "Print to file", convert the resulting PDF to PostScript as described here, print with "nc".

Sami Haahtinen (ressu) wrote :

On Tue, Mar 13, 2012 at 13:16, Till Kamppeter <email address hidden> wrote:
> Can you all turn on the facility of error message page printing on your
> Brother printers, using the front panel menues or the printer's web
> interface (http://<printer's IP>/), then send the PostScript file from
> Precise again and scan/photograph the error message page (should come
> out in addition to the empty page).

At least on DCP-9010CN, there is no such option.

I also did the tests in comment #25 and for me, both of the files fail
to print. I'm attaching the files here just in case.

Sami Haahtinen
Bad Wolf Oy

Hi Till, this option appears to already be active on my Brother 5280, but no error messages are forthcoming. This evening, if nothing else, I can still try to follow through with the rest of your instructions.

Just want to throw this out there. I'm using 12.04 on a separate partition. Xubuntu 11.04 is installed on another (the printer fuctions correctly on the older install). It would be easy for me to copy and paste the files from the 11.04 partition if I knew which files to copy (and if you thought that might provide useful information(?)).

Sami Haahtinen (ressu) wrote :

On Tue, Mar 13, 2012 at 13:36, Till Kamppeter <email address hidden> wrote:
> What is the reaction: Blank page, no page, what is printed on an error
> message page if you get one?

Running through these options all provided me with empty pages (even
on 11.10) which lead me to verify that there actually was some data on
the file (just by printing the page normally). The only option that
caused different output was -dASCII85EncodePages=false which caused
garbage to be printed.

I used the hello.pdf as base for testing, which was generated with
libreoffice and contains a single word "Hello".

Sami Haahtinen
Bad Wolf Oy

cliddell (cjl) wrote :

After a *lot* of help from a user of the Kyocera printers which *seem* to have the same problem, we've come up with a *possible* solution - although, note that the Kyocera printer showed a different symptom: it froze.

But, anyway, could someone with the Brother printers seeing this problem try this file:

And post here if you see improved/different behaviour.



Just tried to a Brother MFC 9460CDN using Document Viewer - result, blank page.

nc -w1 9100 <

Again - single blank page



Changed in cups (Ubuntu):
importance: Undecided → High
cliddell (cjl) wrote :


Thanks for trying it. It's a shame it didn't work......

This is a bit of a long shot, but I've "instrumented" a simple PS file, if you (or someone) wouldn't mind sending it to the printer with nc (sorry, but without access to the actual printer, it's a bit of stabbing in the dark):

That file, run to completion, should print a series of numbers up to a maximum of 280, the a few lower numbers after that - the last line of numbers looks like "279 280 208 209 210 211 212 213 214 215".

I'm hoping *some* of those numbers will appear on the page that finally gets ejected from your printer. If not we'll have to try an even more tedious binary chop exercise.....



Got as far as 39 on the second line of text.
Also on the far left margin there is part of a number (maybe a 6??) just before the 26 on line 2. Not sure if that is relevant

Hope this helps


cliddell (cjl) wrote :


Thanks, that was helpful, but confusing. Here's another file for you to try. It will print a series of "here xx" statments in column, can you tell me what the last number "xx" is?

Some other questions:

I understand some of the printers with this problem have a web interface to a status page: does yours, and does it show stdout and stderr messages?

Also, this *could* get a bit tedious - is there a mthod of communication which would be more convenient for you, or is working through the bug tracker okay?


Note that the solution we have found for the Kyocera printers (bug 951627) does not solve the problem of the Brother printers. So please keep working with Chris Liddell (cliddell, cjl) from Ghostscript to find a solution.


Get to "here 5"

Will check web interface and see if it has this feature.


Chris, and anyone working with Chris on the solution: I highly recommend to use something like IRC or at least to refresh the bug report page frequently, as e-mail notification by Launchpad is delayed by around 15 minutes, to collect several rapid-fired contributions in one notification. Chris is "chrisl" on the #ghostscript IRC channel on Freenode.

cliddell (cjl) wrote :


So, the line immediately after the "here 5" print is attempting to retrieve the currently defined halftone for the printer. I wonder if Brother have some "clever" halftone tech that they hobble the currenthalftone operator......

This is the same test file as above, but with the line trying to retrieve the current half tone commented out:

Please can you try that? (again, sorry for all these tests......)

Thanks again......


cliddell (cjl) wrote :


A user joined us on IRC, and helped me further narrow the problem.

It turns out the Brother printers really do seem to dislike the currenthalftone operator - but instead of giving an error, which is the "correct" thing to do, it just chokes and spits the page out.

So we have the core of the problem. This may not be too easy to work-around, but we've got good information now.


cliddell (cjl) wrote :

So, I looked at the logic in the Postscript prologue, and I may have been a bit pessimistic in my assessment above - it really depends on how "clever" Brother have been in their implementation of this <ahem> "feature".

Once again, can someone/anyone run this file:

to their Brother printer using "nc", please?

If someone finds this test works, could others try as well, please? This is such a strange problem, it would be good to get it confirmed on more than one Brother printer.


icb410 (ian-berke) wrote :

That last (#48) printed out ok for me using the Brother HL-5250DN BR-Script3 driver and an lpr command (sorry don't know the right address and port of the printer, I connect with dnssd).


Jérôme Poulin (jeromepoulin) wrote :

Works on MFC-9840CDW, prints out Ubuntu test page, color.

icb410, if you have done "lpr -oraw" it should be fine.

Sami Haahtinen (ressu) wrote :

On Tue, Mar 13, 2012 at 20:32, cliddell <email address hidden> wrote:
> If someone finds this test works, could others try as well, please? This
> is such a strange problem, it would be good to get it confirmed on more
> than one Brother printer.

This version works on DCP-9010CN. So one step closer to getting this fixed =)

- zanaga

Sami Haahtinen
Bad Wolf Oy

icb410 (ian-berke) wrote :


The command was:

> lpr -P Brother-HL-5250DN-series -oraw

cliddell (cjl) wrote :

That's great, thanks for all the help, especially from Robert and zanaga, really appreciate it.


I'm afraid it's a 3 lines, rather than just the one this time - to get this working, I prepended the following to the file:

/currenthalftone {//null} bind def
/orig.sethalftone systemdict /sethalftone get def
/sethalftone {dup //null eq not {//orig.sethalftone}{pop} ifelse} bind def

Hopefully, you can use the same mechanism for adding those lines for the Brother printers as you're doing for the single line Kyocera change.

*Very* interesting problem......


Chris, Robert, and zanaga, thank you very much on finding the fix for this bug, opening the way for a great Precise LTS!

Chris, I can add these three lines right to the beginning? Directly after the "%!..." line (would be the best place to get reliably past the PJL header)?

No problem that we have three lines now. The exact same mechanism does it also with three lines.

I am now working on the changes on the pdftops filter (package cups-filters) to do by-manufacturer post-processing to add these lines.

affects: cups (Ubuntu) → cups-filters (Ubuntu)
Changed in cups-filters (Ubuntu):
assignee: nobody → Till Kamppeter (till-kamppeter)
milestone: none → ubuntu-12.04-beta-2
status: Incomplete → Triaged
cliddell (cjl) wrote :


Yes, directly after the "%!..." line is fine.

In fact, if you can, it would be nice if you could include an extra comment just before these additions (for this and the Kyocera bug) with a note about why the extra lines are there - it might save come confusion debugging future issues.


OK, I will do so.

I have fixed the problem in cups-filters upstream (1.0.5) now. A Precise package is on its way.

Thank you very much for all your work on fixing this, Chris, Robert, and zanaga!

Changed in cups-filters (Ubuntu):
status: Triaged → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package cups-filters - 1.0.5-1

cups-filters (1.0.5-1) unstable; urgency=low

  * New upstream release
    - cups-filters 1.0.5 release
    - pdftops: Added insertion of workaround PostScript code for printers
      with bugs in their PS interpreters (LP: #950713, LP: #951627).
    - parallel backend: Break infinite loop (LP: #936647).
    - texttopdf: Complete the implementation of fontconfig-based font
      selection (Closes: #663070).
 -- Martin Pitt <email address hidden> Wed, 14 Mar 2012 11:43:22 +0100

Changed in cups-filters (Ubuntu):
status: Fix Committed → Fix Released

Just downloaded fixes. Printer works! Sorry I, myself, wasn't around to be helpful. Thank you!

Update works great on Brother MFC-9460CDN! Thanks.

Sami Haahtinen (ressu) wrote :

I can also confirm a working fix on DCP-9010CN, thanks to all who worked on the fix.

Jérôme Poulin (jeromepoulin) wrote :

As expected, I can confirm that it works on MFC-9840CDW too.

Bruce Stough (sbsrs) wrote :

After updating to today's fixes (including cups-filters 1.0.5), I was able to print .ps and .pdf files to my Brother MFC8680. I was also able to print a test document from abiword.

However, there were problems when I attempted to print a text file from gedit. The page header (giving the file name and page number) printed fine. However, the rest of the page was filled with faint dots and dashes which looked a bit like morse code. When I sent the same text file using lpr, I got the same dots and dashes (without the header).

Thanks for your work. It is getting closer.

Thank you all for confirming that this problem is solved now.

Bruce, for your text file printing problem please open a new bug report and follow the instructions of the sections "CUPS error_log" and "Capturing print job data" on Thanks.

By the way, I have uploaded foomatic-filters 4.0.14 and with this version also printing on Brother printers with "Foomatic/Postscript" drivers works, but you need to choose drivers/PPDs explicitly for Brother printers (manufacturer "Brother").

icb410 (ian-berke) wrote :

I can confirm and reproduce Bruce's problem with gedit. Otherwise things seem to be working on the HL5250

icb410, can you continue with your text file problem on bug 955553, reported by Bruce? Please follow all the instructions for testing and investigation of the problem which me and Chris (cliddel) have posted there? Thanks.

Michael Adams (unquietwiki) wrote :

CUPS 1.5.0 & Brother printers: I could print PDFs from a vendor website, using Chrome; not so with CUPS 1.5.2 on 12.04. Even the latest nightly for Xubuntu fails to print said PDFs on a Brother 4040; vendor says they print fine on HP. Is anyone having any issues with PDF printing on Brother or other printers, even with the current fixes?

Michael Adams (unquietwiki) wrote :

I was able to fix my own printing issues in Ubuntu 12.04.


1. In a terminal, sudo bash or login as root.
2. Make the /usr/lib/cups/filters/pdfwash file with your favorite text editor (nano or leafpad works).
3. Using the text editor, change the lines in the /usr/share/cups/mime/cupsfilters.convs file to look like what I posted.
4. chmod a+x /usr/lib/cups/filters/pdfwash
5. /etc/init.d/cups/restart
6. Exit the terminal.



    # CUPS filter to wash PDF output for printing


    temp_pdf=`mktemp /tmp/XXXXXX.pdf`
    pdftocairo -q -pdf -origpagesizes $6 $temp_pdf
    cat $temp_pdf
    rm $temp_pdf
    exit 0


    application/postscript application/pdf 0 pstopdf
    application/vnd.adobe-reader-postscript application/vnd.cups-postscript 0 pstops
    application/pdf application/vnd.cups-pdf 0 pdfwash
    application/vnd.cups-pdf-banner application/vnd.cups-pdf 33 bannertopdf
    #application/pdf application/vnd.cups-postscript 0 pdftops
    #application/vnd.cups-pdf application/vnd.cups-postscript 0 pdftops
    application/postscript application/vnd.cups-postscript 66 pstops

Jochen Fahrner (jofa) wrote :

Michael, if I understand you right you have some other issue, some kind of pdf's are not properly handled. What is discussed here is the broken postscript code that makes Brother printers to fail completely. Did I understand you right?

I installed the release version of Xubuntu 12.04 and printing on my Brother DCP-7045N is working fine.

Before I was testing Linux Mint Debian Edition (which is based on Debian testing) and had the problem which is described here. What I must say here: the Ubuntu developers are making a good job! The printer installation procedure is much easier than under native Debian. My Brother network printer was completely automatically recognized, even manufacturer and model was detected automatically. Under Debian I had to select manufacturer and model manually.

cliddell (cjl) wrote :

Not being over sensitive, but:

"What is discussed here is the broken postscript code that makes Brother printers to fail completely."

The Postscript is *not* broken, it is demonstrably valid. But it hits a breakage in the Brother printer - the problem is with the printer, not the Postscript.


Michael, can you open a new bug report and attach the QuarkXpress PDFs which do not print on stock 12.04 to the new bug report? Thanks.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.