<?xml version="1.0" encoding="UTF-8"?>
<preferreddrivers>
  <drivertypes>
    <!-- GENERIC DRIVERS -->
    <drivertype name="generic-foomatic-recommended">
      <ppdname match="(foomatic(-db-compressed-ppds)?|ijsgutenprint.*):"/>
      <deviceid>
	<field name="DRV" match=".*,?R1"/>
      </deviceid>
      <fit>
	generic
      </fit>
    </drivertype>

    <drivertype name="generic-escp">
      <ppdname match="(foomatic(-db-compressed-ppds)?|ijsgutenprint.*):Generic-ESC_P"/>
      <fit>
	generic
	none
      </fit>
    </drivertype>

    <drivertype name="generic-escp">
      <ppdname match="drv:///sample.drv/epson(9|24).ppd"/>
      <fit>
	generic
	none
      </fit>
    </drivertype>

    <drivertype name="generic-postscript">
      <attribute name="ppd-make-and-model"
		 match="Generic PostScript Printer"/>
      <fit>
	generic
	none
      </fit>
    </drivertype>

    <drivertype name="generic-pcl6">
      <attribute name="ppd-make-and-model"
		 match="Generic PCL 6 Printer"/>
      <fit>
	generic
	none
      </fit>
    </drivertype>

    <drivertype name="generic-pcl5e">
      <attribute name="ppd-make-and-model"
		 match="Generic PCL 5e Printer"/>
      <fit>
	generic
	none
      </fit>
    </drivertype>

    <drivertype name="generic-pcl5">
      <attribute name="ppd-make-and-model"
		 match="Generic PCL 5 Printer"/>
      <fit>
	generic
	none
      </fit>
    </drivertype>

    <drivertype name="generic-pcl">
      <attribute name="ppd-make-and-model"
		 match="Generic PCL Laser Printer"/>
      <fit>
	generic
	none
      </fit>
    </drivertype>

    <drivertype name="generic">
      <fit>
	generic
	none
      </fit>
    </drivertype>

    <!-- END OF GENERIC DRIVERS -->
    <!-- now fit is either exact-cmd, exact, or close -->

    <drivertype name="driverless">
      <ppdname match="driverless:"/>
    </drivertype>

    <drivertype name="cups">
      <ppdname match="drv:///sample.drv/"/>
    </drivertype>

    <drivertype name="ghostscript">
      <attribute name="ppd-product" match=".*Ghostscript"/>
    </drivertype>

    <drivertype name="gutenprint-simplified">
      <ppdname match="gutenprint.*:.*/simple|.*-gutenprint.*\.sim"/>
    </drivertype>

    <drivertype name="gutenprint-expert">
      <ppdname match="gutenprint.*:|.*-gutenprint"/>
    </drivertype>

    <drivertype name="foomatic-recommended-hpijs">
      <attribute name="ppd-make-and-model" match=".* Foomatic/hpijs"/>
      <deviceid>
	<field name="DRV" match=".*,?R1"/>
      </deviceid>
    </drivertype>

    <drivertype name="foomatic-hpijs">
      <attribute name="ppd-make-and-model" match=".* Foomatic/hpijs"/>
    </drivertype>

    <drivertype name="foomatic-recommended-postscript">
      <ppdname match="foomatic(-db-compressed-ppds)?:"/>
      <attribute name="ppd-make-and-model" match=".*Postscript"/>
      <deviceid>
	<field name="DRV" match=".*,?R1"/>
      </deviceid>
    </drivertype>

    <drivertype name="foomatic-postscript">
      <ppdname match="foomatic(-db-compressed-ppds)?:.*-Postscript"/>
    </drivertype>

    <drivertype name="foomatic-recommended-nonpostscript">
      <ppdname match="(foomatic(-db-compressed-ppds)?|ijsgutenprint.*):"/>
      <deviceid>
	<field name="DRV" match=".*,?R1"/>
      </deviceid>
    </drivertype>

    <drivertype name="foomatic-gutenprint">
      <ppdname match="(foomatic(-db-compressed-ppds)?|ijsgutenprint.*):.*-gutenprint"/>
    </drivertype>

    <drivertype name="foomatic">
      <ppdname match="(foomatic(-db-compressed-ppds)?|ijsgutenprint.*):"/>
    </drivertype>

    <drivertype name="hpcups-plugin">
      <ppdname match="drv:///(hp/)?hpcups.drv/|.*-hpcups"/>
      <attribute name="ppd-make-and-model" match=".* plugin"/>
    </drivertype>

    <drivertype name="hpcups">
      <ppdname match="drv:///(hp/)?hpcups.drv/|.*-hpcups"/>
    </drivertype>

    <drivertype name="hpijs-plugin">
      <ppdname match="drv:///(hp/)?hpijs.drv/|.*-hpijs"/>
      <attribute name="ppd-make-and-model" match=".* plugin"/>
    </drivertype>

    <drivertype name="hpijs">
      <ppdname match="drv:///(hp/)?hpijs.drv/|.*-hpijs"/>
    </drivertype>

    <drivertype name="splix">
      <ppdname match=".*splix"/>
    </drivertype>

    <drivertype name="dlw400">
      <ppdname match="drv:///sample.drv/dymo.ppd" />
    </drivertype>

    <drivertype name="turboprint">
      <ppdname match=".*turboprint"/>
    </drivertype>

    <drivertype name="manufacturer-ricoh-ps">
      <ppdname match=".*/(Ricoh|Lanier|Gestetner|InfoPrint|Infotech|Savin|NRG)/PS/"/>
    </drivertype>

    <drivertype name="manufacturer-ricoh-pxl">
      <ppdname match=".*/(Ricoh|Lanier|Gestetner|InfoPrint|Infotech|Savin|NRG)/PXL/"/>
    </drivertype>

    <drivertype name="pdf">
      <attribute name="ppd-make-and-model"
		 match=".*\bpdf\b"/>
    </drivertype>

    <drivertype name="manufacturer-cmd">
      <fit>
	exact-cmd
      </fit>
    </drivertype>

    <!-- Catch-all -->
    <drivertype name="manufacturer"/>
  </drivertypes>

  <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
  <!-- This is where the types are arranged into the preferred order -->
  <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

  <preferenceorder>
    <!-- gutenprint is no good on the Brother HL-2030 (bug #645993) -->
    <printer>
      <make-and-model match="Brother HL-2030"/>
      <deviceid>
	<field name="MFG" match="Brother"/>
	<field name="MDL" match="HL-2030"/>
      </deviceid>
      <blacklist>
	<drivertype>gutenprint*</drivertype>
      </blacklist>
    </printer>

    <!-- Ricoh family printers should use manufacturer's own PPD
         files, with PostScript versions in preference to PXL versions
	 (bug #550315 comment #8)
         -->
    <printer>
      <make-and-model
	  match="(Ricoh|Lanier|Gestetner|InfoPrint|Infotech|Savin|NRG) "/>
      <deviceid>
	<field name="MFG"
	       match="(Ricoh|Lanier|Gestetner|InfoPrint|Infotech|Savin|NRG)"/>
      </deviceid>
      <drivers>
	<drivertype>manufacturer-ricoh-ps</drivertype>
	<drivertype>manufacturer-ricoh-pxl</drivertype>
      </drivers>
    </printer>

    <!-- Use hpcups instead of PostScript with HP LaserJet 12xx/13xx
	 as they do not come with enough memory for
	 PostScript (Ubuntu bug #872991). -->
    <printer>
      <make-and-model
	  match="(Hewlett-Packard|HP) LaserJet 1[23]\d\d.*"/>
      <drivers>
	<drivertype>hpcups</drivertype>
      </drivers>
      <avoid>
	<drivertype>*-postscript</drivertype>
	<drivertype>manufacturer*</drivertype>
      </avoid>
    </printer>

    <!-- HP LaserJet 2100 series: avoid using PostScript for these
         models because they only understand PS level 2 (bug
         #710231). -->
    <printer>
      <make-and-model
	  match="(Hewlett-Packard|HP) LaserJet 2100 Series"/>
      <deviceid>
	<field name="MFG" match="(HP|Hewlett-Packard)"/>
	<field name="MDL" match="HP LaserJet 2100 Series"/>
      </deviceid>
      <avoid>
	<drivertype>*-postscript</drivertype>
      </avoid>
    </printer>

    <!-- The gutenprint driver for the Xerox 6250DP is black and
         white, so prefer other drivers (LP #669152) -->
    <printer>
      <make-and-model match="Xerox 6250DP"/>
      <deviceid>
	<field name="MFG" match="Xerox"/>
	<field name="MDL" match="6250DP"/>
      </deviceid>
      <avoid>
	<drivertype>gutenprint*</drivertype>
      </avoid>
    </printer>

    <!--
      We need driver for CLP-310 but there are other CLP-315 which are preferred because their drivertype is higher
      in the preferenceorder.
      Driver for CLP-310 provides drivertype "splix" and "foomatic" so others which are higher in preferenceorder
      must be placed here.
    -->
    <printer>
      <make-and-model match="Samsung CLP 310" />
      <deviceid>
        <field name="MFG" match="Samsung" />
        <field name="MDL" match="CLP-310 Series" />
      </deviceid>
      <avoid>
        <drivertype>manufacturer-cmd</drivertype>
        <drivertype>foomatic-recommended-nonpostscript</drivertype>
        <drivertype>manufacturer*</drivertype>
        <drivertype>pdf</drivertype>
        <drivertype>foomatic-recommended-postscript</drivertype>
        <drivertype>hpcups</drivertype>
        <drivertype>foomatic-postscript</drivertype>
        <drivertype>gutenprint-simplified</drivertype>
        <drivertype>gutenprint-expert</drivertype>
        <drivertype>foomatic-gutenprint</drivertype>
      </avoid>
    </printer>

    <printer>
      <make-and-model match="DYMO LabelWriter 400" />
      <deviceid>
        <field name="MFG" match="DYMO" />
        <field name="MDL" match="LabelWriter 400" />
      </deviceid>
      <drivers>
        <drivertype>dlw400</drivertype>
      </drivers>
    </printer>

    <printer>
      <!-- For all printers -->
      <drivers>
	<drivertype>driverless</drivertype>
	<drivertype>manufacturer-cmd</drivertype>
	<drivertype>foomatic-recommended-nonpostscript</drivertype>
	<drivertype>manufacturer*</drivertype>
	<drivertype>pdf</drivertype>
	<drivertype>foomatic-recommended-postscript</drivertype>
	<drivertype>hpcups</drivertype>
	<drivertype>splix</drivertype>
	<drivertype>foomatic-postscript</drivertype>
      </drivers>
    </printer>

    <printer>
      <!-- For all printers (continued) -->
      <drivers>
	<drivertype>gutenprint-simplified</drivertype>
	<drivertype>gutenprint-expert</drivertype>
	<drivertype>foomatic-gutenprint</drivertype>
	<drivertype>foomatic</drivertype>
	<drivertype>cups</drivertype>

	<!-- Generic drivers listed last, in this order -->
	<drivertype>generic-postscript</drivertype>
	<drivertype>generic-foomatic-recommended</drivertype>
	<drivertype>generic-pcl6</drivertype>
	<drivertype>generic-pcl5c</drivertype>
	<drivertype>generic-pcl5e</drivertype>
	<drivertype>generic-pcl5</drivertype>
	<drivertype>generic-pcl</drivertype>
	<drivertype>generic-escp</drivertype>
	<drivertype>ghostscript</drivertype>
	<drivertype>generic</drivertype>

	<!-- HP's pre-hpcups driver, hpijs.  Low down the list as it
	     is known to handle landscape page orientations
	     incorrectly, e.g.
	     https://bugs.freedesktop.org/show_bug.cgi?id=44664 -->
	<drivertype>foomatic-recommended-hpijs</drivertype>
	<drivertype>hpijs</drivertype>
	<drivertype>foomatic-hpijs</drivertype>

	<!-- Last of all, 3rd party non-free drivers -->
	<drivertype>hpcups-plugin</drivertype>
	<drivertype>hpijs-plugin</drivertype>
	<drivertype>turboprint</drivertype>
      </drivers>
    </printer>
  </preferenceorder>
</preferreddrivers>
