Comment 28 for bug 255161

Revision history for this message
Steve (paddy-stevepaine) wrote :

What a fascinating bug!! My wife has complained that open office will never print on Tuesdays!?! Then she demonstrated it. Sure enough, won't print on Tuesday. Other applications print. I think this is the same bug. Here is my guess:

Print to a postscript file. Observe the line:
   %%CreationDate: (Tue Mar 3 19:47:42 2009)

Change "Tue" to anything else:
   %%CreationDate: (XTue Mar 3 19:47:42 2009)

Save the file and it prints. Tools like evince work because they simply omit the "CreationDate" tag to begin with.

Now something odd happens when my cups script (I am using the Brother MFC420CN) copies the file to a temp file. Some of the code is rearranged, not sure how or why, but it uses a command called "file" to identify the file as "PostScript". This check would work on the original file you printed, but by the time it runs the check on the temp file, it misidentifies. Normally it would return:

   PostScript document text conforming at level 3.0

But there is another check that happens before the PostScript check. If it finds "Tue" at the fourth byte of the file, it identifies it as:

   Jan 22 14:32:44 MET 1991\011Erlang JAM file - version 4.2

So it's not a problem w/ openoffice.org, cups, or the brother printer drivers. It is a bug in the `file` utility, and documented at https://bugs.launchpad.net/ubuntu/+source/file/+bug/248619.

Now, I cannot recommend a fix, but here is my workaround hack:
make a change in file /usr/local/Brother/lpd/filterMFC420CN

change:
  cat > $INPUT_TEMP

to:
  cat | sed -e 's/^%%CreationDate: (Tue/%%CreationDate: (tue/' > $INPUT_TEMP

This will identify a pattern that matches "%%CreationDate: (Tue" at the start of a line, and change "Tue" to "tue".