diff options
Diffstat (limited to 'doc/developer')
34 files changed, 2168 insertions, 1342 deletions
diff --git a/doc/developer/Makefile.in b/doc/developer/Makefile.in index 6674208..13fa2cb 100644 --- a/doc/developer/Makefile.in +++ b/doc/developer/Makefile.in @@ -252,7 +252,6 @@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ -ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ diff --git a/doc/developer/gutenprint.pdf b/doc/developer/gutenprint.pdf Binary files differindex ec324b0..e8ed737 100644 --- a/doc/developer/gutenprint.pdf +++ b/doc/developer/gutenprint.pdf diff --git a/doc/developer/reference-html/HTML.manifest b/doc/developer/reference-html/HTML.manifest new file mode 100644 index 0000000..731655e --- /dev/null +++ b/doc/developer/reference-html/HTML.manifest @@ -0,0 +1,18 @@ +book1.html +f14.html +c39.html +c48.html +x67.html +x79.html +c194.html +c200.html +x271.html +c464.html +x955.html +x1669.html +c1717.html +x1734.html +c1968.html +gpl.html +gpl-terms.html +ln10.html diff --git a/doc/developer/reference-html/index.html b/doc/developer/reference-html/book1.html index 0c894e7..34715a9 100644 --- a/doc/developer/reference-html/index.html +++ b/doc/developer/reference-html/book1.html @@ -1,21 +1,18 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >The Developer's Guide to Gutenprint</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="NEXT" TITLE="Preface" -HREF="f14.html"></HEAD +HREF="f14.html"><META +http-equiv="Content-Type" +content="text/html; charset=UTF-8"></HEAD ><BODY CLASS="book" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" ><DIV CLASS="BOOK" ><A @@ -35,35 +32,10 @@ CLASS="corpauthor" </H3 ><P CLASS="copyright" ->Copyright © 2003 The Gutenprint Project</P -><DIV -CLASS="legalnotice" -><P -></P ><A -NAME="AEN10" -></A -><P -> 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. - </P -><P -> 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. - </P -><P -> 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. - </P -><P -></P -></DIV +HREF="ln10.html" +>Copyright</A +> © 2003 The Gutenprint Project</P ><HR></DIV ><DIV CLASS="TOC" @@ -90,24 +62,24 @@ HREF="c48.html" ><DD ><DL ><DT ->2.1. <A +><A HREF="c48.html#AEN51" >Code prerequisites</A ></DT ><DT ->2.2. <A +><A HREF="x67.html" >Linking with libgutenprint</A ></DT ><DT ->2.3. <A +><A HREF="x79.html" >Integrating libgutenprint</A ></DT ><DD ><DL ><DT ->2.3.1. <A +><A HREF="x79.html#AEN86" ><B CLASS="command" @@ -115,7 +87,7 @@ CLASS="command" ></A ></DT ><DT ->2.3.2. <A +><A HREF="x79.html#AEN123" ><B CLASS="command" @@ -123,7 +95,7 @@ CLASS="command" ></A ></DT ><DT ->2.3.3. <A +><A HREF="x79.html#AEN133" ><B CLASS="command" @@ -131,7 +103,7 @@ CLASS="command" ></A ></DT ><DT ->2.3.4. <A +><A HREF="x79.html#AEN150" ><B CLASS="command" @@ -155,7 +127,7 @@ HREF="c200.html" ><DD ><DL ><DT ->4.1. <A +><A HREF="c200.html#AEN217" ><TT CLASS="filename" @@ -163,24 +135,24 @@ CLASS="filename" ></A ></DT ><DT ->4.2. <A +><A HREF="x271.html" >The driver file</A ></DT ><DD ><DL ><DT ->4.2.1. <A +><A HREF="x271.html#AEN281" >Epson inkjet printers</A ></DT ><DT ->4.2.2. <A +><A HREF="x271.html#AEN403" >Tuning the printer</A ></DT ><DT ->4.2.3. <A +><A HREF="x271.html#AEN433" >Canon inkjet printers</A ></DT @@ -196,17 +168,17 @@ HREF="c464.html" ><DD ><DL ><DT ->5.1. <A +><A HREF="c464.html#AEN477" >Standard commands</A ></DT ><DT ->5.2. <A +><A HREF="x955.html" >Remote Mode Commands</A ></DT ><DT ->5.3. <A +><A HREF="x1669.html" >Appropriate Remote Commands</A ></DT @@ -220,39 +192,39 @@ HREF="c1717.html" ><DD ><DL ><DT ->6.1. <A +><A HREF="c1717.html#AEN1719" >Introduction</A ></DT ><DT ->6.2. <A +><A HREF="x1734.html" >Weaving algorithms</A ></DT ><DD ><DL ><DT ->6.2.1. <A +><A HREF="x1734.html#AEN1740" >Simple weaving algorithms</A ></DT ><DT ->6.2.2. <A +><A HREF="x1734.html#AEN1757" >Perfect weaving</A ></DT ><DT ->6.2.3. <A +><A HREF="x1734.html#AEN1791" >Weaving collisions</A ></DT ><DT ->6.2.4. <A +><A HREF="x1734.html#AEN1809" ->What makes a “perfect” weave?</A +>What makes a “perfect” weave?</A ></DT ><DT ->6.2.5. <A +><A HREF="x1734.html#AEN1937" >Oversampling</A ></DT @@ -267,86 +239,86 @@ HREF="c1968.html" ></DT ><DT >A. <A -HREF="a2122.html" +HREF="gpl.html" >GNU General Public License</A ></DT ><DD ><DL ><DT ->A.1. <A -HREF="a2122.html#gpl-preamble" +><A +HREF="gpl.html#gpl-preamble" >Preamble</A ></DT ><DT ->A.2. <A -HREF="x2153.html" +><A +HREF="gpl-terms.html" >TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</A ></DT ><DD ><DL ><DT ->A.2.1. <A -HREF="x2153.html#gpl-sect0" +><A +HREF="gpl-terms.html#gpl-sect0" >Section 0</A ></DT ><DT ->A.2.2. <A -HREF="x2153.html#gpl-sect1" +><A +HREF="gpl-terms.html#gpl-sect1" >Section 1</A ></DT ><DT ->A.2.3. <A -HREF="x2153.html#gpl-sect2" +><A +HREF="gpl-terms.html#gpl-sect2" >Section 2</A ></DT ><DT ->A.2.4. <A -HREF="x2153.html#gpl-sect3" +><A +HREF="gpl-terms.html#gpl-sect3" >Section 3</A ></DT ><DT ->A.2.5. <A -HREF="x2153.html#gpl-sect4" +><A +HREF="gpl-terms.html#gpl-sect4" >Section 4</A ></DT ><DT ->A.2.6. <A -HREF="x2153.html#gpl-sect5" +><A +HREF="gpl-terms.html#gpl-sect5" >Section 5</A ></DT ><DT ->A.2.7. <A -HREF="x2153.html#gpl-sect6" +><A +HREF="gpl-terms.html#gpl-sect6" >Section 6</A ></DT ><DT ->A.2.8. <A -HREF="x2153.html#gpl-sect7" +><A +HREF="gpl-terms.html#gpl-sect7" >Section 7</A ></DT ><DT ->A.2.9. <A -HREF="x2153.html#gpl-sect8" +><A +HREF="gpl-terms.html#gpl-sect8" >Section 8</A ></DT ><DT ->A.2.10. <A -HREF="x2153.html#gpl-sect9" +><A +HREF="gpl-terms.html#gpl-sect9" >Section 9</A ></DT ><DT ->A.2.11. <A -HREF="x2153.html#gpl-sect10" +><A +HREF="gpl-terms.html#gpl-sect10" >Section 10</A ></DT ><DT ->A.2.12. <A -HREF="x2153.html#gpl-sect11" +><A +HREF="gpl-terms.html#gpl-sect11" >NO WARRANTY</A ></DT ><DT ->A.2.13. <A -HREF="x2153.html#gpl-sect12" +><A +HREF="gpl-terms.html#gpl-sect12" >Section 12</A ></DT ></DL diff --git a/doc/developer/reference-html/c1717.html b/doc/developer/reference-html/c1717.html index 8e09502..0d98cde 100644 --- a/doc/developer/reference-html/c1717.html +++ b/doc/developer/reference-html/c1717.html @@ -1,27 +1,24 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Weaving for inkjet printers</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="The Developer's Guide to Gutenprint" -HREF="index.html"><LINK +HREF="book1.html"><LINK REL="PREVIOUS" TITLE="Appropriate Remote Commands" HREF="x1669.html"><LINK REL="NEXT" TITLE="Weaving algorithms" -HREF="x1734.html"></HEAD +HREF="x1734.html"><META +http-equiv="Content-Type" +content="text/html; charset=UTF-8"></HEAD ><BODY CLASS="chapter" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE @@ -73,18 +70,37 @@ NAME="AEN1717" ></A >Chapter 6. Weaving for inkjet printers</H1 ><DIV +CLASS="TOC" +><DL +><DT +><B +>Table of Contents</B +></DT +><DT +><A +HREF="c1717.html#AEN1719" +>Introduction</A +></DT +><DT +><A +HREF="x1734.html" +>Weaving algorithms</A +></DT +></DL +></DIV +><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="AEN1719" ->6.1. Introduction</A +>Introduction</A ></H1 ><P > The Epson Stylus Color/Photo printers don't have memory to print using all of the nozzles in the print head. For example, the Stylus Photo 700/EX has 32 nozzles. At 720 dpi, with an 8" wide - image, a single line requires ((8 720 6) / 8) + image, a single line requires ((8 × 720 × 6) / 8) bytes, or 4320 bytes (because the Stylus Photo printers have 6 ink colors). To use 32 nozzles per color would require 138240 bytes. It's actually worse than that, though, because the @@ -99,12 +115,12 @@ NAME="AEN1719" ><P > With the newer (740/750 and later) printers it's even worse, since these printers support multiple dot sizes; of course, the - even newer 2880720 printers don't help either. + even newer 2880×720 printers don't help either. </P ><P > Older Epson printers had a mode called MicroWeave<SUP ->™</SUP +>™</SUP >. In this mode, the host fed the printer individual rows of dots, and the printer bundled them up and sent them to the print head in the correct @@ -112,7 +128,7 @@ NAME="AEN1719" in new printers, but in some cases the implementation is very minimal: the printer uses exactly one nozzle of each color (the first one). This makes printing extremely slow (more than 30 - minutes for one 8.511" page), although the quality is + minutes for one 8.5×11" page), although the quality is extremely high with no visible banding whatsoever. It's not good for the print head, though, since no ink is flowing through the other nozzles. This leads to drying of ink and possible @@ -155,11 +171,11 @@ NAME="AEN1719" ><P > Interestingly, apparently the Windows (and presumably Macintosh) drivers for most or all Epson printers still list a - “microweave” mode. Experiments have demonstrated - that this does not in fact use the “microweave” mode + “microweave” mode. Experiments have demonstrated + that this does not in fact use the “microweave” mode of the printer. Possibly it does nothing, or it uses a different weave pattern from what the - “non-microweave” mode does. This is unnecessarily + “non-microweave” mode does. This is unnecessarily confusing, at least for people who write drivers who try to explain them to people who don't. </P @@ -240,7 +256,7 @@ WIDTH="34%" ALIGN="center" VALIGN="top" ><A -HREF="index.html" +HREF="book1.html" ACCESSKEY="H" >Home</A ></TD diff --git a/doc/developer/reference-html/c194.html b/doc/developer/reference-html/c194.html index 5ed6bd7..561e519 100644 --- a/doc/developer/reference-html/c194.html +++ b/doc/developer/reference-html/c194.html @@ -1,27 +1,24 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Reporting Bugs</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="The Developer's Guide to Gutenprint" -HREF="index.html"><LINK +HREF="book1.html"><LINK REL="PREVIOUS" TITLE="Integrating libgutenprint" HREF="x79.html"><LINK REL="NEXT" TITLE="Adding a new printer" -HREF="c200.html"></HEAD +HREF="c200.html"><META +http-equiv="Content-Type" +content="text/html; charset=UTF-8"></HEAD ><BODY CLASS="chapter" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE @@ -129,7 +126,7 @@ WIDTH="34%" ALIGN="center" VALIGN="top" ><A -HREF="index.html" +HREF="book1.html" ACCESSKEY="H" >Home</A ></TD diff --git a/doc/developer/reference-html/c1968.html b/doc/developer/reference-html/c1968.html index e03ce26..ad12784 100644 --- a/doc/developer/reference-html/c1968.html +++ b/doc/developer/reference-html/c1968.html @@ -1,27 +1,24 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Dithering</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="The Developer's Guide to Gutenprint" -HREF="index.html"><LINK +HREF="book1.html"><LINK REL="PREVIOUS" TITLE="Weaving algorithms" HREF="x1734.html"><LINK REL="NEXT" TITLE="GNU General Public License" -HREF="a2122.html"></HEAD +HREF="gpl.html"><META +http-equiv="Content-Type" +content="text/html; charset=UTF-8"></HEAD ><BODY CLASS="chapter" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE @@ -56,7 +53,7 @@ WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A -HREF="a2122.html" +HREF="gpl.html" ACCESSKEY="N" >Next</A ></TD @@ -105,9 +102,9 @@ CLASS="filename" CLASS="variablelist" ><DL ><DT -><TT +><VAR CLASS="literal" ->dither_fastblack</TT +>dither_fastblack</VAR ></DT ><DD ><P @@ -119,9 +116,9 @@ CLASS="literal" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->dither_black</TT +>dither_black</VAR ></DT ><DD ><P @@ -132,9 +129,9 @@ CLASS="literal" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->dither_cmyk</TT +>dither_cmyk</VAR ></DT ><DD ><P @@ -149,7 +146,7 @@ CLASS="literal" ><P > There is a choice of dithering algorithms. Four of them are based on a basic error diffusion, with a few tweaks of my own. - The other one is ‘ordered’. However, they all share + The other one is ‘ordered’. However, they all share the basic operation in common. First, the algorithm picks what kind of dot (if there are multiple dot sizes and/or tones that may be picked) is the candidate to be printed. This decision is @@ -186,7 +183,7 @@ CLASS="literal" </P ><P > Error diffusion works by taking the output error at a given - pixel and “diffusing” it into surrounding pixels. + pixel and “diffusing” it into surrounding pixels. Output error is the difference between the amount of ink output and the input level at each pixel. For simple printers, with one or four ink colors and only one dot size, the amount of ink @@ -208,7 +205,7 @@ CLASS="literal" </P ><P > There are two sub-classes of error diffusion that we use here, - ‘random’ and ‘hybrid’. One of the + ‘random’ and ‘hybrid’. One of the techniques that we use to ameliorate the artifacts is to use a fuzzy threshold rather than the hard threshold of half of the output level. Random error diffusion uses a pseudo-random @@ -219,7 +216,7 @@ CLASS="literal" </P ><P > There is one additional variant (on both sub-classes), called - ‘adaptive hybrid’ and ‘adaptive random’. + ‘adaptive hybrid’ and ‘adaptive random’. The adaptive variant takes advantage of the fact that the patterns that ordered dithering create are less visible at very low densities, while the artifacts created by error diffusion @@ -240,7 +237,7 @@ CLASS="literal" > The next question: how do we handle black when printing in color? Black ink is much darker than colored inks. It's possible to produce black by adding some mixture of cyan, - magenta, and yellow—in principle. In practice, the black + magenta, and yellow—in principle. In practice, the black really isn't very black, and different inks and different papers will produce different color casts. However, by using CMY to produce gray, we can output a lot more dots! This makes for a @@ -325,7 +322,7 @@ TYPE="1" ></LI ><LI ><P -> Compute the “virtual value”. The virtual value +> Compute the “virtual value”. The virtual value is the distance between the value of the lighter and the value of the darker ink. So if the value of the light ink is 32768 and the dark ink is 65536, we compute a virtual @@ -366,7 +363,7 @@ HREF="mailto:ttonino@bio.vu.nl" requires careful selection of initial points to achieve good results, and is very time consuming. For best results, a different matrix must be used for modes with 2:1 aspect ratio - (e.g. 1440720) than for 1:1 (e. g. 720720). It is + (e.g. 1440×720) than for 1:1 (e. g. 720×720). It is essential with any of these matrices that every point be used. Skipping points generates low-frequency noise. </P @@ -485,16 +482,16 @@ CLASS="emphasis" ></LI ><LI ><P -> Oversampling. This is how to print 1440720 with Epson - Stylus printers. Printing full density at 1440720 will +> Oversampling. This is how to print 1440×720 with Epson + Stylus printers. Printing full density at 1440×720 will result in excess ink being laid down. The trick is to print only every other dot. We still compute the error as though we printed every dot. It turns out that randomizing which dots are printed results in very speckled output. This can be - taken too far; oversampling at 14401440 or - 14402880 virtual resolution results in other problems. - However, at present 14401440 (which is more accurately - called "1440720 enhanced", as the Epson printers cannot + taken too far; oversampling at 1440×1440 or + 1440×2880 virtual resolution results in other problems. + However, at present 1440×1440 (which is more accurately + called "1440×720 enhanced", as the Epson printers cannot print 1440 rows per inch) does quite well, although it's slow. </P ></LI @@ -819,23 +816,23 @@ CLASS="function" CLASS="function" >dither_set_X_ranges_simple</CODE > - (<TT + (<VAR CLASS="literal" ->X</TT -> = <TT +>X</VAR +> = <VAR CLASS="literal" ->c</TT +>c</VAR >, - <TT + <VAR CLASS="literal" ->m</TT ->, <TT +>m</VAR +>, <VAR CLASS="literal" ->y</TT +>y</VAR > or - <TT + <VAR CLASS="literal" ->k</TT +>k</VAR >) describes the ink choices available for each color. This is useful in typical cases where a four color printer with variable dot sizes is in use. It is @@ -864,23 +861,23 @@ CLASS="function" CLASS="function" >dither_set_X_ranges</CODE > - (<TT + (<VAR CLASS="literal" ->X</TT -> = <TT +>X</VAR +> = <VAR CLASS="literal" ->c</TT +>c</VAR >, - <TT + <VAR CLASS="literal" ->m</TT ->, <TT +>m</VAR +>, <VAR CLASS="literal" ->y</TT +>y</VAR > or - <TT + <VAR CLASS="literal" ->k</TT +>k</VAR >) describes in a more general way the ink choices available for each color. For each possible ink choice, a bit pattern, dot size, value (i. e. relative @@ -915,7 +912,7 @@ WIDTH="34%" ALIGN="center" VALIGN="top" ><A -HREF="index.html" +HREF="book1.html" ACCESSKEY="H" >Home</A ></TD @@ -924,7 +921,7 @@ WIDTH="33%" ALIGN="right" VALIGN="top" ><A -HREF="a2122.html" +HREF="gpl.html" ACCESSKEY="N" >Next</A ></TD diff --git a/doc/developer/reference-html/c200.html b/doc/developer/reference-html/c200.html index cd26eae..ea024f7 100644 --- a/doc/developer/reference-html/c200.html +++ b/doc/developer/reference-html/c200.html @@ -1,27 +1,24 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Adding a new printer</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="The Developer's Guide to Gutenprint" -HREF="index.html"><LINK +HREF="book1.html"><LINK REL="PREVIOUS" TITLE="Reporting Bugs" HREF="c194.html"><LINK REL="NEXT" TITLE="The driver file" -HREF="x271.html"></HEAD +HREF="x271.html"><META +http-equiv="Content-Type" +content="text/html; charset=UTF-8"></HEAD ><BODY CLASS="chapter" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE @@ -72,6 +69,28 @@ CLASS="chapter" NAME="AEN200" ></A >Chapter 4. Adding a new printer</H1 +><DIV +CLASS="TOC" +><DL +><DT +><B +>Table of Contents</B +></DT +><DT +><A +HREF="c200.html#AEN217" +><TT +CLASS="filename" +>printers.xml</TT +></A +></DT +><DT +><A +HREF="x271.html" +>The driver file</A +></DT +></DL +></DIV ><P > This chapter covers adding a new ESCP/2, PCL, or Canon printer. Writing a new driver module is not covered. @@ -131,7 +150,7 @@ CLASS="sect1" CLASS="sect1" ><A NAME="AEN217" ->4.1. <TT +><TT CLASS="filename" >printers.xml</TT ></A @@ -155,6 +174,12 @@ CLASS="informalexample" ><A NAME="AEN223" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="programlisting" ><printer name="EPSON Stylus Color 1500" driver="escp2-1500"> @@ -163,30 +188,33 @@ CLASS="programlisting" <gamma value="0.597"/> <density value="1.0"/> </printer></PRE +></TD +></TR +></TABLE ><P ></P ></DIV ><P > There are other tags that may be present. The only ones that - are mandatory are <TT + are mandatory are <VAR CLASS="literal" -><printer></TT +><printer></VAR >, - <TT + <VAR CLASS="literal" -><color></TT +><color></VAR > and - <TT + <VAR CLASS="literal" -><model></TT +><model></VAR >. The other optional parameters - (<TT + (<VAR CLASS="literal" -><gamma></TT +><gamma></VAR > and - <TT + <VAR CLASS="literal" -><density></TT +><density></VAR > in this case) can be used to adjust control settings. This is probably not the right place for them; the printer drivers themselves should contain this @@ -213,75 +241,75 @@ CLASS="variablelist" ></P ><DL ><DT -><TT +><VAR CLASS="literal" -><family></TT +><family></VAR ></DT ><DD ><P > This defines what driver module this printer uses. The - attribute <TT + attribute <VAR CLASS="literal" ->name</TT +>name</VAR > is the name of the family driver to associate the printers with, for example - <TT + <VAR CLASS="literal" ->escp2</TT ->, <TT +>escp2</VAR +>, <VAR CLASS="literal" ->pcl</TT +>pcl</VAR >, - <TT + <VAR CLASS="literal" ->canon</TT ->, <TT +>canon</VAR +>, <VAR CLASS="literal" ->ps</TT +>ps</VAR > or - <TT + <VAR CLASS="literal" ->raw</TT +>raw</VAR >. This tag may only contain - <TT + <VAR CLASS="literal" -><printer></TT +><printer></VAR > elements. </P ></DD ><DT -><TT +><VAR CLASS="literal" -><printer></TT +><printer></VAR ></DT ><DD ><P > This starts the definition of a printer. It must contain - the attributes <TT + the attributes <VAR CLASS="literal" ->name</TT +>name</VAR > and - <TT + <VAR CLASS="literal" ->driver</TT ->. <TT +>driver</VAR +>. <VAR CLASS="literal" ->name</TT +>name</VAR > should be is the full name of the printer, and must be human - readable. <TT + readable. <VAR CLASS="literal" ->driver</TT +>driver</VAR > should consist of alphanumerics and hyphens, and be fairly short. - <TT + <VAR CLASS="literal" ->name</TT +>name</VAR > is what will appear in the user-visible listing of printers, and may be translated - into the user's language, while <TT + into the user's language, while <VAR CLASS="literal" ->driver</TT +>driver</VAR > is what is actually used to key into the list of printers. It is legal to have multiple printers with the same driver @@ -289,43 +317,43 @@ CLASS="literal" </P ></DD ><DT -><TT +><VAR CLASS="literal" -><color></TT +><color></VAR ></DT ><DD ><P > This tag may not contain any content, but the - <TT + <VAR CLASS="literal" ->value</TT +>value</VAR > attribute may be set to - <TT + <VAR CLASS="literal" ->true</TT -> or <TT +>true</VAR +> or <VAR CLASS="literal" ->false</TT +>false</VAR >. This indicates that this printer is capable of color, or is not capable of color respectively. </P ></DD ><DT -><TT +><VAR CLASS="literal" -><model></TT +><model></VAR ></DT ><DD ><P > This defines a model number. This tag may not contain any - content, but the <TT + content, but the <VAR CLASS="literal" ->value</TT +>value</VAR > attribute may be set to a positive integer. This is passed into the driver, which may do whatever it cares to with - it—index into a table, compute on, or whatever. + it—index into a table, compute on, or whatever. This need not be unique. </P ></DD @@ -358,7 +386,7 @@ WIDTH="34%" ALIGN="center" VALIGN="top" ><A -HREF="index.html" +HREF="book1.html" ACCESSKEY="H" >Home</A ></TD diff --git a/doc/developer/reference-html/c39.html b/doc/developer/reference-html/c39.html index 3021576..04c08a9 100644 --- a/doc/developer/reference-html/c39.html +++ b/doc/developer/reference-html/c39.html @@ -1,27 +1,24 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Copying, modification and redistribution</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="The Developer's Guide to Gutenprint" -HREF="index.html"><LINK +HREF="book1.html"><LINK REL="PREVIOUS" TITLE="Preface" HREF="f14.html"><LINK REL="NEXT" TITLE="Using libgutenprint" -HREF="c48.html"></HEAD +HREF="c48.html"><META +http-equiv="Content-Type" +content="text/html; charset=UTF-8"></HEAD ><BODY CLASS="chapter" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE @@ -114,7 +111,7 @@ CLASS="emphasis" ><P > Gutenprint is licensed under the terms of the GNU General Public License (GPL), reproduced in <A -HREF="a2122.html" +HREF="gpl.html" >Appendix A</A >. </P @@ -144,7 +141,7 @@ WIDTH="34%" ALIGN="center" VALIGN="top" ><A -HREF="index.html" +HREF="book1.html" ACCESSKEY="H" >Home</A ></TD diff --git a/doc/developer/reference-html/c464.html b/doc/developer/reference-html/c464.html index cb3bede..5d5fc45 100644 --- a/doc/developer/reference-html/c464.html +++ b/doc/developer/reference-html/c464.html @@ -1,27 +1,24 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >ESC/P2</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="The Developer's Guide to Gutenprint" -HREF="index.html"><LINK +HREF="book1.html"><LINK REL="PREVIOUS" TITLE="The driver file" HREF="x271.html"><LINK REL="NEXT" TITLE="Remote Mode Commands" -HREF="x955.html"></HEAD +HREF="x955.html"><META +http-equiv="Content-Type" +content="text/html; charset=UTF-8"></HEAD ><BODY CLASS="chapter" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE @@ -72,6 +69,30 @@ CLASS="chapter" NAME="AEN464" ></A >Chapter 5. ESC/P2</H1 +><DIV +CLASS="TOC" +><DL +><DT +><B +>Table of Contents</B +></DT +><DT +><A +HREF="c464.html#AEN477" +>Standard commands</A +></DT +><DT +><A +HREF="x955.html" +>Remote Mode Commands</A +></DT +><DT +><A +HREF="x1669.html" +>Appropriate Remote Commands</A +></DT +></DL +></DIV ><P > This is a description of the ESC/P2 raster commands used by the Gutenprint printer driver, which is a subset of the complete @@ -93,29 +114,29 @@ CLASS="emphasis" are certainly not complete. </P ><P -> All ESCP/2 raster commands begin with the <TT +> All ESCP/2 raster commands begin with the <VAR CLASS="literal" ->ESC</TT +>ESC</VAR > character (0x1b), followed by either one or two command characters and arguments where applicable. Older commands generally have one command character. Newer commands usually have a - ‘<TT + ‘<VAR CLASS="literal" ->(</TT ->’ (left parenthesis) followed by +>(</VAR +>’ (left parenthesis) followed by a command character and a byte count for the arguments that follow. The byte count is a 16-bit (2 byte) binary integer, in little endian order. </P ><P > All arguments listed here are of the form - <TT + <VAR CLASS="literal" ->name[bytes]</TT -> where <TT +>name[bytes]</VAR +> where <VAR CLASS="literal" ->[bytes]</TT +>[bytes]</VAR > is the number of bytes that comprise the argument. The arguments themselves are usually one, two, or four byte integers, always @@ -133,7 +154,7 @@ CLASS="sect1" CLASS="sect1" ><A NAME="AEN477" ->5.1. Standard commands</A +>Standard commands</A ></H1 ><P ></P @@ -145,9 +166,9 @@ CLASS="variablelist" ></P ><DL ><DT -><TT +><VAR CLASS="literal" ->ESC @</TT +>ESC @</VAR ></DT ><DD ><P @@ -157,22 +178,22 @@ CLASS="literal" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC (G <CODE +>ESC (G <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=1 - <CODE + <VAR CLASS="varname" ->ON1</CODE -></TT +>ON1</VAR +></VAR ></DT ><DD ><P -> Turn on graphics mode. <CODE +> Turn on graphics mode. <VAR CLASS="varname" ->ON</CODE +>ON</VAR > should be <CODE CLASS="constant" @@ -181,31 +202,31 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC (U <CODE +>ESC (U <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=1 - <CODE + <VAR CLASS="varname" ->UNIT1</CODE -></TT +>UNIT1</VAR +></VAR ></DT ><DD ><P > Set basic unit of measurement used by printer. This is expressed in multiples of 1/3600". At 720 DPI, - <CODE + <VAR CLASS="varname" ->UNIT</CODE +>UNIT</VAR > is <CODE CLASS="constant" >5</CODE >; at - 360 DPI, <CODE + 360 DPI, <VAR CLASS="varname" ->UNIT</CODE +>UNIT</VAR > is <CODE CLASS="constant" @@ -214,88 +235,88 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC (U <CODE +>ESC (U <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=5 - <CODE + <VAR CLASS="varname" ->PAGEUNITS1</CODE -> <CODE +>PAGEUNITS1</VAR +> <VAR CLASS="varname" ->VUNIT1</CODE +>VUNIT1</VAR > - <CODE + <VAR CLASS="varname" ->HUNIT1</CODE +>HUNIT1</VAR > - <CODE + <VAR CLASS="varname" ->BASEUNIT2</CODE -></TT +>BASEUNIT2</VAR +></VAR ></DT ><DD ><P > Set basic units of measurement used by the printer. - <CODE + <VAR CLASS="varname" ->PAGEUNIT</CODE +>PAGEUNIT</VAR > is the unit of page measurement (for commands that set page dimensions and - the like). <CODE + the like). <VAR CLASS="varname" ->VUNIT</CODE +>VUNIT</VAR > is the unit of vertical measurement (for vertical movement commands). - <CODE + <VAR CLASS="varname" ->HUNIT</CODE +>HUNIT</VAR > is the unit of horizontal movement (for horizontal positioning commands). All of these units are expressed in - <CODE + <VAR CLASS="varname" ->BASEUNIT</CODE +>BASEUNIT</VAR >, which is in reciprocal - inches. Typically, <CODE + inches. Typically, <VAR CLASS="varname" ->BASEUNIT</CODE +>BASEUNIT</VAR > is <CODE CLASS="constant" >1440</CODE >. In 720 DPI mode, - <CODE + <VAR CLASS="varname" ->PAGEUNIT</CODE ->, <CODE +>PAGEUNIT</VAR +>, <VAR CLASS="varname" ->VUNIT</CODE +>VUNIT</VAR >, - and <CODE + and <VAR CLASS="varname" ->HUNIT</CODE +>HUNIT</VAR > are all <CODE CLASS="constant" >2</CODE ->; in 1440720 DPI mode, - <CODE +>; in 1440×720 DPI mode, + <VAR CLASS="varname" ->PAGEUNIT</CODE -> and <CODE +>PAGEUNIT</VAR +> and <VAR CLASS="varname" ->VUNIT</CODE +>VUNIT</VAR > are normally set to <CODE CLASS="constant" >2</CODE >; - <CODE + <VAR CLASS="varname" ->HUNIT</CODE +>HUNIT</VAR > is set to <CODE CLASS="constant" @@ -304,20 +325,20 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC (K <CODE +>ESC (K <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=2 - <CODE + <VAR CLASS="varname" ->ZERO1</CODE +>ZERO1</VAR > - <CODE + <VAR CLASS="varname" ->GRAYMODE1</CODE -></TT +>GRAYMODE1</VAR +></VAR ></DT ><DD ><P @@ -326,9 +347,9 @@ CLASS="varname" identified because they are advertised as having more black nozzles than nozzles of individual colors. Setting grayscale mode allows use of these extra nozzles - for faster printing. <CODE + for faster printing. <VAR CLASS="varname" ->GRAYMODE</CODE +>GRAYMODE</VAR > should be <CODE CLASS="constant" @@ -341,9 +362,9 @@ CLASS="constant" CLASS="constant" >1</CODE > for grayscale. - <CODE + <VAR CLASS="varname" ->ZERO</CODE +>ZERO</VAR > should always be <CODE CLASS="constant" @@ -352,22 +373,22 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC (i <CODE +>ESC (i <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=1 - <CODE + <VAR CLASS="varname" ->MICROWEAVE1</CODE -></TT +>MICROWEAVE1</VAR +></VAR ></DT ><DD ><P -> If <CODE +> If <VAR CLASS="varname" ->MICROWEAVE</CODE +>MICROWEAVE</VAR > is <CODE CLASS="constant" @@ -376,7 +397,7 @@ CLASS="constant" printers, this is used to turn on microweave; on newer printers, it prints one row at a time. All printers support this mode. It should only be used at 720 (or - 1440720) DPI. The Epson Stylus Pro series + 1440×720) DPI. The Epson Stylus Pro series indicates additional modes: </P ><P @@ -391,7 +412,7 @@ CLASS="constant" ></DT ><DD ><P -> “Full-overlap” +> “Full-overlap” </P ></DD ><DT @@ -401,7 +422,7 @@ CLASS="constant" ></DT ><DD ><P -> “Four-pass” +> “Four-pass” </P ></DD ><DT @@ -411,7 +432,7 @@ CLASS="constant" ></DT ><DD ><P -> “Full-overlap 2” +> “Full-overlap 2” </P ></DD ></DL @@ -429,19 +450,19 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" >ESC U - <CODE + <VAR CLASS="varname" ->DIRECTION1</CODE -></TT +>DIRECTION1</VAR +></VAR ></DT ><DD ><P -> If <CODE +> If <VAR CLASS="varname" ->DIRECTION</CODE +>DIRECTION</VAR > is <CODE CLASS="constant" @@ -454,31 +475,31 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC (s <CODE +>ESC (s <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=1 - <CODE + <VAR CLASS="varname" ->SPEED1</CODE -></TT +>SPEED1</VAR +></VAR ></DT ><DD ><P > On some older printers, this controls the print head - speed. <CODE + speed. <VAR CLASS="varname" ->SPEED</CODE +>SPEED</VAR > of <CODE CLASS="constant" >2</CODE > is 10 inches/sec; - <CODE + <VAR CLASS="varname" ->SPEED</CODE +>SPEED</VAR > of <CODE CLASS="constant" >0</CODE @@ -487,26 +508,26 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC (e <CODE +>ESC (e <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=2 - <CODE + <VAR CLASS="varname" ->ZERO1</CODE +>ZERO1</VAR > - <CODE + <VAR CLASS="varname" ->DOTSIZE1</CODE -></TT +>DOTSIZE1</VAR +></VAR ></DT ><DD ><P -> Choose print dotsize. <CODE +> Choose print dotsize. <VAR CLASS="varname" ->DOTSIZE</CODE +>DOTSIZE</VAR > can take on various values, depending upon the printer. Almost all printers support <CODE @@ -517,45 +538,45 @@ CLASS="constant" CLASS="constant" >2</CODE >. Variable dot size printers - allow a value of <CODE + allow a value of <VAR CLASS="varname" ->16</CODE +>16</VAR >. Other than the - value of <CODE + value of <VAR CLASS="varname" ->16</CODE +>16</VAR >, this appears to be ignored at resolutions of 720 DPI and above. </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC (C <CODE +>ESC (C <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=2 - <CODE + <VAR CLASS="varname" ->PAGELENGTH2</CODE -></TT ->, <TT +>PAGELENGTH2</VAR +></VAR +>, <VAR CLASS="literal" ->ESC (C <CODE +>ESC (C <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=4 - <CODE + <VAR CLASS="varname" ->PAGELENGTH4</CODE -></TT +>PAGELENGTH4</VAR +></VAR ></DT ><DD ><P -> Set the length of the page in “pageunits” - (see <TT +> Set the length of the page in “pageunits” + (see <VAR CLASS="literal" ->ESC (U</TT +>ESC (U</VAR > above). The second form of the command allows setting of longer page lengths on new printers (these happen to be the printers that @@ -563,41 +584,41 @@ CLASS="literal" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC (c <CODE +>ESC (c <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=4 - <CODE + <VAR CLASS="varname" ->TOP2</CODE +>TOP2</VAR > - <CODE + <VAR CLASS="varname" ->LENGTH2</CODE -></TT ->, <TT +>LENGTH2</VAR +></VAR +>, <VAR CLASS="literal" ->ESC (c <CODE +>ESC (c <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=8 - <CODE + <VAR CLASS="varname" ->TOP4</CODE +>TOP4</VAR > - <CODE + <VAR CLASS="varname" ->LENGTH4</CODE -></TT +>LENGTH4</VAR +></VAR ></DT ><DD ><P > Set the vertical page margins of the page in - “pageunits” (see <TT + “pageunits” (see <VAR CLASS="literal" ->ESC (U</TT +>ESC (U</VAR > above). The margins are specified as the top of the page and the length of the page. The second form of the @@ -607,119 +628,119 @@ CLASS="literal" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC (S <CODE +>ESC (S <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=8 - <CODE + <VAR CLASS="varname" ->WIDTH4</CODE +>WIDTH4</VAR > - <CODE + <VAR CLASS="varname" ->LENGTH4</CODE -></TT +>LENGTH4</VAR +></VAR ></DT ><DD ><P > Set the width and length of the printed page region in - “pageunits” (see <TT + “pageunits” (see <VAR CLASS="literal" ->ESC (U</TT +>ESC (U</VAR > above). </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC (v <CODE +>ESC (v <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=2 - <CODE + <VAR CLASS="varname" ->ADVANCE2</CODE -></TT ->, <TT +>ADVANCE2</VAR +></VAR +>, <VAR CLASS="literal" ->ESC (v <CODE +>ESC (v <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=4 - <CODE + <VAR CLASS="varname" ->ADVANCE4</CODE -></TT +>ADVANCE4</VAR +></VAR ></DT ><DD ><P -> Feed vertically <CODE +> Feed vertically <VAR CLASS="varname" ->ADVANCE</CODE +>ADVANCE</VAR > - “vertical units” (see <TT + “vertical units” (see <VAR CLASS="literal" >ESC - (U</TT + (U</VAR > above) from the current print head position. </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC (V <CODE +>ESC (V <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=2 - <CODE + <VAR CLASS="varname" ->ADVANCE2</CODE -></TT ->, <TT +>ADVANCE2</VAR +></VAR +>, <VAR CLASS="literal" ->ESC (V <CODE +>ESC (V <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=4 - <CODE + <VAR CLASS="varname" ->ADVANCE4</CODE -></TT +>ADVANCE4</VAR +></VAR ></DT ><DD ><P -> Feed vertically <CODE +> Feed vertically <VAR CLASS="varname" ->ADVANCE</CODE +>ADVANCE</VAR > - “vertical units” (see <TT + “vertical units” (see <VAR CLASS="literal" >ESC - (U</TT + (U</VAR > above) from the top margin. </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC ($ <CODE +>ESC ($ <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=4 - <CODE + <VAR CLASS="varname" ->OFFSET4</CODE -></TT +>OFFSET4</VAR +></VAR ></DT ><DD ><P -> Set horizontal position to <CODE +> Set horizontal position to <VAR CLASS="varname" ->OFFSET</CODE +>OFFSET</VAR > from the left margin. This command operates on printers of the 740 class and newer (all printers with variable @@ -727,19 +748,19 @@ CLASS="varname" </P ></DD ><DT -><TT +><VAR CLASS="literal" >ESC $ - <CODE + <VAR CLASS="varname" ->OFFSET2</CODE -></TT +>OFFSET2</VAR +></VAR ></DT ><DD ><P -> Set horizontal position to <CODE +> Set horizontal position to <VAR CLASS="varname" ->OFFSET</CODE +>OFFSET</VAR > from the left margin. This command operates on printers of the 740 class and newer (all printers with variable @@ -747,34 +768,34 @@ CLASS="varname" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC (\ <CODE +>ESC (\ <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=4 - <CODE + <VAR CLASS="varname" ->UNITS2</CODE +>UNITS2</VAR > - <CODE + <VAR CLASS="varname" ->OFFSET2</CODE -></TT +>OFFSET2</VAR +></VAR ></DT ><DD ><P -> Set horizontal position to <CODE +> Set horizontal position to <VAR CLASS="varname" ->OFFSET</CODE +>OFFSET</VAR > from the previous print head position, measured in - <CODE + <VAR CLASS="varname" ->UNITS</CODE ->. <CODE +>UNITS</VAR +>. <VAR CLASS="varname" ->UNITS</CODE +>UNITS</VAR > is measured in inverse inches, and should be set to 1440 in all cases. This operates on all 1440 dpi printers that @@ -782,58 +803,58 @@ CLASS="varname" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC (/ <CODE +>ESC (/ <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=4 - <CODE + <VAR CLASS="varname" ->OFFSET4</CODE -></TT +>OFFSET4</VAR +></VAR ></DT ><DD ><P -> Set horizontal position to <CODE +> Set horizontal position to <VAR CLASS="varname" ->OFFSET</CODE +>OFFSET</VAR > from the previous print head position, measured in - “horizontal units” (see <TT + “horizontal units” (see <VAR CLASS="literal" >ESC - (U</TT + (U</VAR > above). This operates on all variable dot size printers. </P ></DD ><DT -><TT +><VAR CLASS="literal" >ESC \ - <CODE + <VAR CLASS="varname" ->OFFSET2</CODE -></TT +>OFFSET2</VAR +></VAR ></DT ><DD ><P -> Set horizontal position to <CODE +> Set horizontal position to <VAR CLASS="varname" ->OFFSET</CODE +>OFFSET</VAR > from the previous print head position, measured in basic - unit of measurement (see <TT + unit of measurement (see <VAR CLASS="literal" ->ESC (U</TT +>ESC (U</VAR > above). This is used on all 720 dpi printers, and can also be used on 1440 dpi printers in lower resolutions to save a few bytes. Note that - <CODE + <VAR CLASS="varname" ->OFFSET</CODE +>OFFSET</VAR > may be negative. The range of values for this command is between <CODE @@ -847,35 +868,35 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" >ESC r - <CODE + <VAR CLASS="varname" ->COLOR1</CODE -></TT ->, <TT +>COLOR1</VAR +></VAR +>, <VAR CLASS="literal" ->ESC (r <CODE +>ESC (r <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=2 - <CODE + <VAR CLASS="varname" ->DENSITY1</CODE +>DENSITY1</VAR > - <CODE + <VAR CLASS="varname" ->COLOR1</CODE -></TT +>COLOR1</VAR +></VAR ></DT ><DD ><P > Set the ink color. The first form is used on four-color printers; the second on six-color printers. - <CODE + <VAR CLASS="varname" ->DENSITY</CODE +>DENSITY</VAR > is <CODE CLASS="constant" >0</CODE @@ -884,9 +905,9 @@ CLASS="constant" CLASS="constant" >1</CODE > for light. - <CODE + <VAR CLASS="varname" ->COLOR</CODE +>COLOR</VAR > is </P ><DIV @@ -908,9 +929,9 @@ WIDTH="1*" TITLE="color"><THEAD ><TR ><TH -><CODE +><VAR CLASS="varname" ->COLOR</CODE +>COLOR</VAR ></TH ><TH >Color name</TH @@ -962,33 +983,33 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC . <CODE +>ESC . <VAR CLASS="varname" ->COMPRESS1</CODE +>COMPRESS1</VAR > - <CODE + <VAR CLASS="varname" ->VSEP1</CODE -> <CODE +>VSEP1</VAR +> <VAR CLASS="varname" ->HSEP1</CODE +>HSEP1</VAR > - <CODE + <VAR CLASS="varname" ->LINES1</CODE -> <CODE +>LINES1</VAR +> <VAR CLASS="varname" ->WIDTH2</CODE +>WIDTH2</VAR > - data...</TT + data...</VAR ></DT ><DD ><P -> Print data. <CODE +> Print data. <VAR CLASS="varname" ->COMPRESS</CODE +>COMPRESS</VAR > signifies the compression mode. </P @@ -1011,9 +1032,9 @@ WIDTH="1*" TITLE="compression"><THEAD ><TR ><TH -><CODE +><VAR CLASS="varname" ->COMPRESS</CODE +>COMPRESS</VAR ></TH ><TH >Compression mode</TH @@ -1037,7 +1058,7 @@ CLASS="constant" ></TD ><TD > TIFF compression (incorrectly documented as - “run length encoded”) + “run length encoded”) </TD ></TR ><TR @@ -1054,9 +1075,9 @@ CLASS="constant" ></TABLE ></DIV ><P -> <CODE +> <VAR CLASS="varname" ->VSEP</CODE +>VSEP</VAR > depends upon resolution and printer type. At 360 DPI, it is always <CODE @@ -1070,13 +1091,13 @@ CLASS="constant" <CODE CLASS="constant" >40</CODE -> (8 5}). On some other +> (8 × 5}). On some other printers, it varies. </P ><P -> <CODE +> <VAR CLASS="varname" ->HSEP1</CODE +>HSEP1</VAR > is <CODE CLASS="constant" >10</CODE @@ -1090,9 +1111,9 @@ CLASS="constant" 1/720"). </P ><P -> <CODE +> <VAR CLASS="varname" ->LINES</CODE +>LINES</VAR > is the number of lines to be printed. It should be <CODE CLASS="constant" @@ -1102,18 +1123,18 @@ CLASS="constant" be the number of lines to be actually printed. </P ><P -> <CODE +> <VAR CLASS="varname" ->WIDTH</CODE +>WIDTH</VAR > is the number of pixels to be printed in each row. Following this command, a carriage return (<CODE CLASS="constant" >13</CODE > decimal, - <TT + <VAR CLASS="literal" ->0A</TT +>0A</VAR > hex) should be output to return the print head position to the left margin. </P @@ -1163,35 +1184,35 @@ CLASS="constant" ></OL ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC i <CODE +>ESC i <VAR CLASS="varname" ->COLOR1</CODE +>COLOR1</VAR > - <CODE + <VAR CLASS="varname" ->COMPRESS1</CODE -> <CODE +>COMPRESS1</VAR +> <VAR CLASS="varname" ->BITS1</CODE +>BITS1</VAR > - <CODE + <VAR CLASS="varname" ->BYTES2</CODE -> <CODE +>BYTES2</VAR +> <VAR CLASS="varname" ->LINES2</CODE +>LINES2</VAR > - data...</TT + data...</VAR ></DT ><DD ><P > Print data in the newer printers (that support variable dot size), and Stylus Pro models. - <CODE + <VAR CLASS="varname" ->COLOR</CODE +>COLOR</VAR > is the color. </P ><DIV @@ -1213,9 +1234,9 @@ WIDTH="1*" TITLE="color"><THEAD ><TR ><TH -><CODE +><VAR CLASS="varname" ->COLOR</CODE +>COLOR</VAR ></TH ><TH >Color name</TH @@ -1283,7 +1304,7 @@ CLASS="constant" >16</CODE ></TD ><TD ->Gray (“light black”)</TD +>Gray (“light black”)</TD ></TR ><TR ><TD @@ -1307,9 +1328,9 @@ CLASS="constant" ></TABLE ></DIV ><P -> <CODE +> <VAR CLASS="varname" ->COMPRESS</CODE +>COMPRESS</VAR > signifies the compression mode: </P @@ -1332,9 +1353,9 @@ WIDTH="1*" TITLE="compression"><THEAD ><TR ><TH -><CODE +><VAR CLASS="varname" ->COMPRESS</CODE +>COMPRESS</VAR ></TH ><TH >Compression mode</TH @@ -1358,7 +1379,7 @@ CLASS="constant" ></TD ><TD > TIFF compression (incorrectly documented as - “run length encoded”) + “run length encoded”) </TD ></TR ><TR @@ -1369,7 +1390,7 @@ CLASS="constant" ></TD ><TD > TIFF compression with a special command set, or - “run length encoding 2” on some + “run length encoding 2” on some printers. </TD ></TR @@ -1377,27 +1398,27 @@ CLASS="constant" ></TABLE ></DIV ><P -> <CODE +> <VAR CLASS="varname" ->BITS</CODE +>BITS</VAR > is the number of bits per pixel. </P ><P -> <CODE +> <VAR CLASS="varname" ->BYTES</CODE +>BYTES</VAR > is the number of bytes wide for - each row (ceiling(BITS width_of_row, 8)}). Note - that this is different from the <TT + each row (ceiling(BITS × width_of_row, 8)}). Note + that this is different from the <VAR CLASS="literal" ->ESC .</TT +>ESC .</VAR > command above. </P ><P -> <CODE +> <VAR CLASS="varname" ->LINES</CODE +>LINES</VAR > is the number of lines to be printed. This command is the only way to get variable dot size printing. In variable dot mode, the size of @@ -1416,23 +1437,23 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC (D <CODE +>ESC (D <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=4 - <CODE + <VAR CLASS="varname" ->BASE2</CODE -> <CODE +>BASE2</VAR +> <VAR CLASS="varname" ->VERTICAL1</CODE +>VERTICAL1</VAR > - <CODE + <VAR CLASS="varname" ->HORIZONTAL1</CODE -></TT +>HORIZONTAL1</VAR +></VAR ></DT ><DD ><P @@ -1441,9 +1462,9 @@ CLASS="varname" (and possibly other high end printers). </P ><P -> <CODE +> <VAR CLASS="varname" ->BASE</CODE +>BASE</VAR > is the base unit for this command; it must be <CODE CLASS="constant" @@ -1451,42 +1472,42 @@ CLASS="constant" >. </P ><P -> <CODE +> <VAR CLASS="varname" ->VERTICAL</CODE +>VERTICAL</VAR > is the distance in these units between printed rows; it should be - ((separation_in_nozzles <CODE + ((separation_in_nozzles × <VAR CLASS="varname" ->BASE</CODE +>BASE</VAR > - 720). + ÷ 720). </P ><P -> <CODE +> <VAR CLASS="varname" ->HORIZONTAL</CODE +>HORIZONTAL</VAR > is the horizontal separation between dots in a row. Depending upon the - printer, this should be either (14400 720) or - (14400 360). The Stylus Pro 9000 manual + printer, this should be either (14400 ÷ 720) or + (14400 ÷ 360). The Stylus Pro 9000 manual suggests that the settings should match the chosen resolution, but that is apparently not the case (or not always the case) on other printers. </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC (R <CODE +>ESC (R <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=8 00 R E M O T E - 1</TT + 1</VAR ></DT ><DD ><P -> Enters “remote mode”. This is a special, +> Enters “remote mode”. This is a special, undocumented command set that is used to set up various printer options, such as paper feed tray, and perform utility functions such as head cleaning and alignment. @@ -1497,9 +1518,9 @@ CLASS="varname" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->ESC 01 @EJL [sp] ID\r\n</TT +>ESC 01 @EJL [sp] ID\r\n</VAR ></DT ><DD ><P @@ -1514,6 +1535,12 @@ CLASS="informalexample" ><A NAME="AEN937" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >@EJL ID\r @@ -1523,6 +1550,9 @@ MDL:[printer model]; CLS:PRINTER; DES:EPSON [printer model]; \f</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1548,10 +1578,19 @@ CLASS="informalexample" ><A NAME="AEN941" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >ESC 01@EJL[space]1284.4[newline]@EJL[space][space][space][space] [space][newline]ESC@</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1565,6 +1604,12 @@ CLASS="informalexample" ><A NAME="AEN944" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >magic command @@ -1582,6 +1627,9 @@ ESC (c ESC (S ESC (D (if needed) ESC (V (optional -- this can be accomplished with ESC (v)</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1595,9 +1643,18 @@ CLASS="informalexample" ><A NAME="AEN947" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >ESC (v</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1611,12 +1668,21 @@ CLASS="informalexample" ><A NAME="AEN950" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >ESC ($ or ESC (\ or ESC \ ESC (r or ESC r (if needed---not used with "ESC i" and not needed if the color has not changed from the previous printed line) ESC . or ESC i ...data... [return] (0A hex)</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1630,10 +1696,19 @@ CLASS="informalexample" ><A NAME="AEN953" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >[formfeed] (0C hex) ESC @</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1664,7 +1739,7 @@ WIDTH="34%" ALIGN="center" VALIGN="top" ><A -HREF="index.html" +HREF="book1.html" ACCESSKEY="H" >Home</A ></TD diff --git a/doc/developer/reference-html/c48.html b/doc/developer/reference-html/c48.html index 3e4767b..a09caa6 100644 --- a/doc/developer/reference-html/c48.html +++ b/doc/developer/reference-html/c48.html @@ -1,27 +1,24 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Using libgutenprint</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="The Developer's Guide to Gutenprint" -HREF="index.html"><LINK +HREF="book1.html"><LINK REL="PREVIOUS" TITLE="Copying, modification and redistribution" HREF="c39.html"><LINK REL="NEXT" TITLE="Linking with libgutenprint" -HREF="x67.html"></HEAD +HREF="x67.html"><META +http-equiv="Content-Type" +content="text/html; charset=UTF-8"></HEAD ><BODY CLASS="chapter" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE @@ -72,6 +69,30 @@ CLASS="chapter" NAME="AEN48" ></A >Chapter 2. Using libgutenprint</H1 +><DIV +CLASS="TOC" +><DL +><DT +><B +>Table of Contents</B +></DT +><DT +><A +HREF="c48.html#AEN51" +>Code prerequisites</A +></DT +><DT +><A +HREF="x67.html" +>Linking with libgutenprint</A +></DT +><DT +><A +HREF="x79.html" +>Integrating libgutenprint</A +></DT +></DL +></DIV ><P > This chapter describes how to write programs that use libgutenprint. @@ -82,7 +103,7 @@ CLASS="sect1" CLASS="sect1" ><A NAME="AEN51" ->2.1. Code prerequisites</A +>Code prerequisites</A ></H1 ><P > To use libgutenprint with a program, several steps must be taken: @@ -100,9 +121,18 @@ CLASS="informalexample" ><A NAME="AEN57" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="programlisting" ><gimp-print/gimp-print.h></PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -135,6 +165,12 @@ CLASS="informalexample" ><A NAME="AEN65" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="programlisting" >#include <gimp-print/gimp-print.h> @@ -145,6 +181,9 @@ main (int argc, char *argv[]) return 0; } </PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -175,7 +214,7 @@ WIDTH="34%" ALIGN="center" VALIGN="top" ><A -HREF="index.html" +HREF="book1.html" ACCESSKEY="H" >Home</A ></TD diff --git a/doc/developer/reference-html/docbook.css b/doc/developer/reference-html/docbook.css new file mode 100644 index 0000000..0f90516 --- /dev/null +++ b/doc/developer/reference-html/docbook.css @@ -0,0 +1,12 @@ +.NAVHEADER { display: none } +.NAVFOOTER { display: none } +.TOC { display: none } + +.NAVTOC { margin-left: 15; + display: none } + +.NAVBTN { font-size: 10pt } + +.TOCTITLE { font-size: 10pt; + color: blue; + text-decoration: underline; } diff --git a/doc/developer/reference-html/f14.html b/doc/developer/reference-html/f14.html index 203891e..d234b7a 100644 --- a/doc/developer/reference-html/f14.html +++ b/doc/developer/reference-html/f14.html @@ -1,27 +1,24 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Preface</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="The Developer's Guide to Gutenprint" -HREF="index.html"><LINK +HREF="book1.html"><LINK REL="PREVIOUS" TITLE="The Developer's Guide to Gutenprint" -HREF="index.html"><LINK +HREF="book1.html"><LINK REL="NEXT" TITLE="Copying, modification and redistribution" -HREF="c39.html"></HEAD +HREF="c39.html"><META +http-equiv="Content-Type" +content="text/html; charset=UTF-8"></HEAD ><BODY CLASS="preface" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE @@ -42,7 +39,7 @@ WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A -HREF="index.html" +HREF="book1.html" ACCESSKEY="P" >Prev</A ></TD @@ -80,7 +77,7 @@ NAME="AEN14" on a par with proprietary vendor-supplied drivers in many cases, and can be used for many of the most demanding printing tasks, especially for high quality printing on modern inkjets, including - “photographic quality” models which offer very high + “photographic quality” models which offer very high resolutions and several inks. The core of Gutenprint is a shared library (libgutenprint) which may be used by any program that wishes to produce high-quality printed output. @@ -161,7 +158,7 @@ CLASS="command" > <P CLASS="literallayout" >We hope you enjoy using Gutenprint!<br> -—The Gutenprint project<br> +—The Gutenprint project<br> </P > </P @@ -182,7 +179,7 @@ WIDTH="33%" ALIGN="left" VALIGN="top" ><A -HREF="index.html" +HREF="book1.html" ACCESSKEY="P" >Prev</A ></TD @@ -191,7 +188,7 @@ WIDTH="34%" ALIGN="center" VALIGN="top" ><A -HREF="index.html" +HREF="book1.html" ACCESSKEY="H" >Home</A ></TD diff --git a/doc/developer/reference-html/x2153.html b/doc/developer/reference-html/gpl-terms.html index 4ccc109..31088e9 100644 --- a/doc/developer/reference-html/x2153.html +++ b/doc/developer/reference-html/gpl-terms.html @@ -1,27 +1,24 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="The Developer's Guide to Gutenprint" -HREF="index.html"><LINK +HREF="book1.html"><LINK REL="UP" TITLE="GNU General Public License" -HREF="a2122.html"><LINK +HREF="gpl.html"><LINK REL="PREVIOUS" TITLE="GNU General Public License" -HREF="a2122.html"></HEAD +HREF="gpl.html"><META +http-equiv="Content-Type" +content="text/html; charset=UTF-8"></HEAD ><BODY CLASS="sect1" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE @@ -42,7 +39,7 @@ WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A -HREF="a2122.html" +HREF="gpl.html" ACCESSKEY="P" >Prev</A ></TD @@ -67,7 +64,7 @@ CLASS="sect1" CLASS="sect1" ><A NAME="gpl-terms" ->A.2. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</A +>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</A ></H1 ><DIV CLASS="sect2" @@ -75,7 +72,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="gpl-sect0" ->A.2.1. Section 0</A +>Section 0</A ></H2 ><P > This License applies to any program or other work which @@ -115,7 +112,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="gpl-sect1" ->A.2.2. Section 1</A +>Section 1</A ></H2 ><P > You may copy and distribute verbatim copies of the Program's @@ -138,14 +135,14 @@ CLASS="sect2" CLASS="sect2" ><A NAME="gpl-sect2" ->A.2.3. Section 2</A +>Section 2</A ></H2 ><P > You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of <A -HREF="x2153.html#gpl-sect1" +HREF="gpl-terms.html#gpl-sect1" >Section 1</A > above, provided that you also meet all of these conditions: @@ -184,43 +181,18 @@ TYPE="a" <DIV CLASS="note" -><P -></P -><TABLE +><BLOCKQUOTE CLASS="note" -WIDTH="100%" -BORDER="0" -><TR -><TD -WIDTH="25" -ALIGN="CENTER" -VALIGN="TOP" -><IMG -SRC="../images/note.gif" -HSPACE="5" -ALT="Note"></TD -><TH -ALIGN="LEFT" -VALIGN="MIDDLE" -><B ->Exception:</B -></TH -></TR -><TR -><TD -> </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" ><P -> If the Program itself is interactive but does not +><B +>Exception:: </B +> + If the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) </P -></TD -></TR -></TABLE +></BLOCKQUOTE ></DIV > @@ -262,19 +234,19 @@ CLASS="sect2" CLASS="sect2" ><A NAME="gpl-sect3" ->A.2.4. Section 3</A +>Section 3</A ></H2 ><P > You may copy and distribute the Program (or a work based on it, under <A -HREF="x2153.html#gpl-sect2" +HREF="gpl-terms.html#gpl-sect2" >Section 2</A > in object code or executable form under the terms of <A -HREF="x2153.html#gpl-sect1" +HREF="gpl-terms.html#gpl-sect1" >Sections 1</A > and <A -HREF="x2153.html#gpl-sect2" +HREF="gpl-terms.html#gpl-sect2" >2</A > above provided that you also do one of the following: @@ -343,7 +315,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="gpl-sect4" ->A.2.5. Section 4</A +>Section 4</A ></H2 ><P > You may not copy, modify, sublicense, or distribute the @@ -362,7 +334,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="gpl-sect5" ->A.2.6. Section 5</A +>Section 5</A ></H2 ><P > You are not required to accept this License, since you have @@ -382,7 +354,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="gpl-sect6" ->A.2.7. Section 6</A +>Section 6</A ></H2 ><P > Each time you redistribute the Program (or any work based on @@ -400,7 +372,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="gpl-sect7" ->A.2.8. Section 7</A +>Section 7</A ></H2 ><P > If, as a consequence of a court judgment or allegation of @@ -448,7 +420,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="gpl-sect8" ->A.2.9. Section 8</A +>Section 8</A ></H2 ><P > If the distribution and/or use of the Program is restricted in @@ -467,7 +439,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="gpl-sect9" ->A.2.10. Section 9</A +>Section 9</A ></H2 ><P > The Free Software Foundation may publish revised and/or new @@ -492,7 +464,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="gpl-sect10" ->A.2.11. Section 10</A +>Section 10</A ></H2 ><P > If you wish to incorporate parts of the Program into other @@ -512,7 +484,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="gpl-sect11" ->A.2.12. NO WARRANTY</A +>NO WARRANTY</A ></H2 ><FONT COLOR="RED" @@ -536,7 +508,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="gpl-sect12" ->A.2.13. Section 12</A +>Section 12</A ></H2 ><P > IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN @@ -569,7 +541,7 @@ WIDTH="33%" ALIGN="left" VALIGN="top" ><A -HREF="a2122.html" +HREF="gpl.html" ACCESSKEY="P" >Prev</A ></TD @@ -578,7 +550,7 @@ WIDTH="34%" ALIGN="center" VALIGN="top" ><A -HREF="index.html" +HREF="book1.html" ACCESSKEY="H" >Home</A ></TD @@ -599,7 +571,7 @@ WIDTH="34%" ALIGN="center" VALIGN="top" ><A -HREF="a2122.html" +HREF="gpl.html" ACCESSKEY="U" >Up</A ></TD diff --git a/doc/developer/reference-html/a2122.html b/doc/developer/reference-html/gpl.html index df22a8b..92c79e6 100644 --- a/doc/developer/reference-html/a2122.html +++ b/doc/developer/reference-html/gpl.html @@ -1,27 +1,24 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >GNU General Public License</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="The Developer's Guide to Gutenprint" -HREF="index.html"><LINK +HREF="book1.html"><LINK REL="PREVIOUS" TITLE="Dithering" HREF="c1968.html"><LINK REL="NEXT" TITLE="TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION" -HREF="x2153.html"></HEAD +HREF="gpl-terms.html"><META +http-equiv="Content-Type" +content="text/html; charset=UTF-8"></HEAD ><BODY CLASS="appendix" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE @@ -56,7 +53,7 @@ WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A -HREF="x2153.html" +HREF="gpl-terms.html" ACCESSKEY="N" >Next</A ></TD @@ -73,12 +70,31 @@ NAME="gpl" ></A >Appendix A. GNU General Public License</H1 ><DIV +CLASS="TOC" +><DL +><DT +><B +>Table of Contents</B +></DT +><DT +><A +HREF="gpl.html#gpl-preamble" +>Preamble</A +></DT +><DT +><A +HREF="gpl-terms.html" +>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</A +></DT +></DL +></DIV +><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="gpl-preamble" ->A.1. Preamble</A +>Preamble</A ></H1 ><P > The licenses for most software are designed to take away your @@ -182,7 +198,7 @@ WIDTH="34%" ALIGN="center" VALIGN="top" ><A -HREF="index.html" +HREF="book1.html" ACCESSKEY="H" >Home</A ></TD @@ -191,7 +207,7 @@ WIDTH="33%" ALIGN="right" VALIGN="top" ><A -HREF="x2153.html" +HREF="gpl-terms.html" ACCESSKEY="N" >Next</A ></TD diff --git a/doc/developer/reference-html/ln10.html b/doc/developer/reference-html/ln10.html new file mode 100644 index 0000000..24f7a7f --- /dev/null +++ b/doc/developer/reference-html/ln10.html @@ -0,0 +1,97 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<HTML +><HEAD +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK +REL="HOME" +TITLE="The Developer's Guide to Gutenprint" +HREF="book1.html"><LINK +REL="NEXT" +TITLE="Preface" +HREF="f14.html"><META +http-equiv="Content-Type" +content="text/html; charset=UTF-8"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +SUMMARY="Header navigation table" +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>The Developer's Guide to Gutenprint</TH +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="legalnotice" +><P +></P +><A +NAME="AEN10" +></A +><P +> 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. + </P +><P +> 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. + </P +><P +> 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. + </P +><P +></P +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +SUMMARY="Footer navigation table" +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +> </TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +ACCESSKEY="H" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +> </TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/developer/reference-html/stylesheet-images/caution.gif b/doc/developer/reference-html/stylesheet-images/caution.gif Binary files differnew file mode 100644 index 0000000..9cc2e15 --- /dev/null +++ b/doc/developer/reference-html/stylesheet-images/caution.gif diff --git a/doc/developer/reference-html/stylesheet-images/home.gif b/doc/developer/reference-html/stylesheet-images/home.gif Binary files differnew file mode 100644 index 0000000..55e1d59 --- /dev/null +++ b/doc/developer/reference-html/stylesheet-images/home.gif diff --git a/doc/developer/reference-html/stylesheet-images/important.gif b/doc/developer/reference-html/stylesheet-images/important.gif Binary files differnew file mode 100644 index 0000000..25e40c7 --- /dev/null +++ b/doc/developer/reference-html/stylesheet-images/important.gif diff --git a/doc/developer/reference-html/stylesheet-images/next.gif b/doc/developer/reference-html/stylesheet-images/next.gif Binary files differnew file mode 100644 index 0000000..8c502e7 --- /dev/null +++ b/doc/developer/reference-html/stylesheet-images/next.gif diff --git a/doc/developer/reference-html/stylesheet-images/note.gif b/doc/developer/reference-html/stylesheet-images/note.gif Binary files differnew file mode 100644 index 0000000..7322e8e --- /dev/null +++ b/doc/developer/reference-html/stylesheet-images/note.gif diff --git a/doc/developer/reference-html/stylesheet-images/prev.gif b/doc/developer/reference-html/stylesheet-images/prev.gif Binary files differnew file mode 100644 index 0000000..0894d9e --- /dev/null +++ b/doc/developer/reference-html/stylesheet-images/prev.gif diff --git a/doc/developer/reference-html/stylesheet-images/tip.gif b/doc/developer/reference-html/stylesheet-images/tip.gif Binary files differnew file mode 100644 index 0000000..f062955 --- /dev/null +++ b/doc/developer/reference-html/stylesheet-images/tip.gif diff --git a/doc/developer/reference-html/stylesheet-images/toc-blank.gif b/doc/developer/reference-html/stylesheet-images/toc-blank.gif Binary files differnew file mode 100644 index 0000000..6c65e3a --- /dev/null +++ b/doc/developer/reference-html/stylesheet-images/toc-blank.gif diff --git a/doc/developer/reference-html/stylesheet-images/toc-minus.gif b/doc/developer/reference-html/stylesheet-images/toc-minus.gif Binary files differnew file mode 100644 index 0000000..40ebe61 --- /dev/null +++ b/doc/developer/reference-html/stylesheet-images/toc-minus.gif diff --git a/doc/developer/reference-html/stylesheet-images/toc-plus.gif b/doc/developer/reference-html/stylesheet-images/toc-plus.gif Binary files differnew file mode 100644 index 0000000..3e9e7d5 --- /dev/null +++ b/doc/developer/reference-html/stylesheet-images/toc-plus.gif diff --git a/doc/developer/reference-html/stylesheet-images/up.gif b/doc/developer/reference-html/stylesheet-images/up.gif Binary files differnew file mode 100644 index 0000000..e899a27 --- /dev/null +++ b/doc/developer/reference-html/stylesheet-images/up.gif diff --git a/doc/developer/reference-html/stylesheet-images/warning.gif b/doc/developer/reference-html/stylesheet-images/warning.gif Binary files differnew file mode 100644 index 0000000..a587079 --- /dev/null +++ b/doc/developer/reference-html/stylesheet-images/warning.gif diff --git a/doc/developer/reference-html/x1669.html b/doc/developer/reference-html/x1669.html index 1080dee..4fad283 100644 --- a/doc/developer/reference-html/x1669.html +++ b/doc/developer/reference-html/x1669.html @@ -1,14 +1,14 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Appropriate Remote Commands</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="The Developer's Guide to Gutenprint" -HREF="index.html"><LINK +HREF="book1.html"><LINK REL="UP" TITLE="ESC/P2" HREF="c464.html"><LINK @@ -17,14 +17,11 @@ TITLE="Remote Mode Commands" HREF="x955.html"><LINK REL="NEXT" TITLE="Weaving for inkjet printers" -HREF="c1717.html"></HEAD +HREF="c1717.html"><META +http-equiv="Content-Type" +content="text/html; charset=UTF-8"></HEAD ><BODY CLASS="sect1" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE @@ -74,32 +71,32 @@ CLASS="sect1" CLASS="sect1" ><A NAME="AEN1669" ->5.3. Appropriate Remote Commands</A +>Appropriate Remote Commands</A ></H1 ><P > All of the remote commands described above are wrapped up with the usual boilerplate. The files always start with - <TT + <VAR CLASS="literal" ->00 00 00</TT -> and the “magic” - command described above, then two <TT +>00 00 00</VAR +> and the “magic” + command described above, then two <VAR CLASS="literal" ->ESC @</TT +>ESC @</VAR >s to reset the printer. The remote command sequences come next; if they print anything that is usually followed by a - <TT + <VAR CLASS="literal" ->FF</TT -> (<TT +>FF</VAR +> (<VAR CLASS="literal" ->0C</TT +>0C</VAR > hex) character to feed the page, then the file ends with another two - <TT + <VAR CLASS="literal" ->ESC @</TT +>ESC @</VAR >s to get back to the ground state. </P ><P @@ -111,9 +108,9 @@ CLASS="literal" TYPE="1" ><LI ><P -> Host uses <TT +> Host uses <VAR CLASS="literal" ->DT</TT +>DT</VAR > to print an alignment sheet. </P @@ -126,24 +123,24 @@ CLASS="literal" ></LI ><LI ><P -> Host sends a <TT +> Host sends a <VAR CLASS="literal" ->DA</TT +>DA</VAR > command indicating which pattern the user chose. </P ></LI ><LI ><P -> If the user said “realign”, meaning he isn't +> If the user said “realign”, meaning he isn't done yet, go to step 1. </P ></LI ><LI ><P -> We are done: host sends a <TT +> We are done: host sends a <VAR CLASS="literal" ->SV</TT +>SV</VAR > command and exits. </P @@ -160,6 +157,12 @@ CLASS="informalexample" ><A NAME="AEN1693" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >PM 00 00 @@ -167,6 +170,9 @@ SN 00 00 00 EX 00 00 00 00 05 01 ST 00 01 SM 00 02</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -180,6 +186,12 @@ CLASS="informalexample" ><A NAME="AEN1696" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >PM 00 00 @@ -189,6 +201,9 @@ SN 00 01 00 SN 00 02 01 EX 00 00 00 00 05 00 FP 00 00 00</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -202,55 +217,64 @@ CLASS="informalexample" ><A NAME="AEN1699" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >IR 00 02 LD</PRE +></TD +></TR +></TABLE ><P ></P ></DIV ><P > For different paper type settings on the STP 870, the - arguments to <TT + arguments to <VAR CLASS="literal" ->SN</TT +>SN</VAR > vary. The arguments to the - first and third <TT + first and third <VAR CLASS="literal" ->SN</TT +>SN</VAR > commands are as outlined - in the description of the <TT + in the description of the <VAR CLASS="literal" ->SN</TT +>SN</VAR > command above; - the arguments to the second (“platen gap”) are - <TT + the arguments to the second (“platen gap”) are + <VAR CLASS="literal" ->00 01 01</TT -> for thick papers (“matte - paper—heavyweight”, “photo paper” and - “premium glossy photo paper”) and <TT +>00 01 01</VAR +> for thick papers (“matte + paper—heavyweight”, “photo paper” and + “premium glossy photo paper”) and <VAR CLASS="literal" >00 01 - 00</TT + 00</VAR > for all others. </P ><P > For roll-mode printing, the STP 870's sequence changes as - follows. <TT + follows. <VAR CLASS="literal" ->IR</TT ->'s arguments become <TT +>IR</VAR +>'s arguments become <VAR CLASS="literal" >00 - 01</TT -> in the header, and <TT + 01</VAR +> in the header, and <VAR CLASS="literal" ->00 00</TT +>00 00</VAR > after - the job, and <TT + the job, and <VAR CLASS="literal" ->EX</TT +>EX</VAR >'s last argument changes from <CODE CLASS="constant" @@ -262,12 +286,12 @@ CLASS="constant" </P ><P > For zero-margin printing on the STP 870, the arguments to - <TT + <VAR CLASS="literal" ->FP</TT -> become <TT +>FP</VAR +> become <VAR CLASS="literal" ->00 0xb0 0xff</TT +>00 0xb0 0xff</VAR >. This moves the origin about 5.5mm to the left, to a point one tenth of an inch to the left of the left-hand edge of the @@ -306,7 +330,7 @@ WIDTH="34%" ALIGN="center" VALIGN="top" ><A -HREF="index.html" +HREF="book1.html" ACCESSKEY="H" >Home</A ></TD diff --git a/doc/developer/reference-html/x1734.html b/doc/developer/reference-html/x1734.html index 8c52bfd..dfe36a3 100644 --- a/doc/developer/reference-html/x1734.html +++ b/doc/developer/reference-html/x1734.html @@ -1,14 +1,14 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Weaving algorithms</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="The Developer's Guide to Gutenprint" -HREF="index.html"><LINK +HREF="book1.html"><LINK REL="UP" TITLE="Weaving for inkjet printers" HREF="c1717.html"><LINK @@ -17,14 +17,11 @@ TITLE="Weaving for inkjet printers" HREF="c1717.html"><LINK REL="NEXT" TITLE="Dithering" -HREF="c1968.html"></HEAD +HREF="c1968.html"><META +http-equiv="Content-Type" +content="text/html; charset=UTF-8"></HEAD ><BODY CLASS="sect1" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE @@ -74,11 +71,11 @@ CLASS="sect1" CLASS="sect1" ><A NAME="AEN1734" ->6.2. Weaving algorithms</A +>Weaving algorithms</A ></H1 ><P > I considered a few algorithms to perform the weave. The first - one I devised let me use only (jets − + one I devised let me use only (jets − distance_between_jets + 1) nozzles, or 25. This is OK in principle, but it's slower than using all nozzles. By playing around with it some more, I came up with an algorithm that lets @@ -88,13 +85,13 @@ NAME="AEN1734" ><P > This still produces some banding, though. Even better quality can be achieved by using multiple nozzles on the same line. How - do we do this? In 1440720 mode, we're printing two + do we do this? In 1440×720 mode, we're printing two output lines at the same vertical position. However, if we want four passes, we have to effectively print each line twice. Actually doing this would increase the density, so what we do is print half the dots on each pass. This produces near-perfect output, and it's far faster than using (pseudo) - “MicroWeave”. + “MicroWeave”. </P ><P > Yet another complication is how to get near the top and bottom @@ -128,7 +125,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="AEN1740" ->6.2.1. Simple weaving algorithms</A +>Simple weaving algorithms</A ></H2 ><P > The initial problem is to calculate the starting position of @@ -141,12 +138,12 @@ NAME="AEN1740" </P ><P > Once we have a formula for the starting row of each pass, we - then turn that “inside out” to get a formula for + then turn that “inside out” to get a formula for the pass number containing each row. </P ><P > First, let's define how our printer works. We measure - vertical position on the paper in “rows”; the + vertical position on the paper in “rows”; the resolution with which the printer can position the paper vertically. The print head contains J ink jets, which are spaced S rows apart. @@ -160,7 +157,7 @@ NAME="AEN1740" > It's pretty obvious how to do this. We make one pass with the print head, printing J lines of data, each line S rows after the previous one. We then advance the paper by S - J rows and print the next row. For example, if J = + × J rows and print the next row. For example, if J = 7 and S = 4, this method can be illustrated like this: </P ><DIV @@ -170,6 +167,12 @@ CLASS="informalexample" ><A NAME="AEN1747" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >pass number @@ -183,6 +186,9 @@ CLASS="screen" 4 rows offset from one jet to the next \---------------------------/ 7*4=28 rows offset from one pass to the next</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -204,7 +210,7 @@ CLASS="computeroutput" CLASS="computeroutput" >0</SAMP > and starts at row 0. Each - subsequent pass p starts at row p S J. Each + subsequent pass p starts at row p × S × J. Each pass prints J lines, each line being S rows after the previous one. (For ease of viewing this file on a standard terminal, I'm clipping the examples at column 80.) @@ -215,7 +221,7 @@ CLASS="computeroutput" rows with printing to get a full-density page (we're ignoring oversampling at this stage). Where we have previously printed a single pass, we'll now print a - “pass block”: we print extra passes to fill in + “pass block”: we print extra passes to fill in the empty rows. A naive implementation might look like this: </P @@ -226,6 +232,12 @@ CLASS="informalexample" ><A NAME="AEN1754" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >0 *---*---*---*---*---*---* @@ -240,12 +252,15 @@ CLASS="screen" 9 *---*---*---*---*---* 10 *---*---*---*---*--- 11 *---*---*---*---*--</PRE +></TD +></TR +></TABLE ><P ></P ></DIV ><P > (Now you can see why this process is called - “weaving”!) + “weaving”!) </P ></DIV ><DIV @@ -254,7 +269,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="AEN1757" ->6.2.2. Perfect weaving</A +>Perfect weaving</A ></H2 ><P > This simple weave pattern prints every row, but will give @@ -271,15 +286,15 @@ NAME="AEN1757" each pass as possible. </P ><P -> Each pass block prints S J lines in S passes. The - first line printed in each pass block is S J rows +> Each pass block prints S × J lines in S passes. The + first line printed in each pass block is S × J rows lower on the page than the first line printed in the previous pass block. Therefore, if we advance the paper by J rows between each pass, we can print the right number of passes in each block and advance the paper perfectly evenly. </P ><P -> Here's what this “perfect” weave looks like: +> Here's what this “perfect” weave looks like: </P ><DIV CLASS="informalexample" @@ -288,6 +303,12 @@ CLASS="informalexample" ><A NAME="AEN1763" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" > start of full weave @@ -304,13 +325,16 @@ CLASS="screen" 9 *---*---*---*-- 10 *---*--- 11 *</PRE +></TD +></TR +></TABLE ><P ></P ></DIV ><P > You'll notice that, for the first few rows, this weave is - too sparse. It is not until the row marked “start of - full weave” that every subsequent row is printed. We + too sparse. It is not until the row marked “start of + full weave” that every subsequent row is printed. We can calculate this start position as follows: </P ><DIV @@ -320,9 +344,18 @@ CLASS="informalexample" ><A NAME="AEN1766" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" ->start = (S − 1) (J − 1)</PRE +>start = (S − 1) × (J − 1)</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -341,8 +374,14 @@ CLASS="informalexample" NAME="AEN1770" ></A ><P -> S = 2, J = 7, start = (2−1) (7−1) = 6: +> S = 2, J = 7, start = (2−1) × (7−1) = 6: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" > starting row of full weave @@ -355,6 +394,9 @@ CLASS="screen" 5 *-*-*-*-*-*-* 6 *-*-*-*-*-*-* 7 *-*-*-*-*-*-*</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -368,6 +410,12 @@ NAME="AEN1773" ><P > S = 7, J = 2, start = 6: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" > start @@ -382,6 +430,9 @@ CLASS="screen" 7 *------* 8 *------* 9 *------*</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -395,6 +446,12 @@ NAME="AEN1776" ><P > S = 4, J = 13, start = 36: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" > start @@ -405,6 +462,9 @@ CLASS="screen" 3 *---*---*---*---*---*---*---*---*---*-- 4 *---*---*---*---*---*---*- 5 *---*---*---*</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -418,6 +478,12 @@ NAME="AEN1779" ><P > S = 13, J = 4, start = 36: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" > start @@ -442,6 +508,9 @@ CLASS="screen" 17 *--------- 18 *----- 19 *-</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -455,6 +524,12 @@ NAME="AEN1782" ><P > S = 8, J = 5, start = 28: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" > start @@ -475,6 +550,9 @@ CLASS="screen" 13 *-------*---- 14 *------- 15 *--</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -488,6 +566,12 @@ NAME="AEN1785" ><P > S = 9, J = 5, start = 32: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" > start @@ -508,6 +592,9 @@ CLASS="screen" 13 *--------*--- 14 *------- 15 *--</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -521,6 +608,12 @@ NAME="AEN1788" ><P > S = 6, J = 7, start = 30: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" > start @@ -537,6 +630,9 @@ CLASS="screen" 9 *-----*-----*-- 10 *-----*- 11 *</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -547,7 +643,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="AEN1791" ->6.2.3. Weaving collisions</A +>Weaving collisions</A ></H2 ><P > A perfect weave is not possible in all cases. Let's look at @@ -563,6 +659,12 @@ NAME="AEN1794" ><P > S = 6, J = 4: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >0 *-----*-----*-----* @@ -573,6 +675,9 @@ CLASS="screen" 5 | ^ | *-^---*-----*-----* OUCH! ^ | ^ | |</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -589,9 +694,18 @@ CLASS="informalexample" ><A NAME="AEN1798" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" ->row(p, j) = (p J) + (j S)</PRE +>row(p, j) = (p × J) + (j × S)</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -606,10 +720,19 @@ CLASS="informalexample" ><A NAME="AEN1801" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" ->row(0, 2) = (0 4) + (2 6) = 12 -row(3, 0) = (3 4) + (0 6) = 12</PRE +>row(0, 2) = (0 × 4) + (2 × 6) = 12 +row(3, 0) = (3 × 4) + (0 × 6) = 12</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -636,6 +759,12 @@ NAME="AEN1806" ><P > S = 6, J = 4: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >0 *-----*-----*-----* @@ -644,6 +773,9 @@ CLASS="screen" 3 ^-----^-----*-----* 4 ^-----^-----*-----* 5 ^-----^-----*-----*</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -654,7 +786,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="AEN1809" ->6.2.4. What makes a “perfect” weave?</A +>What makes a “perfect” weave?</A ></H2 ><P > So what causes the perfect weave cases to be perfect, and @@ -730,9 +862,9 @@ TYPE="1" ></LI ></OL ><P -> These repeated subtractions can be done with C's <TT +> These repeated subtractions can be done with C's <VAR CLASS="literal" ->%</TT +>%</VAR > operator, so we can write this in C as follows: </P @@ -743,6 +875,12 @@ CLASS="informalexample" ><A NAME="AEN1836" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="programlisting" >unsigned int @@ -757,18 +895,21 @@ gcd(unsigned int x, unsigned int y) } return y; }</PRE +></TD +></TR +></TABLE ><P ></P ></DIV ><P -> <TT +> <VAR CLASS="literal" ->gcd(S,J)</TT +>gcd(S,J)</VAR > will feature quite prominently in our weaving algorithm. </P ><P -> If 0 ≤ j < J, there should only be a single pair (p, j) +> If 0 ≤ j < J, there should only be a single pair (p, j) for any given row number. If S and J are not relatively prime, this assumption breaks down. (For conciseness, let G = GCD(S,J).) @@ -783,6 +924,12 @@ NAME="AEN1841" ><P > S = 8, J = 6, G = 2: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >0 *-------*-------*-------*-------*-------* @@ -791,6 +938,9 @@ CLASS="screen" 3 *-------*-------*-------*-------*-------* 4 ^-------^-------^-------*-------*-------* 5 ^-------^-------^-------*-------*-------*</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -812,6 +962,12 @@ CLASS="informalexample" ><A NAME="AEN1846" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >0 *-------*-------* - - - @@ -820,6 +976,9 @@ CLASS="screen" 3 *-------*-------* - - - 4 *-------*-------* - - - 5 *-------*-------* - - -</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -834,6 +993,12 @@ CLASS="informalexample" ><A NAME="AEN1849" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >0 *-------*-------* - - - @@ -844,6 +1009,9 @@ CLASS="screen" 5 *-------*-------* - - - ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ These rows need filling in.</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -857,19 +1025,19 @@ CLASS="computeroutput" </P ><P > Let's analyse this. Consider how a pass p could collide - with pass 0. Pass p starts at offset p J. Pass 0 - prints at rows which are multiples of S. If p J is + with pass 0. Pass p starts at offset p × J. Pass 0 + prints at rows which are multiples of S. If p × J is exactly divisible by S, a collision has occurred, unless (p - J) ≥ J S (which will happen when we + ×J) ≥ J × S (which will happen when we finish a pass block). </P ><P -> So, we want to find p and q such that p J = q - S and p is minimised. Then p is the number of rows +> So, we want to find p and q such that p × J = q + × S and p is minimised. Then p is the number of rows before a collision, and q is the number of jets in pass 0 which are not involved in the collision. To do this, we find the lowest common multiple of J and S, which is L = (J - S) / G. L / J is the number of rows before a + × S) / G. L / J is the number of rows before a collision, and L / S is the number of jets in the first pass not involved in the collision. </P @@ -877,7 +1045,7 @@ CLASS="computeroutput" > Thus, we see that the first J / G rows printed by a given pass are not overprinted by any later pass. However, the rest of the rows printed by pass p are overprinted by the - first J − (J / G) jets of pass p + (S / G). We will + first J − (J / G) jets of pass p + (S / G). We will use C to refer to S / G, the number of rows after which a collision occurs. </P @@ -894,6 +1062,12 @@ NAME="AEN1857" ><P > S = 6, J = 9, G = 3, C = S / G = 2: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >0 *-----*-----*-----*-----*-----*-----*-----*-----* @@ -904,11 +1078,14 @@ CLASS="screen" 5 ^-----^-----^-----^-----^-----^-- ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ These rows need filling in.</PRE +></TD +></TR +></TABLE ><P ></P ></DIV ><P -> In this case, the first J − (J / G) = 9 − (9 / +> In this case, the first J − (J / G) = 9 − (9 / 3) = 6 jets of pass p + (6 / 3) = p + 2 collide with the last 6 jets of pass p. Only one row in every G = 2 rows is printed by this weave. @@ -923,6 +1100,12 @@ NAME="AEN1861" ><P > S = 9, J = 6, G = 3, C = 3: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" > 0 *--------*--------*--------*--------*--------* @@ -931,6 +1114,9 @@ CLASS="screen" 3 ^--------^--------^--------^--------*--------* 4 ^--------^--------^--------^--------*--------* 5 ^--------^--------^--------^--------*--------*</PRE +></TD +></TR +></TABLE ><P > Here, the first J - (J / G) = 6 - (6 / 3) = 4 jets of pass p + (9 / 3) = p + 3 collide with the last 4 jets of pass @@ -967,6 +1153,12 @@ NAME="AEN1868" ><P > S = 7, J = 2, G = 1: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" > imaginary extra jet @@ -982,25 +1174,28 @@ CLASS="screen" 7 *------* <--start of pass block 1 8 *------* 9 *------*</PRE +></TD +></TR +></TABLE ><P ></P ></DIV ><P > We can now calculate the start of a given pass by reference to its pass block. The first pass of pass block - b always starts at row (b S J). The start + b always starts at row (b × S × J). The start row of each of the other passes in the block are calculated using offsets from this row. </P ><P > For the example above, there are 7 passes in each pass block, and their offsets are 0, 2, 4, 6, 8, 10 and 12. - The next pass block is offset S J = 14 rows from + The next pass block is offset S × J = 14 rows from the start of the current pass block. </P ><P -> The simplest way to modify the “perfect” weave - pattern to give a correct weave in cases where G ≠ 1 +> The simplest way to modify the “perfect” weave + pattern to give a correct weave in cases where G ≠ 1 is to simply change any offsets which would result in a collision, until the collision disappears. Every printed row in the weave, as we have shown it up to now, is @@ -1029,7 +1224,7 @@ CLASS="screen" The passes in the second subblock each have 1 added to their offset, the passes in the third subblock have 2 added, and so on. Thus, the offset of pass p (numbered - relative to the start of its pass block) is p J + + relative to the start of its pass block) is p × J + floor(p / B). </P ><P @@ -1045,6 +1240,12 @@ NAME="AEN1878" ><P > S = 6, J = 9, G = 3, B = 2: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >0 *-----*-----*-----*-----*-----*-----*-----*-----* @@ -1060,6 +1261,9 @@ CLASS="screen" | | start of subblock 2 (offset 2 rows) | start of subblock 1 (following passes offset by 1 row) start of passblock 0, subblock 0 (pass start calculated as p*J)</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1073,6 +1277,12 @@ NAME="AEN1881" ><P > S = 9, J = 6, G = 3, B = 3: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >0 *--------*--------*--------*--------*--------* @@ -1088,6 +1298,9 @@ CLASS="screen" 10 \---/ *--------*-------- 11 small offset *--------*-- 12 *----</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1107,6 +1320,12 @@ NAME="AEN1885" ><P > S = 8, J = 4, G = 4, B = 2: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >0 *-------*-------*-------* @@ -1120,6 +1339,9 @@ CLASS="screen" 8 *-------*-------*-------* 9 \/ *-------*-------*-------* very small offset!</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1134,6 +1356,12 @@ CLASS="informalexample" ><A NAME="AEN1889" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >subblock number @@ -1148,6 +1376,9 @@ CLASS="screen" 1 * 2 * 3 *</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1168,10 +1399,19 @@ CLASS="informalexample" ><A NAME="AEN1893" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >offset(b) = 2*b , if b < ceiling(G/2) = 2*(G-b)-1 , otherwise</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1185,6 +1425,12 @@ CLASS="informalexample" ><A NAME="AEN1896" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >0123456789 @@ -1208,6 +1454,9 @@ CLASS="screen" 7 * 8 * 9 *</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1221,6 +1470,12 @@ CLASS="informalexample" ><A NAME="AEN1899" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" > 1 @@ -1247,6 +1502,9 @@ CLASS="screen" 8 * 9 * 10 *</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1263,6 +1521,12 @@ NAME="AEN1902" ><P > S = 12, J = 6, G = 6, B = 2: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >0 *-----------*-----------*-----------*-----------*-----------* @@ -1278,6 +1542,9 @@ CLASS="screen" 10 *-----------*---- 11 *---------- 12 *-----</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1289,7 +1556,7 @@ CLASS="screen" > (This might seem odd, but it occurs to me that a good weave pattern might also make a good score for bell ringers. When church bells are rung, a list of - “changes” are used. For example, if 8 bells + “changes” are used. For example, if 8 bells are being used, they will, at first, be rung in order: 12345678. If the first change is for bells 5 and 6, the bells will then be rung in the order 12346578. If the @@ -1317,6 +1584,12 @@ CLASS="informalexample" ><A NAME="AEN1909" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >passesperblock = S @@ -1330,6 +1603,9 @@ if subpassblock < ceiling(subblocksperblock/2) else subblockoffset = 2*(subblocksperblock-subpassblock)-1 startingrow = passblock * S * J + offsetinpassblock * J + subblockoffset</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1345,6 +1621,12 @@ CLASS="informalexample" ><A NAME="AEN1912" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >subblocksperblock = gcd(S, J) @@ -1354,6 +1636,9 @@ if subpassblock * 2 < subblocksperblock else subblockoffset = 2*(subblocksperblock-subpassblock)-1 startingrow = p * J + subblockoffset</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1367,6 +1652,12 @@ CLASS="informalexample" ><A NAME="AEN1915" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >subblocksperblock = gcd(S, J) @@ -1378,11 +1669,14 @@ subblockoffset(p) subpassblock = floor((p % S) * subblocksperblock / S) row(j, p) = p * J + subblockoffset(p) + j * S</PRE +></TD +></TR +></TABLE ><P ></P ></DIV ><P -> Together with the inequality 0 ≤ j < J, we can use +> Together with the inequality 0 ≤ j < J, we can use this definition in reverse to calculate the pass number containing a given row, r. Working out the inverse definition involves a little guesswork, but one possible @@ -1397,11 +1691,20 @@ CLASS="informalexample" ><A NAME="AEN1918" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >subblocksperblock = gcd(S, J) subblockoffset = r % subblocksperblock pass = (r - subblockoffset) / J</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1416,6 +1719,12 @@ CLASS="informalexample" ><A NAME="AEN1921" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >offset = r % J @@ -1426,6 +1735,9 @@ pass-- offset += J } jet = offset / S</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1440,6 +1752,12 @@ CLASS="informalexample" ><A NAME="AEN1924" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >G = gcd(S, J) @@ -1459,6 +1777,9 @@ subblockretreat = floor(pass / passespersubblock) % G pass -= subblockretreat * passespersubblock pass += subpassblock * passespersubblock jet = (r - subblockoffset - pass * J) / S</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1478,6 +1799,12 @@ NAME="AEN1927" passesperblock = S = 6, passespersubblock = S / G = 6 / 2 = 3: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >0 *-----*-----*-----* @@ -1500,6 +1827,9 @@ CLASS="screen" 17 *-----*-- 18 *----- 19 *-</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1515,6 +1845,12 @@ NAME="AEN1930" passesperblock = S = 8, passespersubblock= S / G = 8 / 2 = 4: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >0 *-------*-------*-------*-------*-------* @@ -1530,6 +1866,9 @@ CLASS="screen" 10 *-------*-------*- 11 *-------*--- 12 *----</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1545,6 +1884,12 @@ NAME="AEN1933" passesperblock = S = 6, passespersubblock= S / G = 6 / 6 = 1: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >0 *-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----* @@ -1554,6 +1899,9 @@ CLASS="screen" 4 *-----*-----*-----*-----*-- 5 *-----*-----*---- 6 *-----</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1572,7 +1920,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="AEN1937" ->6.2.5. Oversampling</A +>Oversampling</A ></H2 ><P > By oversampling, we mean printing on the same row more than @@ -1589,7 +1937,7 @@ NAME="AEN1937" necessary to get a 1/1440" horizontal resolution. If it can only print two drops 1/360" apart, 4x oversampling will be necessary for a 1/1440" horizontal resolution. The printer - enforces this “drop spacing” by only accepting + enforces this “drop spacing” by only accepting raster passes with a horizontal resolution matching the spacing with which it can print dots, so we must print passes at different horizontal positions if we are to obtain @@ -1600,18 +1948,18 @@ NAME="AEN1937" ><P > Oversampling can also be done to decrease the banding apparent in an image. By splitting a row into two or more - sets of dots (“lines”) and printing each line on + sets of dots (“lines”) and printing each line on the same row, but with a different nozzle for each line, we can get a smoother print. </P ><P > To quantify these two kinds of oversampling, we'll introduce two new constants: H shows how many different horizontal - offsets we want to print at (the “horizontal - oversampling”) while O shows how many times we want to + offsets we want to print at (the “horizontal + oversampling”) while O shows how many times we want to print each row, over and above the number of times necessary - for horizontal oversampling (the “extra - oversampling”). + for horizontal oversampling (the “extra + oversampling”). </P ><P > It is necessary for all the lines printed by a given pass to @@ -1629,10 +1977,10 @@ NAME="AEN1937" advance the paper between passes. Previously, we'd have defined A = J; we now let A = J / H. This also affects our pass blocks. Printing one pass block used to involve - advancing the paper S J rows; it now advances the - paper (SJ) / H rows. We therefore name a group of H - pass blocks a “band”. Printing one band - involves advancing the paper SJ rows, as a pass + advancing the paper S × J rows; it now advances the + paper (S×J) / H rows. We therefore name a group of H + pass blocks a “band”. Printing one band + involves advancing the paper S×J rows, as a pass block did before. </P ><P @@ -1654,6 +2002,12 @@ NAME="AEN1946" passesperblock = S = 4, passespersubblock = S/G = 4/1 = 4: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >0 *---*---*---*---*---*---*---*---*---* @@ -1672,6 +2026,9 @@ CLASS="screen" 13 *---*---*---* 14 *---*--- 15 *--</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1683,7 +2040,7 @@ CLASS="screen" CLASS="computeroutput" >*</SAMP >s - with integers in the range [0…H−1]. + with integers in the range [0…H−1]. </P ><P > Overprinting occurs once per pass block, so we can simply @@ -1698,6 +2055,12 @@ CLASS="informalexample" ><A NAME="AEN1952" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >0 0---0---0---0---0---0---0---0---0---0 @@ -1716,6 +2079,9 @@ CLASS="screen" 13 1---1---1---1 14 1---1--- 15 1--</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1732,6 +2098,12 @@ NAME="AEN1954" passesperblock= S = 4, passespersubblock= S/G = 4/2 = 2: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >0 0---0---0---0---0---0---0---0---0---0---0---0 @@ -1747,6 +2119,9 @@ CLASS="screen" 10 0---0---0---0---0 11 0---0---0-- 12 1---1-</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1770,6 +2145,12 @@ NAME="AEN1958" passesperblock = S = 4, passespersubblock = S/G = 4/1 = 4 </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >Band 0: @@ -1790,6 +2171,9 @@ Band 1: 12 1---1---1---1- 13 1---1---1 14 1---</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1804,6 +2188,12 @@ CLASS="informalexample" ><A NAME="AEN1962" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >A = floor(J / H) @@ -1817,6 +2207,9 @@ band = floor(P / (S * H)) passinband = P % (S * H) startingrow = band * S * J + passinband * A + subblockoffset subpass = passinband / S</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1829,6 +2222,12 @@ CLASS="informalexample" ><A NAME="AEN1965" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >A = floor(J / H) @@ -1845,8 +2244,11 @@ passinband(p) = p % (S * H) row(j, p) = band(p) * S * J + passinband(p) * A + subblockoffset(p) + j * S row(j, p) = p * J + subblockoffset(p) + j * S</PRE +></TD +></TR +></TABLE ><P -> To be continued… +> To be continued… </P ><P ></P @@ -1880,7 +2282,7 @@ WIDTH="34%" ALIGN="center" VALIGN="top" ><A -HREF="index.html" +HREF="book1.html" ACCESSKEY="H" >Home</A ></TD diff --git a/doc/developer/reference-html/x271.html b/doc/developer/reference-html/x271.html index 9337d74..c4b2518 100644 --- a/doc/developer/reference-html/x271.html +++ b/doc/developer/reference-html/x271.html @@ -1,14 +1,14 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >The driver file</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="The Developer's Guide to Gutenprint" -HREF="index.html"><LINK +HREF="book1.html"><LINK REL="UP" TITLE="Adding a new printer" HREF="c200.html"><LINK @@ -17,14 +17,11 @@ TITLE="Adding a new printer" HREF="c200.html"><LINK REL="NEXT" TITLE="ESC/P2" -HREF="c464.html"></HEAD +HREF="c464.html"><META +http-equiv="Content-Type" +content="text/html; charset=UTF-8"></HEAD ><BODY CLASS="sect1" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE @@ -74,7 +71,7 @@ CLASS="sect1" CLASS="sect1" ><A NAME="AEN271" ->4.2. The driver file</A +>The driver file</A ></H1 ><P > Adding a new printer to a driver module @@ -115,7 +112,7 @@ CLASS="filename" prefer this; it isn't materially more work for the host to compute things like exact paper sizes and such, it allows a lot more tweaking, and it may be why Epson has been more open with - information—the communication protocol doesn't really + information—the communication protocol doesn't really contain very much IP, so they have less reason to keep it secret. </P @@ -128,20 +125,20 @@ CLASS="sect2" CLASS="sect2" ><A NAME="AEN281" ->4.2.1. Epson inkjet printers</A +>Epson inkjet printers</A ></H2 ><P -> The <CODE +> The <VAR CLASS="varname" ->model_capabilities</CODE +>model_capabilities</VAR > vector in <TT CLASS="filename" >print-escp2.c</TT > contains one entry for each - defined printer model. The <TT + defined printer model. The <VAR CLASS="literal" ->model</TT +>model</VAR > parameter in <TT CLASS="filename" @@ -167,6 +164,12 @@ CLASS="informalexample" ><A NAME="AEN291" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="programlisting" >typedef struct escp2_printer @@ -242,6 +245,9 @@ const double *hue_adjustment; const double *sat_adjustment; const paperlist_t *paperlist; } escp2_printer_t;</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -271,21 +277,21 @@ const paperlist_t *paperlist; > Most printers can print using either the number of nozzles available or any smaller number. Some printers require that all of the nozzles be used. Those printers will set - <CODE + <VAR CLASS="varname" ->min_nozzles</CODE +>min_nozzles</VAR > and/or - <CODE + <VAR CLASS="varname" ->min_black_nozzles</CODE +>min_black_nozzles</VAR > to the same value as - <CODE + <VAR CLASS="varname" ->nozzles</CODE +>nozzles</VAR > and/or - <CODE + <VAR CLASS="varname" ->black_nozzles</CODE +>black_nozzles</VAR >. </P ><P @@ -298,9 +304,9 @@ CLASS="varname" ><P > Most Epson printers, other than the high-end Stylus Pro models, cannot print dots spaced more closely than 1/360" or - 1/720" apart (this is the setting for <CODE + 1/720" apart (this is the setting for <VAR CLASS="varname" ->xres</CODE +>xres</VAR >. This is true even for printers that support resolutions of 1440 or 2880 DPI. In these cases, the data must be printed in @@ -314,25 +320,25 @@ CLASS="varname" For example, the Stylus Photo EX can normally print with a dot spacing of 1/720". The smallest dot size cannot be printed with a dot spacing of less than 1/360", however. In this - case, we use <CODE + case, we use <VAR CLASS="varname" ->enhanced_xres</CODE +>enhanced_xres</VAR > to specify the resolution to be used in this enhanced mode, and - <CODE + <VAR CLASS="varname" ->enhanced_resolution</CODE +>enhanced_resolution</VAR > to specify the printing resolution above which we use the - <CODE + <VAR CLASS="varname" ->enhanced_xres</CODE +>enhanced_xres</VAR >. </P ><P -> The <CODE +> The <VAR CLASS="varname" ->resolution_scale</CODE +>resolution_scale</VAR > command is used to specify scaling factors for the dot separation on newer printers. It should always be 14400 with current printers. @@ -349,26 +355,26 @@ CLASS="function" >INCH</CODE > macro defined to make specification of the - <CODE + <VAR CLASS="varname" ->max_paper_width</CODE +>max_paper_width</VAR > and - <CODE + <VAR CLASS="varname" ->max_paper_height</CODE +>max_paper_height</VAR > more legible. It multiplies <CODE CLASS="constant" >72</CODE > by the provided expression to get the appropriate number of points. For example, to - specify 8.5", <TT + specify 8.5", <VAR CLASS="literal" ->INCH(17/2)</TT +>INCH(17/2)</VAR > expands to - <TT + <VAR CLASS="literal" ->(72 * 17/2)</TT +>(72 * 17/2)</VAR >, which is evaluated left to right, and hence generates the correct value. </P @@ -379,25 +385,25 @@ CLASS="literal" CLASS="constant" >1</CODE > for - <CODE + <VAR CLASS="varname" ->separation_rows</CODE +>separation_rows</VAR > and <CODE CLASS="constant" >0</CODE > for the others. Very, very few printers require (or allow) - <CODE + <VAR CLASS="varname" ->separation_rows</CODE +>separation_rows</VAR > to be anything but <CODE CLASS="constant" >1</CODE > and - <CODE + <VAR CLASS="varname" ->pseudo_separation_rows</CODE +>pseudo_separation_rows</VAR > other than <CODE CLASS="constant" @@ -408,9 +414,9 @@ CLASS="constant" exceptions. </P ><P -> <CODE +> <VAR CLASS="varname" ->zero_margin_offset</CODE +>zero_margin_offset</VAR > is used to specify an additional negative horizontal offset required to print to the edges of the paper on newer Stylus Photo printers. These must @@ -477,14 +483,14 @@ CLASS="emphasis" ><P > The lists of dot sizes and densities contain values for 13 printing modes: 120/180 DPI using printer weaving (single row; - incorrectly referred to as “microweave”) and - “soft” weaving (the driver determines the exact + incorrectly referred to as “microweave”) and + “soft” weaving (the driver determines the exact pattern of dot layout), 360 DPI microweave and softweave, - 720360 DPI microweave and softweave, 720 DPI microweave - and softweave, 1440720 microweave and softweave, - 2880720 microweave and softweave, and 28801440 + 720×360 DPI microweave and softweave, 720 DPI microweave + and softweave, 1440×720 microweave and softweave, + 2880×720 microweave and softweave, and 2880×1440 softweave only. Printer weaving is referred to as - “microweave” for historical reasons. + “microweave” for historical reasons. </P ><P > For the dot sizes, the value for each element in the vector @@ -581,28 +587,28 @@ CLASS="constant" CLASS="constant" >0x10</CODE > usually works best at - 1440720 and <CODE + 1440×720 and <CODE CLASS="constant" >0x11</CODE > works best at - 720720. Unfortunately, <CODE + 720×720. Unfortunately, <CODE CLASS="constant" >0x10</CODE > doesn't seem to generate quite enough density at - 720720, because if it did the output would be very - smooth. Perhaps it's possible to tweak things… + 720×720, because if it did the output would be very + smooth. Perhaps it's possible to tweak things… </P ><P > The list of densities is a list of base density values for all - of the above listed modes. “Density” refers to + of the above listed modes. “Density” refers to the amount of ink deposited when a solid color (or solid black) is printed. So if the density is <CODE CLASS="constant" >0.5</CODE >, solid black actually prints only - half the possible dots. “Base density” refers to + half the possible dots. “Base density” refers to the fact that the density value can be scaled in the GUI or on the Ghostscript command line. The density value specified (which is not made visible to the user) is multiplied by the @@ -626,8 +632,8 @@ CLASS="constant" density value that results in solid black (no visible gaps under a fairly high power magnifying glass or loupe). If an appropriate density value is found for 720 DPI, it could be - divided by 2 for 1440720, by 4 for 2880720, and - by 8 for 28801440. + divided by 2 for 1440×720, by 4 for 2880×720, and + by 8 for 2880×1440. </P ><P > However, for printers that offer a choice of dot size, this @@ -645,7 +651,7 @@ CLASS="constant" > The last member is a pointer to a structure containing a list of ink values for variable dot size (or 6 color) inks. We model variable dot size inks as producing a certain - “value” of ink for each available dot size, where + “value” of ink for each available dot size, where the largest dot size has a value of <CODE CLASS="constant" >1</CODE @@ -804,7 +810,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="AEN403" ->4.2.2. Tuning the printer</A +>Tuning the printer</A ></H2 ><P > Now, how do you use all this to tune a printer? There are a @@ -977,7 +983,7 @@ CLASS="emphasis" credit, so too much cyan and magenta is deposited, which overwhelms the yellow). Make sure you do this on very white, very high grade inkjet paper that's designed for - 1440720 DPI or higher; otherwise the ink will spread on + 1440×720 DPI or higher; otherwise the ink will spread on contact and you'll get values that aren't really true for high grade paper. You can, of course, calibrate for low grade paper if that's what you're going to use, but that shouldn't @@ -1000,7 +1006,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="AEN433" ->4.2.3. Canon inkjet printers</A +>Canon inkjet printers</A ></H2 ><P > Basically, a new Canon printer can be added to @@ -1012,8 +1018,8 @@ CLASS="filename" differences are noted here. </P ><P -> In general, Canon printers have more “built-in - intelligence“ than Epson printers which results in the +> In general, Canon printers have more “built-in + intelligence“ than Epson printers which results in the fact that the driver only has to tell the printing conditions like resolutions, dot sizes, etc. to the printer and afterwards transfer the raster data line by line for each @@ -1032,6 +1038,12 @@ CLASS="informalexample" ><A NAME="AEN440" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="programlisting" >typedef struct canon_caps { @@ -1053,6 +1065,9 @@ canon_dot_size_t dot_sizes; /* Vector of dot sizes for resolutions */ canon_densities_t densities; /* List of densities for each printer */ canon_variable_inklist_t *inxs; /* Choices of inks for this printer */ } canon_cap_t;</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -1060,11 +1075,11 @@ canon_variable_inklist_t *inxs; /* Choices of inks for this printer */ > Since there are Canon printers which print in resolutions of 2<SUP >n</SUP -> 150 DPI (e.g. 300, 600, +> × 150 DPI (e.g. 300, 600, 1200) and others which support resolutions of 2<SUP >n</SUP -> 180 DPI (e.g. 360, 720, +> × 180 DPI (e.g. 360, 720, 1440), there's a base resolution (150 or 180, respectively) given in the <SPAN CLASS="type" @@ -1128,6 +1143,12 @@ CLASS="informalexample" ><A NAME="AEN458" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="programlisting" >static const canon_variable_inklist_t canon_ink_myinks[] = @@ -1143,17 +1164,20 @@ CLASS="programlisting" &ci_CMYK_3, &ci_CMYK_3, &ci_CMYK_3, }, };</PRE +></TD +></TR +></TABLE ><P ></P ></DIV ><P -> where the <TT +> where the <VAR CLASS="literal" ->&ci_CMYK_1</TT +>&ci_CMYK_1</VAR > and - <TT + <VAR CLASS="literal" ->&ci_CMYK_3</TT +>&ci_CMYK_3</VAR > entries are references to a previously defined const of type <SPAN @@ -1188,7 +1212,7 @@ WIDTH="34%" ALIGN="center" VALIGN="top" ><A -HREF="index.html" +HREF="book1.html" ACCESSKEY="H" >Home</A ></TD diff --git a/doc/developer/reference-html/x67.html b/doc/developer/reference-html/x67.html index 425a70b..db78e88 100644 --- a/doc/developer/reference-html/x67.html +++ b/doc/developer/reference-html/x67.html @@ -1,14 +1,14 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Linking with libgutenprint</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="The Developer's Guide to Gutenprint" -HREF="index.html"><LINK +HREF="book1.html"><LINK REL="UP" TITLE="Using libgutenprint" HREF="c48.html"><LINK @@ -17,14 +17,11 @@ TITLE="Using libgutenprint" HREF="c48.html"><LINK REL="NEXT" TITLE="Integrating libgutenprint" -HREF="x79.html"></HEAD +HREF="x79.html"><META +http-equiv="Content-Type" +content="text/html; charset=UTF-8"></HEAD ><BODY CLASS="sect1" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE @@ -74,13 +71,13 @@ CLASS="sect1" CLASS="sect1" ><A NAME="AEN67" ->2.2. Linking with libgutenprint</A +>Linking with libgutenprint</A ></H1 ><P > To link a program with libgutenprint, the option - <CODE + <VAR CLASS="option" ->-lgutenprint</CODE +>-lgutenprint</VAR > needs to be passed to the compiler when linking. For example, to compile and link <TT @@ -89,6 +86,12 @@ CLASS="filename" > the following commands would be used: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" ><SAMP @@ -105,6 +108,9 @@ CLASS="prompt" CLASS="userinput" >gcc -o stpimage -lgutenprint stpimage.o</KBD ></PRE +></TD +></TR +></TABLE ><P > The compiler and linker flags needed may vary depending on the options Gutenprint was configured with when it was built. The @@ -140,7 +146,7 @@ WIDTH="34%" ALIGN="center" VALIGN="top" ><A -HREF="index.html" +HREF="book1.html" ACCESSKEY="H" >Home</A ></TD diff --git a/doc/developer/reference-html/x79.html b/doc/developer/reference-html/x79.html index 93af949..f387523 100644 --- a/doc/developer/reference-html/x79.html +++ b/doc/developer/reference-html/x79.html @@ -1,14 +1,14 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Integrating libgutenprint</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="The Developer's Guide to Gutenprint" -HREF="index.html"><LINK +HREF="book1.html"><LINK REL="UP" TITLE="Using libgutenprint" HREF="c48.html"><LINK @@ -17,14 +17,11 @@ TITLE="Linking with libgutenprint" HREF="x67.html"><LINK REL="NEXT" TITLE="Reporting Bugs" -HREF="c194.html"></HEAD +HREF="c194.html"><META +http-equiv="Content-Type" +content="text/html; charset=UTF-8"></HEAD ><BODY CLASS="sect1" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE @@ -74,7 +71,7 @@ CLASS="sect1" CLASS="sect1" ><A NAME="AEN79" ->2.3. Integrating libgutenprint</A +>Integrating libgutenprint</A ></H1 ><P > This section describes how to integrate the compiling and @@ -102,7 +99,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="AEN86" ->2.3.1. <B +><B CLASS="command" >pkg-config</B ></A @@ -114,13 +111,13 @@ CLASS="command" CLASS="command" >configure</B > when configuring the package when - it was built, the <CODE + it was built, the <VAR CLASS="varname" ->CFLAGS</CODE +>CFLAGS</VAR > and - <CODE + <VAR CLASS="varname" ->LIBS</CODE +>LIBS</VAR > parameters needed to compile and link programs with libgutenprint may vary. To make it simple to determine what these are on any given system, a @@ -143,15 +140,21 @@ CLASS="refentrytitle" > manual page for a compete synopsis. </P ><P -> The correct <CODE +> The correct <VAR CLASS="varname" ->CFLAGS</CODE +>CFLAGS</VAR > to use can be obtained - with the <CODE + with the <VAR CLASS="option" ->--cflags</CODE +>--cflags</VAR > option: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" ><SAMP @@ -162,16 +165,25 @@ CLASS="userinput" >pkg-config --cflags gutenprint</KBD > -I/usr/local/include</PRE +></TD +></TR +></TABLE ><P -> The correct <CODE +> The correct <VAR CLASS="varname" ->LIBS</CODE +>LIBS</VAR > to use can the obtained - with the <CODE + with the <VAR CLASS="option" ->--libs</CODE +>--libs</VAR > option: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" ><SAMP @@ -182,13 +194,22 @@ CLASS="userinput" >pkg-config --libs gutenprint</KBD > -L/usr/local/lib -lgutenprint -lm -ldl</PRE +></TD +></TR +></TABLE ><P > Lastly, the installed version of Gutenprint can be obtained with the - <CODE + <VAR CLASS="varname" ->--version</CODE +>--version</VAR > option: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" ><SAMP @@ -199,10 +220,19 @@ CLASS="userinput" >pkg-config --modversion gutenprint</KBD > 4.3.23</PRE +></TD +></TR +></TABLE ><P > The command can be used from the shell by enclosing it in - backquotes ‘`’: + backquotes ‘`’: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" ><SAMP @@ -220,6 +250,9 @@ CLASS="userinput" >gcc `pkg-config --libs gutenprint` -o stpimage stpimage.o</KBD ></PRE +></TD +></TR +></TABLE ><P > However, this is not the way it it typically used. Normally it is used in a <TT @@ -238,7 +271,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="AEN123" ->2.3.2. <B +><B CLASS="command" >make</B ></A @@ -259,11 +292,20 @@ CLASS="command" >make</B >: </P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="programlisting" >GUTENPRINT_VERSION = $(shell pkg-config --version gutenprint) GUTENPRINT_CFLAGS = $(shell pkg-config --cflags gutenprint) GUTENPRINT_LIBS = $(shell pkg-config --libs gutenprint)</PRE +></TD +></TR +></TABLE ><P > How you choose to use these variables is entirely up to you. See the GNU <B @@ -279,7 +321,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="AEN133" ->2.3.3. <B +><B CLASS="command" >autoconf</B ></A @@ -305,7 +347,7 @@ CLASS="filename" CLASS="command" >autoconf</B > expands - the m4 macros into ‘real’ shell script. The + the m4 macros into ‘real’ shell script. The resulting <B CLASS="command" >configure</B @@ -342,9 +384,18 @@ CLASS="informalexample" ><A NAME="AEN148" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="programlisting" >PKG_CHECK_MODULES(GUTENPRINT, gutenprint)</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -355,7 +406,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="AEN150" ->2.3.4. <B +><B CLASS="command" >automake</B ></A @@ -439,26 +490,26 @@ CLASS="filename" CLASS="filename" >Makefile.in</TT > files such as - <CODE + <VAR CLASS="option" ->dist</CODE ->, <CODE +>dist</VAR +>, <VAR CLASS="option" ->distcheck</CODE +>distcheck</VAR >, - <CODE + <VAR CLASS="option" ->clean</CODE ->, <CODE +>clean</VAR +>, <VAR CLASS="option" ->distclean</CODE +>distclean</VAR >, - <CODE + <VAR CLASS="option" ->maintainer-clean</CODE -> and <CODE +>maintainer-clean</VAR +> and <VAR CLASS="option" ->tags</CODE +>tags</VAR >, and there are many more more available. See the GNU <B @@ -475,13 +526,13 @@ CLASS="function" CLASS="function" >AC_SUBST</CODE > to substitute - <CODE + <VAR CLASS="varname" ->GUTENPRINT_CFLAGS</CODE +>GUTENPRINT_CFLAGS</VAR > and - <CODE + <VAR CLASS="varname" ->GUTENPRINT_LIBS</CODE +>GUTENPRINT_LIBS</VAR >, <B CLASS="command" >automake</B @@ -515,6 +566,12 @@ CLASS="informalexample" ><A NAME="AEN189" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="programlisting" >AUTOMAKE_OPTIONS = 1.7 gnu @@ -529,6 +586,9 @@ stpimage_SOURCES = stpimage.c stpimage_LDADD = $(GUTENPRINT_LIBS) MAINTAINERCLEANFILES = Makefile.in</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -570,7 +630,7 @@ WIDTH="34%" ALIGN="center" VALIGN="top" ><A -HREF="index.html" +HREF="book1.html" ACCESSKEY="H" >Home</A ></TD diff --git a/doc/developer/reference-html/x955.html b/doc/developer/reference-html/x955.html index bc3f395..25d7881 100644 --- a/doc/developer/reference-html/x955.html +++ b/doc/developer/reference-html/x955.html @@ -1,14 +1,14 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Remote Mode Commands</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="The Developer's Guide to Gutenprint" -HREF="index.html"><LINK +HREF="book1.html"><LINK REL="UP" TITLE="ESC/P2" HREF="c464.html"><LINK @@ -17,14 +17,11 @@ TITLE="ESC/P2" HREF="c464.html"><LINK REL="NEXT" TITLE="Appropriate Remote Commands" -HREF="x1669.html"></HEAD +HREF="x1669.html"><META +http-equiv="Content-Type" +content="text/html; charset=UTF-8"></HEAD ><BODY CLASS="sect1" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE @@ -74,7 +71,7 @@ CLASS="sect1" CLASS="sect1" ><A NAME="AEN955" ->5.2. Remote Mode Commands</A +>Remote Mode Commands</A ></H1 ><P > The following description of remote commands comes out of an @@ -96,9 +93,18 @@ CLASS="informalexample" ><A NAME="AEN959" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >ESC (R BC=8 00 R E M O T E 1</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -113,17 +119,26 @@ CLASS="informalexample" ><A NAME="AEN962" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >ESC 00 00 00</PRE +></TD +></TR +></TABLE ><P ></P ></DIV ><P > All remote mode commands must be sent before the initial - <TT + <VAR CLASS="literal" ->ESC (G</TT +>ESC (G</VAR > command is sent. </P ><P @@ -163,13 +178,13 @@ CLASS="variablelist" ></P ><DL ><DT -><TT +><VAR CLASS="literal" ->NC <CODE +>NC <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=2 00 - 00</TT + 00</VAR ></DT ><DD ><P @@ -177,18 +192,18 @@ CLASS="varname" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->VI <CODE +>VI <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=2 00 - 00</TT + 00</VAR ></DT ><DD ><P -> On my 740, prints the following, probably “version - information”: +> On my 740, prints the following, probably “version + information”: </P ><DIV CLASS="informalexample" @@ -197,24 +212,33 @@ CLASS="informalexample" ><A NAME="AEN989" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >W01286 I02382\r\n</PRE +></TD +></TR +></TABLE ><P ></P ></DIV ></DD ><DT -><TT +><VAR CLASS="literal" ->* AI <CODE +>* AI <VAR CLASS="varname" ->BC</CODE ->=3 00 00 00</TT +>BC</VAR +>=3 00 00 00</VAR ></DT ><DD ><P -> Prints a “printer ID”. On one 870, prints the +> Prints a “printer ID”. On one 870, prints the following: </P ><DIV @@ -224,9 +248,18 @@ CLASS="informalexample" ><A NAME="AEN997" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >51-51-50-51-49-48\r\n</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -236,12 +269,12 @@ CLASS="screen" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* LD <CODE +>* LD <VAR CLASS="varname" ->BC</CODE ->=0</TT +>BC</VAR +>=0</VAR ></DT ><DD ><P @@ -249,30 +282,30 @@ CLASS="varname" ROM. This apparently does not load factory defaults per se, but any settings that are saved. This is commonly used right at the end of each print job after the - <TT + <VAR CLASS="literal" ->ESC @</TT +>ESC @</VAR > printer reset command. </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* CH <CODE +>* CH <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=2 00 - <CODE + <VAR CLASS="varname" ->xx</CODE -></TT +>xx</VAR +></VAR ></DT ><DD ><P > Perform a head cleaning cycle. The heads to clean are - determined by parameter <CODE + determined by parameter <VAR CLASS="varname" ->xx</CODE +>xx</VAR >: </P ><DIV @@ -294,9 +327,9 @@ WIDTH="1*" TITLE="description"><THEAD ><TR ><TH -><CODE +><VAR CLASS="varname" ->xx</CODE +>xx</VAR ></TH ><TH >Description</TH @@ -334,16 +367,16 @@ CLASS="constant" ></TABLE ></DIV ><P -> While <CODE +> While <VAR CLASS="varname" ->xx</CODE +>xx</VAR > = <CODE CLASS="constant" >00</CODE > is - likely supported by all printers, <CODE + likely supported by all printers, <VAR CLASS="varname" ->xx</CODE +>xx</VAR > = <CODE CLASS="constant" @@ -356,24 +389,24 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* DT <CODE +>* DT <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=3 00 - <CODE + <VAR CLASS="varname" ->xx</CODE -> 00</TT +>xx</VAR +> 00</VAR ></DT ><DD ><P > Print an alignment pattern. There are three patterns, which are picked via the choice of - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR >. Pattern <CODE CLASS="constant" >0</CODE @@ -389,27 +422,27 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* DA <CODE +>* DA <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=4 00 - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR > 00 - <CODE + <VAR CLASS="varname" ->yy</CODE -></TT +>yy</VAR +></VAR ></DT ><DD ><P > Set results for the alignment pattern. - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR > is the pattern (<CODE CLASS="constant" @@ -418,9 +451,9 @@ CLASS="constant" CLASS="constant" >3</CODE >); - <CODE + <VAR CLASS="varname" ->yy</CODE +>yy</VAR > is the best choice from the set (<CODE CLASS="constant" @@ -441,12 +474,12 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* SV <CODE +>* SV <VAR CLASS="varname" ->BC</CODE ->=0</TT +>BC</VAR +>=0</VAR ></DT ><DD ><P @@ -454,13 +487,13 @@ CLASS="varname" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* RS <CODE +>* RS <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=1 - 01</TT + 01</VAR ></DT ><DD ><P @@ -468,13 +501,13 @@ CLASS="varname" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* IQ <CODE +>* IQ <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=1 - 01</TT + 01</VAR ></DT ><DD ><P @@ -488,9 +521,18 @@ CLASS="informalexample" ><A NAME="AEN1089" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >IQ:KKCCMMYY</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -504,9 +546,18 @@ CLASS="informalexample" ><A NAME="AEN1092" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >IQ:KKCCMMYYccmm</PRE +></TD +></TR +></TABLE ><P ></P ></DIV @@ -527,16 +578,16 @@ CLASS="screen" CLASS="variablelist" ><DL ><DT -><TT +><VAR CLASS="literal" ->* IR <CODE +>* IR <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=2 00 - <CODE + <VAR CLASS="varname" ->xx</CODE -></TT +>xx</VAR +></VAR ></DT ><DD ><P @@ -548,36 +599,36 @@ CLASS="emphasis" ></SPAN >. This command has been observed on an STP 870 with - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >03</CODE > at the start - of a job and <CODE + of a job and <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >02</CODE > at the end of a job (where it is followed by an - <TT + <VAR CLASS="literal" ->LD</TT +>LD</VAR > command). When in roll mode, the values change to - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >01</CODE > at the start - of a job and <CODE + of a job and <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >00</CODE @@ -586,23 +637,23 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* FP <CODE +>* FP <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=3 00 - <CODE + <VAR CLASS="varname" ->pos</CODE ->[2]</TT +>pos</VAR +>[2]</VAR ></DT ><DD ><P > Specify the horizontal left margin in units of 1/360 inch. - The default value for <CODE + The default value for <VAR CLASS="varname" ->pos</CODE +>pos</VAR > is <CODE CLASS="constant" @@ -632,38 +683,38 @@ CLASS="constant" CLASS="variablelist" ><DL ><DT -><TT +><VAR CLASS="literal" ->* SN <CODE +>* SN <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=3 00 - <CODE + <VAR CLASS="varname" ->xx</CODE -> <CODE +>xx</VAR +> <VAR CLASS="varname" ->yy</CODE -></TT +>yy</VAR +></VAR ></DT ><DD ><P -> Select Mechanism Sequence. <CODE +> Select Mechanism Sequence. <VAR CLASS="varname" ->xx</CODE +>xx</VAR > controls which sub-operation is performed. - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >00</CODE > selects - the “Feed paper sequence setting”. - <CODE + the “Feed paper sequence setting”. + <VAR CLASS="varname" ->yy</CODE +>yy</VAR > can take on the following values (on the STP 870, at any rate): </P @@ -686,9 +737,9 @@ WIDTH="1*" TITLE="description"><THEAD ><TR ><TH -><CODE +><VAR CLASS="varname" ->yy</CODE +>yy</VAR ></TH ><TH >Media type</TH @@ -790,24 +841,24 @@ CLASS="constant" presumably to tune it for different types of paper. </P ><P -> <CODE +> <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >01</CODE > controls the platen gap setting; - <CODE + <VAR CLASS="varname" ->yy</CODE +>yy</VAR >=<CODE CLASS="constant" >00</CODE > is the - default, <CODE + default, <VAR CLASS="varname" ->yy</CODE +>yy</VAR >=<CODE CLASS="constant" >1</CODE @@ -818,17 +869,17 @@ CLASS="constant" > are higher settings. </P ><P -> <CODE +> <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >02</CODE > controls paper loading speed - (<CODE + (<VAR CLASS="varname" ->yy</CODE +>yy</VAR >=<CODE CLASS="constant" >0</CODE @@ -844,12 +895,12 @@ CLASS="constant" CLASS="constant" >1</CODE > is - used when printing on “plain paper”, - “360dpi ink jet paper” or “ink jet - transparencies”, and - <CODE + used when printing on “plain paper”, + “360dpi ink jet paper” or “ink jet + transparencies”, and + <VAR CLASS="varname" ->yy</CODE +>yy</VAR >=<CODE CLASS="constant" >00</CODE @@ -857,35 +908,35 @@ CLASS="constant" other paper type settings. </P ><P -> <CODE +> <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >07</CODE > controls duplex printing for printers with that capability - (<CODE + (<VAR CLASS="varname" ->yy</CODE ->=<CODE +>yy</VAR +>=<VAR CLASS="varname" ->0</CODE +>0</VAR > is default, for non-duplex printing; <CODE CLASS="constant" >1</CODE > is front - side of the paper, and <CODE + side of the paper, and <VAR CLASS="varname" ->2</CODE +>2</VAR > is back side). </P ><P -> <CODE +> <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >09</CODE @@ -893,9 +944,9 @@ CLASS="constant" zero margin printing on the printers with the capability of printing zero-margin on all sides (Stylus Photo 780/790, 890, and 1280/1290). - <CODE + <VAR CLASS="varname" ->yy</CODE +>yy</VAR >=<CODE CLASS="constant" >0</CODE @@ -908,80 +959,80 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* PP <CODE +>* PP <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=3 00 - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR > - <CODE + <VAR CLASS="varname" ->yy</CODE -></TT +>yy</VAR +></VAR ></DT ><DD ><P > Set Paper Path. - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >2</CODE > indicates manual feed, - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >3</CODE > is for roll - paper. <CODE + paper. <VAR CLASS="varname" ->yy</CODE -> selects “paper path - number”. +>yy</VAR +> selects “paper path + number”. </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* AC <CODE +>* AC <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=2 00 - <CODE + <VAR CLASS="varname" ->xx</CODE -></TT +>xx</VAR +></VAR ></DT ><DD ><P > Set Auto Cutting State. - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >0</CODE > selects auto cutting off, - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >1</CODE > selects auto cutting on, and - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >2</CODE @@ -996,74 +1047,74 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* DR <CODE +>* DR <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=4 00 xx - <CODE + <VAR CLASS="varname" ->DT2</CODE -></TT +>DT2</VAR +></VAR ></DT ><DD ><P > Set Drying Time. - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >00</CODE > sets the - drying time “per scan” (per pass?); - <CODE + drying time “per scan” (per pass?); + <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >01</CODE > sets the - drying time per page. <CODE + drying time per page. <VAR CLASS="varname" ->DT</CODE +>DT</VAR > indicates the drying time, which is in seconds if page mode is used and in milliseconds if scan mode is used. - <CODE + <VAR CLASS="varname" ->DT</CODE +>DT</VAR > must not exceed 3600 seconds in per-page mode and 10000 milliseconds in per-scan mode. </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* IK <CODE +>* IK <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=2 00 - <CODE + <VAR CLASS="varname" ->xx</CODE -></TT +>xx</VAR +></VAR ></DT ><DD ><P > Select Ink Type. - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >00</CODE > selects dye ink. Pigment ink is apparently selected by - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >01</CODE @@ -1072,24 +1123,24 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* PZ BC=2 00 xx</TT +>* PZ BC=2 00 xx</VAR ></DT ><DD ><P > Set Pause After Printing. - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >00</CODE > selects no pause after printing; - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >01</CODE @@ -1108,30 +1159,30 @@ CLASS="emphasis" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* EX <CODE +>* EX <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=6 00 00 00 00 0x14 - <CODE + <VAR CLASS="varname" ->xx</CODE -></TT +>xx</VAR +></VAR ></DT ><DD ><P > Set Vertical Print Page Line Mode. - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >00</CODE > is off, - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR >=<CODE CLASS="constant" >01</CODE @@ -1141,30 +1192,30 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* EX <CODE +>* EX <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=6 00 00 00 00 0x05 - <CODE + <VAR CLASS="varname" ->xx</CODE -></TT +>xx</VAR +></VAR ></DT ><DD ><P -> Set Roll Paper Mode. If <CODE +> Set Roll Paper Mode. If <VAR CLASS="varname" ->xx</CODE +>xx</VAR > is <CODE CLASS="constant" >0</CODE >, roll paper mode is off; if - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR > is <CODE CLASS="constant" >1</CODE @@ -1173,70 +1224,70 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* EX <CODE +>* EX <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=3 00 - <CODE + <VAR CLASS="varname" ->xx</CODE -> <CODE +>xx</VAR +> <VAR CLASS="varname" ->yy</CODE -></TT +>yy</VAR +></VAR ></DT ><DD ><P -> Appears to be a synonym for the <TT +> Appears to be a synonym for the <VAR CLASS="literal" ->SN</TT +>SN</VAR > command described above. </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* PH <CODE +>* PH <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=2 00 - <CODE + <VAR CLASS="varname" ->xx</CODE -></TT +>xx</VAR +></VAR ></DT ><DD ><P > Select Paper Thickness. Set the paper thickness - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR > in .1 mm units. This must not exceed <CODE CLASS="constant" >0x10</CODE > (1.6 mm). If the - thickness is set “more than” .6 mm (which - probably means “at least” 0.6 mm, since the - other case reads “less than 0.5 mm”), the + thickness is set “more than” .6 mm (which + probably means “at least” 0.6 mm, since the + other case reads “less than 0.5 mm”), the platen gap is set high irrespective of the - <TT + <VAR CLASS="literal" ->SN</TT +>SN</VAR > command. </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* PM <CODE +>* PM <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=2 00 - 00</TT + 00</VAR ></DT ><DD ><P @@ -1252,27 +1303,27 @@ CLASS="emphasis" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* ST <CODE +>* ST <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=2 00 - <CODE + <VAR CLASS="varname" ->xx</CODE -></TT +>xx</VAR +></VAR ></DT ><DD ><P > Epson's STP 750/1200 programming guide refers to the - <TT + <VAR CLASS="literal" ->ST</TT -> command as “Set printer - state reply”. If <CODE +>ST</VAR +> command as “Set printer + state reply”. If <VAR CLASS="varname" ->xx</CODE +>xx</VAR > is <CODE CLASS="constant" @@ -1282,9 +1333,9 @@ CLASS="constant" >2</CODE >, the printer will not send status replies. If - <CODE + <VAR CLASS="varname" ->xx</CODE +>xx</VAR > is <CODE CLASS="constant" >1</CODE @@ -1306,6 +1357,12 @@ CLASS="informalexample" ><A NAME="AEN1341" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >@BDC ST\r @@ -1318,27 +1375,30 @@ AI:CW:02kkccmmyy, MI:mm [TC:tttt;] INK:...; \f</PRE +></TD +></TR +></TABLE ><P ></P ></DIV ><P -> (<TT +> (<VAR CLASS="literal" ->\r</TT +>\r</VAR > is carriage return; - <TT + <VAR CLASS="literal" ->\n</TT -> is newline; <TT +>\n</VAR +> is newline; <VAR CLASS="literal" ->\f</TT +>\f</VAR > is formfeed.) </P ><P -> <TT +> <VAR CLASS="literal" ->ST</TT +>ST</VAR > is the printer status: </P ><DIV @@ -1433,9 +1493,9 @@ CLASS="constant" ></TABLE ></DIV ><P -> <TT +> <VAR CLASS="literal" ->ER</TT +>ER</VAR >, if provided, is the error status: </P ><DIV @@ -1584,9 +1644,9 @@ CLASS="constant" ></TABLE ></DIV ><P -> <TT +> <VAR CLASS="literal" ->IQ</TT +>IQ</VAR > is the amount of ink left, as a (decimal!) percentage expressed in hexadecimal. The values are black, cyan, magenta, and yellow. 6 and 7 @@ -1667,9 +1727,9 @@ CLASS="constant" ></TABLE ></DIV ><P -> <TT +> <VAR CLASS="literal" ->WR</TT +>WR</VAR >, if provided, is the warning status: </P ><DIV @@ -1705,7 +1765,7 @@ CLASS="constant" ></TD ><TD > Black ink low (Photo black on printers using - UltraChrome ink) + UltraChrome® ink) </TD ></TR ><TR @@ -1785,41 +1845,41 @@ CLASS="constant" ></TABLE ></DIV ><P -> <TT +> <VAR CLASS="literal" ->RV</TT +>RV</VAR > is the firmware revision (one byte ASCII). </P ><P -> <TT +> <VAR CLASS="literal" ->AI</TT +>AI</VAR > is actuator information. These are two byte ASCII codes that indicate ``ink weight rank ID'' of KCMY, respectively. </P ><P -> <TT +> <VAR CLASS="literal" ->TC</TT +>TC</VAR >, if provided, is the total time of cleaning or ink filling (?). </P ><P -> <TT +> <VAR CLASS="literal" ->RC</TT +>RC</VAR >, if provided, is the firmware revision. </P ><P -> <TT +> <VAR CLASS="literal" ->INK:</TT -> and <TT +>INK:</VAR +> and <VAR CLASS="literal" ->MI</TT +>MI</VAR > are <SPAN CLASS="emphasis" @@ -1831,26 +1891,26 @@ CLASS="emphasis" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* SM <CODE +>* SM <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=2 00 - <CODE + <VAR CLASS="varname" ->xx</CODE -></TT +>xx</VAR +></VAR ></DT ><DD ><P -> Set Status Reply Rate. <CODE +> Set Status Reply Rate. <VAR CLASS="varname" ->xx</CODE +>xx</VAR > is the - repeat interval in seconds. If <CODE + repeat interval in seconds. If <VAR CLASS="varname" ->xx</CODE +>xx</VAR > is <CODE CLASS="constant" @@ -1860,13 +1920,13 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* ST <CODE +>* ST <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=1 - 01</TT + 01</VAR ></DT ><DD ><P @@ -1879,30 +1939,39 @@ CLASS="informalexample" ><A NAME="AEN1556" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" ->@BDC PS\r\nST:<CODE +>@BDC PS\r\nST:<VAR CLASS="varname" ->xx</CODE +>xx</VAR >;\f</PRE +></TD +></TR +></TABLE ><P ></P ></DIV ><P -> <TT +> <VAR CLASS="literal" ->\r</TT +>\r</VAR > is carriage return; - <TT + <VAR CLASS="literal" ->\n</TT -> is newline; <TT +>\n</VAR +> is newline; <VAR CLASS="literal" ->\f</TT +>\f</VAR > is - formfeed). If <CODE + formfeed). If <VAR CLASS="varname" ->xx</CODE +>xx</VAR > (the reply value) is <CODE CLASS="constant" @@ -1923,13 +1992,13 @@ CLASS="constant" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* SM <CODE +>* SM <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=1 - 01</TT + 01</VAR ></DT ><DD ><P @@ -1943,54 +2012,63 @@ CLASS="informalexample" ><A NAME="AEN1574" ></A +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="screen" >@BDC PS\r\nST:xx;\f</PRE +></TD +></TR +></TABLE ><P ></P ></DIV ><P -> <TT +> <VAR CLASS="literal" ->\r</TT +>\r</VAR > is carriage return; - <TT + <VAR CLASS="literal" ->\n</TT -> is newline; <TT +>\n</VAR +> is newline; <VAR CLASS="literal" ->\f</TT +>\f</VAR > is - formfeed). See <TT + formfeed). See <VAR CLASS="literal" >SM - <CODE + <VAR CLASS="varname" ->BC</CODE ->=2</TT +>BC</VAR +>=2</VAR > above for the meaning of the return value. </P ></DD ><DT -><TT +><VAR CLASS="literal" >* ?? - <CODE + <VAR CLASS="varname" ->BC</CODE ->=<CODE +>BC</VAR +>=<VAR CLASS="varname" ->xx</CODE +>xx</VAR > - <CODE + <VAR CLASS="varname" ->y</CODE ->[1] … - <CODE +>y</VAR +>[1] … + <VAR CLASS="varname" ->y</CODE ->[xx]</TT +>y</VAR +>[xx]</VAR ></DT ><DD ><P @@ -1998,31 +2076,31 @@ CLASS="varname" Commands). The command string is executed (it would appear from the documentation), and the string sent is returned using a sequence similar to that described in - the <TT + the <VAR CLASS="literal" ->ST <CODE +>ST <VAR CLASS="varname" ->BC</CODE ->=1</TT +>BC</VAR +>=1</VAR > and - <TT + <VAR CLASS="literal" ->SM <CODE +>SM <VAR CLASS="varname" ->BC</CODE ->=1</TT +>BC</VAR +>=1</VAR > commands. Note that in this case the number of bytes is variable! </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* SM <CODE +>* SM <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=2 00 - 02</TT + 02</VAR ></DT ><DD ><P @@ -2037,13 +2115,13 @@ CLASS="emphasis" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* JE <CODE +>* JE <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=1 - 00</TT + 00</VAR ></DT ><DD ><P @@ -2065,38 +2143,38 @@ CLASS="emphasis" </P ></DD ><DT -><TT +><VAR CLASS="literal" ->* CO <CODE +>* CO <VAR CLASS="varname" ->BC</CODE +>BC</VAR >=8 00 - <CODE + <VAR CLASS="varname" ->cutter</CODE ->[1] <CODE +>cutter</VAR +>[1] <VAR CLASS="varname" ->page</CODE +>page</VAR >[1] - <CODE + <VAR CLASS="varname" ->unit</CODE +>unit</VAR >[1] - <CODE + <VAR CLASS="varname" ->position</CODE ->[4]</TT +>position</VAR +>[4]</VAR ></DT ><DD ><P > Specify paper cutting on Stylus Photo 2200 (and perhaps - some other printers). <CODE + some other printers). <VAR CLASS="varname" ->cutter</CODE +>cutter</VAR > must be - 0. <CODE + 0. <VAR CLASS="varname" ->page</CODE +>page</VAR > should be one of the following: </P @@ -2156,9 +2234,9 @@ CLASS="constant" ></TABLE ></DIV ><P -> <CODE +> <VAR CLASS="varname" ->unit</CODE +>unit</VAR > should be one of the following: </P ><DIV @@ -2218,9 +2296,9 @@ CLASS="constant" ></DIV ><P > This command should be used twice. The first - <TT + <VAR CLASS="literal" ->CO</TT +>CO</VAR > command specifies where the page will be cut at the top, and the second specifies where the page will be cut at the bottom. This permits @@ -2255,7 +2333,7 @@ WIDTH="34%" ALIGN="center" VALIGN="top" ><A -HREF="index.html" +HREF="book1.html" ACCESSKEY="H" >Home</A ></TD |