<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "document-v11.dtd">
<document>
  <header>
    <title>Code 39</title>
  </header>
  <body>
    <p>also known as: USD-3, 3 of 9 code</p>
    <section id="example">
      <title>Example</title>
      <figure src="../images/example-code39.png" alt="Example Cod 39 symbol"/>
    </section>
    <section id="structure">
      <title>Structure</title>
      <p>The configuration for the default implementation is:</p>
      <source>&#60;barcode&#62;
  &#60;<strong>code39</strong>&#62;
      &#60;height&#62;{<link href="barcode-xml.html#length">length</link>:15mm}&#60;/height&#62;
      &#60;module-width&#62;{<link href="barcode-xml.html#length">length</link>:0.19mm}&#60;/module-width&#62;
      &#60;wide-factor&#62;{<link href="barcode-xml.html#number">number</link>:2.5}&#60;/wide-factor&#62;
      &#60;interchar-gap-width&#62;{<link href="barcode-xml.html#length">length</link>:1mw}&#60;/interchar-gap-width&#62;
      &#60;quiet-zone enabled="{<link href="barcode-xml.html#boolean">boolean</link>:true}"&#62;{<link href="barcode-xml.html#length">length</link>:10mw}&#60;/quiet-zone&#62;
      &#60;checksum&#62;{<link href="barcode-xml.html#checksum-mode">checksum-mode</link>:auto=ignore}&#60;/checksum&#62;
      &#60;extended-charset&#62;{<link href="barcode-xml.html#boolean">boolean</link>:false}&#60;/extended-charset&#62;
      &#60;human-readable&#62;
        &#60;placement&#62;{<link href="barcode-xml.html#human-readable-placement">human-readable-placement</link>:bottom}&#60;/placement&#62;
        &#60;font-name&#62;{<link href="barcode-xml.html#font-name">font-name</link>:Helvetica}&#60;/font-name&#62;
        &#60;font-size&#62;{<link href="barcode-xml.html#length">length</link>:8pt}&#60;/font-size&#62;
        &#60;display-start-stop&#62;{<link href="barcode-xml.html#boolean">boolean</link>:false}&#60;/display-start-stop&#62;
        &#60;display-checksum&#62;{<link href="barcode-xml.html#boolean">boolean</link>:false}&#60;/display-checksum&#62;
      &#60;/human-readable&#62;
  &#60;/<strong>code39</strong>&#62;
&#60;/barcode&#62;</source>
    </section>
    <section>
      <title>Notes</title>
      <ul>
        <li>The height should be at least 0.15 times the barcode's length or 0.25 inches.</li>
        <li>
          The module width (width of narrow element) should be at least 
          7.5 mils (a mil is 1/1000 inch) or 0.19mm.
        </li>
        <li>
          The multiple for the wide element should be between 2.0 and 3.0 <strong>if</strong> 
          the narrow element is greater than 20 mils. If the narrow element is less than 20 mils,
          the multiple can only range between 2.0 and 2.2.
        </li>
        <li>Quiet zones must be at least 10 times the module width or 0.10 inches, whichever is larger.</li>
        <li>
          The intercharacter gap width (igw) is 5.3 times the module width (mw) if mw is less than 10 mils. 
          If mw is 10 mils or greater, the value for igw is 3mw or 53 mils, whichever is greater. However,
          for quality printers, igw often equals mw.
        </li>
      </ul>
    </section>
    <section>
      <title>Message format</title>
      <ul>
        <li>Valid characters are 0-9, A-Z and the characters: - . $ / + % SPACE</li>
        <li>
          To enable support for all US-ASCII (7-bit) characters, set "extended-charset" to "true".
        </li>
        <li>
          The character '*' is only used as start and stop character and may not be used 
          in the message (unless the extended character set is enabled).
          The '*' character is automatically added before and after the
          message even though you may not see it in the human-readable part. (See also
          "display-start-stop" and "display-checksum" values)
        </li>
        <li>
          display-start-stop controls whether the start and stop characters should be included 
          in the human-readable part. Setting display-start-stop to true, automatically sets 
          display-checksum to true, too.
          Note: this option is ignored if the extended character set is enabled!
        </li>
        <li>
          display-checksum controls whether the calculated checksum should be included in the
          human-readable part.
          Note: this option is ignored if the extended character set is enabled!
        </li>
      </ul>
    </section>
  </body>
</document>

