hl7x0 http://www.ghostscript.com/ Ghostscript GPL OpenPrinting forum for Brother printers Driver for Brother's proprietary printer language (works also on the PCL/PS models) 2400 600 95 95 65 35 100 RES=%E; gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -sDEVICE=hl7x0%A%Z -r$RES -sOutputFile=-%C -f - | perl -e 'my $u = "%U"; my $j = "%T"; my $p = "%F"; my $r = "'$RES'"; my $e = "%G"; my $m = "%H"; my $d = "%I"; my $t = "%J"; my $pcmd = ""; if ($p =~ /^\d\d\d\d$/) {$u =~ s/\%U//; $u ||= "Unknown"; $j =~ s/\%T//; $j ||= "Unknown"; $u = chr(length($u) + 1) . $u . "\x00"; $j = chr(length($j) + 1) . $j . "\x00"; $p = chr(length($p) + 1) . $p . "\x00"; $pcmd = "\@U1$u$j$p"}; my $rcode = "\x00"; if ($r =~ /^150(|x150)$/) {$rcode = "\x0a"} elsif ($r =~ /^300(|x300)$/) {$rcode = "\x05"} elsif ($r =~ /^600(|x600)$/) {$rcode = "\x00"} elsif ($r =~ /^1200(|x1200)$/) {$rcode = "\x0f"}; my $rcmd = "\@L$rcode"; my $ecmd = ($e =~ /^[0123]$/ ? "\@E" . chr($e) : ""); my $mcmd = ($m =~ /^[012345678]$/ ? "\@J\x00" . chr($m) : ""); my $dcmd = ($d =~ /^[12]$/ ? "\@O$d" : ""); my $tcmd = ($t =~ /^[12MOo]$/ ? "\@S$t" : ""); my $did = 0; while (<>) {if (!$did) {s/\@L./$pcmd$rcmd$ecmd$mcmd$dcmd$tcmd/s && $did ++}; print}' RES=%E; gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -sDEVICE=hl7x0%A%Z -r$RES -sOutputFile=-%C -f - | perl -e 'my $u = "%U"; my $j = "%T"; my $p = "%F"; my $r = "'$RES'"; my $e = "%G"; my $m = "%H"; my $d = "%I"; my $t = "%J"; my $pcmd = ""; if ($p =~ /^\d\d\d\d$/) {$u =~ s/\%U//; $u ||= "Unknown"; $j =~ s/\%T//; $j ||= "Unknown"; $u = chr(length($u) + 1) . $u . "\x00"; $j = chr(length($j) + 1) . $j . "\x00"; $p = chr(length($p) + 1) . $p . "\x00"; $pcmd = "\@U1$u$j$p"}; my $rcode = "\x00"; if ($r =~ /^150(|x150)$/) {$rcode = "\x0a"} elsif ($r =~ /^300(|x300)$/) {$rcode = "\x05"} elsif ($r =~ /^600(|x600)$/) {$rcode = "\x00"} elsif ($r =~ /^1200(|x1200)$/) {$rcode = "\x0f"}; my $rcmd = "\@L$rcode"; my $ecmd = ($e =~ /^[0123]$/ ? "\@E" . chr($e) : ""); my $mcmd = ($m =~ /^[012345678]$/ ? "\@J\x00" . chr($m) : ""); my $dcmd = ($d =~ /^[12]$/ ? "\@O$d" : ""); my $tcmd = ($t =~ /^[12MOo]$/ ? "\@S$t" : ""); my $did = 0; while (<>) {if (!$did) {s/\@L./$pcmd$rcmd$ecmd$mcmd$dcmd$tcmd/s && $did ++}; print}' Fortunately, Brother uses the same protocol for their host-based printers for many years and an appropriate driver is embedded in Ghostscript, named "hl7x0". Unfortunately the driver was not updated for the additional options and resolutions of newer Brother printers, so that simply using the driver does only give very basic support for the current models (only 600 dpi, no Duplex, no tray selection, ...).<p> Recently <a href="http://sourceforge.net/projects/hbp-for-brother">the Windows driver output of the newer models was investigated</a> and it turned out that for the additional options only the appropriate commands need to be inserted at the beginning of the data stream.<p> On the mentioned site you find a PDF file with documentation about the options and a filter for inserting them into the output data stream of Ghostscript. As probably many distributions will not include this filter, the Foomatic data and the resulting PPD files here fo all this work without needing the filter. So you only need the PPD from here and the Ghostscript which comes with your distribution and you will have access to all resolutions including HQ1200 (2400x600 dpi), economy mode, media types, duplex, tray selection, and even password-protected printing (aka "Locked Print" or "Secured Print").<p> Note that not all settings are available on all printers, especially on older models. On some printers you will get a shifted page if you use a low resolution. Use 600 dpi in such a case. Please report everything on our Brother forum, so that we can exclude unsuitable settings from the PPDs.<p> With the "HQ1200" resolution setting the economy mode and duplex settings are ignored. You will always get one-sided printouts with standard toner density.<p> Try this driver also with PostScript and PCL printers from Brother (use simply a PPD file for a printer which is listed as supported by this driver). Do you get better/faster results or more functionality? Please report on the Brother forum.<p> If you have a monchrome laser from Brother which is not listed at all on the OpenPrinting site, start trying with this driver and report on the Brother forum.<p> printer/Brother-DCP-8045D printer/Brother-HL-1020 printer/Brother-HL-1040 Works for 300 or 600dpi; faster than PCL. printer/Brother-HL-720 printer/Brother-HL-730 printer/Brother-HL-820 printer/Brother-MFC-8300 printer/Brother-MFC-9050 Prints at 600dpi.