The "gutenprint" drivers are said to avoid several unexpected issues:
Some printers / drivers / printing applications will, even when told to print grey or black and white only, mix in colors from all the ink cartridges to make a "mixed" black. This can dilute a special ink, such as a PCB Etch Resist, if it is only in one cartridge. If the printing application also truly limits print to grey, the gutenprint drivers appear to respect this.
They also seem to be able to support finer resolutions of print where the standard windows drivers actually change fine lines into thicker lines in an apparent attempt to improve reliability.
Since they are open source, they can be modified to support unusual uses. Some of those modifications are documented here.
Sadly, they are not consitantly available for Windows. There have been ports of older versions to windows:
All credit for this goes to Bob Dring of the Yahoo Inkjet PCB Construction
group^:
The Gutenprint driver can be customised using configuration files. To find
the configuration files, print something using Gutenprint (but NOT to a file!).
After the progress bar has finished a 'GPSpooler' window should open. Click
the 'Setting' tab on the 'GPSpooler' window and note the STP_DATA_PATH. Now
CLOSE the application. An example path is:
C:\Documents and Settings\Bob\Desktop\Gimp\gutenprint\5.26\xml
Navigate a little deeper to the subfolders: escp2\inputslots You
should find a file called: rx680.xml which should be backed up by
renaming or copying.
Download the modified rx680.xml from the group files section (http://tech.groups.yahoo.com/group/Inkjet_PCB_Construction/files/Bobdrings%20files/) into the same directory or modify the file as follows
rx680.xml
<?xml version="1.0"?> <gutenprint xmlns="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://gimp-print.sourceforge.net/xsd/gp.xsd-1.0 gutenprint.xsd"> <copyright> * Copyright 2008 Robert Krawitz (rlk@alum.mit.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. </copyright> <escp2:InputSlots name="rx680"> <slot translate="text" name="Rear" text="Rear Tray"> <Duplex><Tumble/></Duplex> <InitSequence>PP\003\000\000\001\000</InitSequence> </slot> <slot translate="text" name="Front" text="Front Tray"> <Duplex><Tumble/></Duplex> <InitSequence>PP\003\000\000\001\001</InitSequence> </slot> <slot translate="text" name="PCB" text="Print to PCB"> <Duplex><Tumble/></Duplex> <InitSequence>PP\003\000\000\002\001</InitSequence> </slot> <slot translate="text" name="CD" text="Print to CD"> <CD/> <InitSequence>PP\003\000\000\002\001</InitSequence> </slot> </escp2:InputSlots> </gutenprint>
This adds another media source to the printer setup screen in Gutenprint called 'Print to PCB'. When you start it again you can select this option and will find that it will no longer mask off the image around the rim and hole of the CD when you print. It accomplishes this by specifying a new ESC PP command.
There is another way of doing this as described by 'Full Spectrum Engineering' but it involves using the 'wrong' driver (r280).
If your printer is a different one (it must have a CD capabilty of course) have a look in few directories higher at a file called 'printers.xml'. Find the entry for your printer name and read what 'model' it uses. If it uses model=97 then you are in luck because the same file will work. Should you want to put things back the way they were, then just rename the old file back to rx680.xml.
All credit for this goes to Bob Dring of the Yahoo Inkjet PCB Construction
group^:
The Gutenprint driver can be customised using configuration files. To find
the configuration files, print something using Gutenprint (but NOT to a file!).
After the progress bar has finished a 'GPSpooler' window should open. Click
the 'Setting' tab on the 'GPSpooler' window and note the STP_DATA_PATH. Now
CLOSE the application. An example path is:
C:\Documents and Settings\Bob\Desktop\Gimp\gutenprint\5.26\xml
Navigate a little deeper to the subfolders: escp2\inks You
should find a file called: claria.xml which should be backed up
by renaming or copying.
Download the modified claria.xml from the group files section (http://tech.groups.yahoo.com/group/Inkjet_PCB_Construction/files/Bobdrings%20files/) into the same directory or modify the file to add the following sections
<InkName translate="text" name="PCBBlack" text="PCB - Black is Black" InkID="CcMmYK"> <Channels> <channel name="claria_black" index="0"> <subchannel color="0" subchannel="0" name="Black" text="Black" translate="text"> <ChannelDensityParam name="BlackDensity"/> </subchannel> </channel> <channel name="claria_photo_cyan" index="1"> <HueCurveParam name="CyanHueCurve"/> <subchannel color="2" subchannel="0" name="Cyan" text="Cyan" translate="text"> <ChannelDensityParam name="CyanDensity"/> <SubchannelTransitionParam name="LightCyanTrans"/> </subchannel> <subchannel color="2" subchannel="1" headOffset="2" name="LightCyan" text="Light Cyan" translate="text"> <ChannelDensityParam name="CyanDensity"/> <SubchannelTransitionParam name="LightCyanTrans"/> <SubchannelValueParam name="LightCyanValue"/> <SubchannelScaleParam name="LightCyanScale"/> </subchannel> </channel> <channel name="claria_photo_magenta" index="2"> <HueCurveParam name="MagentaHueCurve"/> <subchannel color="1" subchannel="0" headOffset="2" name="Magenta" text="Magenta" translate="text"> <ChannelDensityParam name="MagentaDensity"/> <SubchannelTransitionParam name="LightMagentaTrans"/> </subchannel> <subchannel color="1" subchannel="1" name="LightMagenta" text="Light Magenta" translate="text"> <ChannelDensityParam name="MagentaDensity"/> <SubchannelTransitionParam name="LightMagentaTrans"/> <SubchannelValueParam name="LightMagentaValue"/> <SubchannelScaleParam name="LightMagentaScale"/> </subchannel> </channel> <channel name="claria_yellow" index="3"> <HueCurveParam name="YellowHueCurve"/> <subchannel color="4" subchannel="0" headOffset="2" name="Yellow" text="Yellow" translate="text"> <ChannelDensityParam name="YellowDensity"/> </subchannel> </channel> </Channels> </InkName> <InkName translate="text" name="PCBCyan" text="PCB - Black is Cyan" InkID="CcMmYK"> <Channels> <channel name="claria_black" index="0"> <subchannel color="2" subchannel="0" name="Black" text="Black" translate="text"> <ChannelDensityParam name="BlackDensity"/> </subchannel> </channel> <channel name="claria_photo_cyan" index="1"> <HueCurveParam name="CyanHueCurve"/> <subchannel color="0" subchannel="0" name="Cyan" text="Cyan" translate="text"> <ChannelDensityParam name="CyanDensity"/> <SubchannelTransitionParam name="LightCyanTrans"/> </subchannel> <subchannel color="2" subchannel="1" headOffset="2" name="LightCyan" text="Light Cyan" translate="text"> <ChannelDensityParam name="CyanDensity"/> <SubchannelTransitionParam name="LightCyanTrans"/> <SubchannelValueParam name="LightCyanValue"/> <SubchannelScaleParam name="LightCyanScale"/> </subchannel> </channel> <channel name="claria_photo_magenta" index="2"> <HueCurveParam name="MagentaHueCurve"/> <subchannel color="1" subchannel="0" headOffset="2" name="Magenta" text="Magenta" translate="text"> <ChannelDensityParam name="MagentaDensity"/> <SubchannelTransitionParam name="LightMagentaTrans"/> </subchannel> <subchannel color="1" subchannel="1" name="LightMagenta" text="Light Magenta" translate="text"> <ChannelDensityParam name="MagentaDensity"/> <SubchannelTransitionParam name="LightMagentaTrans"/> <SubchannelValueParam name="LightMagentaValue"/> <SubchannelScaleParam name="LightMagentaScale"/> </subchannel> </channel> <channel name="claria_yellow" index="3"> <HueCurveParam name="YellowHueCurve"/> <subchannel color="4" subchannel="0" headOffset="2" name="Yellow" text="Yellow" translate="text"> <ChannelDensityParam name="YellowDensity"/> </subchannel> </channel> </Channels> </InkName> <InkName translate="text" name="PCBLtCyan" text="PCB - Black is Lt Cyan" InkID="CcMmYK"> <Channels> <channel name="claria_black" index="0"> <subchannel color="2" subchannel="1" name="Black" text="Black" translate="text"> <ChannelDensityParam name="BlackDensity"/> </subchannel> </channel> <channel name="claria_photo_cyan" index="1"> <HueCurveParam name="CyanHueCurve"/> <subchannel color="2" subchannel="0" name="Cyan" text="Cyan" translate="text"> <ChannelDensityParam name="CyanDensity"/> <SubchannelTransitionParam name="LightCyanTrans"/> </subchannel> <subchannel color="0" subchannel="0" headOffset="2" name="LightCyan" text="Light Cyan" translate="text"> <ChannelDensityParam name="CyanDensity"/> <SubchannelTransitionParam name="LightCyanTrans"/> <SubchannelValueParam name="LightCyanValue"/> <SubchannelScaleParam name="LightCyanScale"/> </subchannel> </channel> <channel name="claria_photo_magenta" index="2"> <HueCurveParam name="MagentaHueCurve"/> <subchannel color="1" subchannel="0" headOffset="2" name="Magenta" text="Magenta" translate="text"> <ChannelDensityParam name="MagentaDensity"/> <SubchannelTransitionParam name="LightMagentaTrans"/> </subchannel> <subchannel color="1" subchannel="1" name="LightMagenta" text="Light Magenta" translate="text"> <ChannelDensityParam name="MagentaDensity"/> <SubchannelTransitionParam name="LightMagentaTrans"/> <SubchannelValueParam name="LightMagentaValue"/> <SubchannelScaleParam name="LightMagentaScale"/> </subchannel> </channel> <channel name="claria_yellow" index="3"> <HueCurveParam name="YellowHueCurve"/> <subchannel color="4" subchannel="0" headOffset="2" name="Yellow" text="Yellow" translate="text"> <ChannelDensityParam name="YellowDensity"/> </subchannel> </channel> </Channels> </InkName> <InkName translate="text" name="PCBMagenta" text="PCB - Black is Magenta" InkID="CcMmYK"> <Channels> <channel name="claria_black" index="0"> <subchannel color="1" subchannel="0" name="Black" text="Black" translate="text"> <ChannelDensityParam name="BlackDensity"/> </subchannel> </channel> <channel name="claria_photo_cyan" index="1"> <HueCurveParam name="CyanHueCurve"/> <subchannel color="2" subchannel="0" name="Cyan" text="Cyan" translate="text"> <ChannelDensityParam name="CyanDensity"/> <SubchannelTransitionParam name="LightCyanTrans"/> </subchannel> <subchannel color="2" subchannel="1" headOffset="2" name="LightCyan" text="Light Cyan" translate="text"> <ChannelDensityParam name="CyanDensity"/> <SubchannelTransitionParam name="LightCyanTrans"/> <SubchannelValueParam name="LightCyanValue"/> <SubchannelScaleParam name="LightCyanScale"/> </subchannel> </channel> <channel name="claria_photo_magenta" index="2"> <HueCurveParam name="MagentaHueCurve"/> <subchannel color="0" subchannel="0" headOffset="2" name="Magenta" text="Magenta" translate="text"> <ChannelDensityParam name="MagentaDensity"/> <SubchannelTransitionParam name="LightMagentaTrans"/> </subchannel> <subchannel color="1" subchannel="1" name="LightMagenta" text="Light Magenta" translate="text"> <ChannelDensityParam name="MagentaDensity"/> <SubchannelTransitionParam name="LightMagentaTrans"/> <SubchannelValueParam name="LightMagentaValue"/> <SubchannelScaleParam name="LightMagentaScale"/> </subchannel> </channel> <channel name="claria_yellow" index="3"> <HueCurveParam name="YellowHueCurve"/> <subchannel color="4" subchannel="0" headOffset="2" name="Yellow" text="Yellow" translate="text"> <ChannelDensityParam name="YellowDensity"/> </subchannel> </channel> </Channels> </InkName> <InkName translate="text" name="PCBLtMagenta" text="PCB - Black is Lt Magenta" InkID="CcMmYK"> <Channels> <channel name="claria_black" index="0"> <subchannel color="1" subchannel="1" name="Black" text="Black" translate="text"> <ChannelDensityParam name="BlackDensity"/> </subchannel> </channel> <channel name="claria_photo_cyan" index="1"> <HueCurveParam name="CyanHueCurve"/> <subchannel color="2" subchannel="0" name="Cyan" text="Cyan" translate="text"> <ChannelDensityParam name="CyanDensity"/> <SubchannelTransitionParam name="LightCyanTrans"/> </subchannel> <subchannel color="2" subchannel="1" headOffset="2" name="LightCyan" text="Light Cyan" translate="text"> <ChannelDensityParam name="CyanDensity"/> <SubchannelTransitionParam name="LightCyanTrans"/> <SubchannelValueParam name="LightCyanValue"/> <SubchannelScaleParam name="LightCyanScale"/> </subchannel> </channel> <channel name="claria_photo_magenta" index="2"> <HueCurveParam name="MagentaHueCurve"/> <subchannel color="1" subchannel="0" headOffset="2" name="Magenta" text="Magenta" translate="text"> <ChannelDensityParam name="MagentaDensity"/> <SubchannelTransitionParam name="LightMagentaTrans"/> </subchannel> <subchannel color="0" subchannel="0" name="LightMagenta" text="Light Magenta" translate="text"> <ChannelDensityParam name="MagentaDensity"/> <SubchannelTransitionParam name="LightMagentaTrans"/> <SubchannelValueParam name="LightMagentaValue"/> <SubchannelScaleParam name="LightMagentaScale"/> </subchannel> </channel> <channel name="claria_yellow" index="3"> <HueCurveParam name="YellowHueCurve"/> <subchannel color="4" subchannel="0" headOffset="2" name="Yellow" text="Yellow" translate="text"> <ChannelDensityParam name="YellowDensity"/> </subchannel> </channel> </Channels> </InkName> <InkName translate="text" name="PCBYellow" text="PCB - Black is Yellow" InkID="CcMmYK"> <Channels> <channel name="claria_black" index="0"> <subchannel color="4" subchannel="0" name="Black" text="Black" translate="text"> <ChannelDensityParam name="BlackDensity"/> </subchannel> </channel> <channel name="claria_photo_cyan" index="1"> <HueCurveParam name="CyanHueCurve"/> <subchannel color="2" subchannel="0" name="Cyan" text="Cyan" translate="text"> <ChannelDensityParam name="CyanDensity"/> <SubchannelTransitionParam name="LightCyanTrans"/> </subchannel> <subchannel color="2" subchannel="1" headOffset="2" name="LightCyan" text="Light Cyan" translate="text"> <ChannelDensityParam name="CyanDensity"/> <SubchannelTransitionParam name="LightCyanTrans"/> <SubchannelValueParam name="LightCyanValue"/> <SubchannelScaleParam name="LightCyanScale"/> </subchannel> </channel> <channel name="claria_photo_magenta" index="2"> <HueCurveParam name="MagentaHueCurve"/> <subchannel color="1" subchannel="0" headOffset="2" name="Magenta" text="Magenta" translate="text"> <ChannelDensityParam name="MagentaDensity"/> <SubchannelTransitionParam name="LightMagentaTrans"/> </subchannel> <subchannel color="1" subchannel="1" name="LightMagenta" text="Light Magenta" translate="text"> <ChannelDensityParam name="MagentaDensity"/> <SubchannelTransitionParam name="LightMagentaTrans"/> <SubchannelValueParam name="LightMagentaValue"/> <SubchannelScaleParam name="LightMagentaScale"/> </subchannel> </channel> <channel name="claria_yellow" index="3"> <HueCurveParam name="YellowHueCurve"/> <subchannel color="0" subchannel="0" headOffset="2" name="Yellow" text="Yellow" translate="text"> <ChannelDensityParam name="YellowDensity"/> </subchannel> </channel> </Channels> </InkName>
Now you can select an ink set. Say, 'PCB - Black is Yellow' and anything printed in Black or Yellow will be swapped. There are 6 selectable ink sets each with black swapped with another colour.
See also: