summaryrefslogtreecommitdiff
path: root/doc/gimpprint.info-5
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gimpprint.info-5')
-rw-r--r--doc/gimpprint.info-5872
1 files changed, 0 insertions, 872 deletions
diff --git a/doc/gimpprint.info-5 b/doc/gimpprint.info-5
deleted file mode 100644
index 672a377..0000000
--- a/doc/gimpprint.info-5
+++ /dev/null
@@ -1,872 +0,0 @@
-This is gimpprint.info, produced by makeinfo version 4.0 from
-gimpprint.texi.
-
-INFO-DIR-SECTION Libraries
-START-INFO-DIR-ENTRY
-* GIMP-Print: (gimpprint). print plugin for the GIMP, and printing library
-END-INFO-DIR-ENTRY
-
- This file documents the gimpprint library and associated programs
-used for high quality printing.
-
- Copyright (C) 2001 Michael Sweet (<mike@easysw.com>) and Robert
-Krawitz (<rlk@alum.mit.edu>)
-
- Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-preserved on all copies.
-
- Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
- Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Foundation.
-
-
-File: gimpprint.info, Node: Epson inkjet printers, Next: Tuning Epson printers, Prev: Driver file, Up: New Printer
-
-Epson inkjet printers
-=====================
-
- The `model_capabilities' vector in `print-escp2.c' contains one
-entry for each defined printer model. The `model' parameter in
-`printers.xml' is an index into this table.
-
- In general, the new printers have fewer eccentricities than the older
-printers. That doesn't mean they're simpler, just that they're more
-consistent.
-
- An `escp2_printer_t' is a C struct defined as follows:
-
- - Data type: escp2_printer_t
- typedef struct escp2_printer
- {
- model_cap_t flags; /* Bitmask of flags, see below */
- /*****************************************************************************/
- int nozzles; /* Number of nozzles per color */
- int min_nozzles; /* Minimum number of nozzles per color */
- int nozzle_separation; /* Separation between rows, in 1/360" */
- int black_nozzles; /* Number of black nozzles (may be extra) */
- int min_black_nozzles; /* # of black nozzles (may be extra) */
- int black_nozzle_separation; /* Separation between rows */
- int fast_nozzles; /* Number of fast nozzles */
- int min_fast_nozzles; /* # of fast nozzles (may be extra) */
- int fast_nozzle_separation; /* Separation between rows */
- /*****************************************************************************/
- int xres; /* Normal distance between dots in */
- /* softweave mode (inverse inches) */
- int enhanced_xres; /* Distance between dots in highest */
- /* quality modes */
- int base_separation; /* Basic unit of row separation */
- int base_resolution; /* Base hardware spacing (above this */
- /* always requires multiple passes) */
- int enhanced_resolution;/* Above this we use the */
- /* enhanced_xres rather than xres */
- int resolution_scale; /* Scaling factor for ESC(D command */
- int max_black_resolution; /* Above this resolution, we */
- /* must use color parameters */
- /* rather than (faster) black */
- /* only parameters*/
- int max_hres;
- int max_vres;
- int min_hres;
- int min_vres;
- /*****************************************************************************/
- int max_paper_width; /* Maximum paper width, in points */
- int max_paper_height; /* Maximum paper height, in points */
- int min_paper_width; /* Maximum paper width, in points */
- int min_paper_height; /* Maximum paper height, in points */
- /* Printer interleave: */
- int m_left_margin; /* Left margin, points */
- int m_right_margin; /* Right margin, points */
- int m_top_margin; /* Absolute top margin, points */
- int m_bottom_margin; /* Absolute bottom margin, points */
- /* ROLL FEED: */
- /* Softweave: */
- int roll_left_margin; /* Left margin, points */
- int roll_right_margin; /* Right margin, points */
- int roll_top_margin; /* Absolute top margin, points */
- int roll_bottom_margin; /* Absolute bottom margin, points */
- /* Printer interleave: */
- int m_roll_left_margin; /* Left margin, points */
- int m_roll_right_margin; /* Right margin, points */
- int m_roll_top_margin; /* Absolute top margin, points */
- int m_roll_bottom_margin; /* Absolute bottom margin, points */
- /*****************************************************************************/
- int extra_feed; /* Extra distance the paper can be spaced */
- /* beyond the bottom margin, in 1/360". */
- /* (maximum useful value is */
- /* nozzles * nozzle_separation) */
- int separation_rows; /* Some printers require funky spacing */
- /* arguments in interleave mode. */
- int pseudo_separation_rows;/* Some printers require funky */
- /* spacing arguments in softweave mode */
-
- int zero_margin_offset; /* Offset to use to achieve */
- /* zero-margin printing */
- int initial_vertical_offset;
- int black_initial_vertical_offset;
- int extra_720dpi_separation;
-
- /*****************************************************************************/
- const int *dot_sizes; /* Vector of dot sizes for resolutions */
- const double *densities; /* List of densities for each printer */
- const escp2_variable_inklist_t *inks; /* Choices of inks for this printer */
- /*****************************************************************************/
- const paperlist_t *paperlist;
- const res_t *reslist;
- const inklist_t *inklist;
- /*****************************************************************************/
- const int *bits;
- const int *base_resolutions;
- const input_slot_list_t *input_slots;
- /*****************************************************************************/
- const init_sequence_t *preinit_sequence;
- const init_sequence_t *postinit_remote_sequence;
- } escp2_printer_t;
-
- The printer definition block is divided into 8 sections. The first
-section is a set of miscellaneous printer options. These are described
-in the code, and will not be discussed further here.
-
- The second section describes the number of nozzles and the separation
-between nozzles in base units. The base unit is 1/360" for all
-currently supported printers, but future printers may support a smaller
-base unit.
-
- Many printers have more black nozzles than nozzles of other colors,
-and when used in black and white mode, it's possible to use these extra
-nozzles, which speeds up printing. As an example, a printer that is
-specified to have 48 cyan, magenta, and yellow nozzles, and 144 black
-nozzles, can use all 144 black nozzles when printing black ink only.
-When printing in color, only 48 nozzles of each color (including black)
-can be used.
-
- 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 `min_nozzles' and/or
-`min_black_nozzles' to the same value as `nozzles' and/or
-`black_nozzles'.
-
- The third section defines basic units of measure for the printer,
-including the standard separation between dots, the base nozzle
-separation, and the minimum and maximum printing resolutions the
-printer supports. Most of these are fairly self-explanatory, but some
-are not obvious.
-
- 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 `xres'. This is true even for printers that support
-resolutions of 1440 or 2880 DPI. In these cases, the data must be
-printed in 2, 4, or 8 passes. While the printer can position the head
-to a resolution of 1/1440" or 1/2880", the head cannot deposit ink that
-frequently.
-
- Some printers can only print in their very best quality (using the
-smallest dots available) printing at a lower resolution. 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 `enhanced_xres' to specify the
-resolution to be used in this enhanced mode, and `enhanced_resolution'
-to specify the printing resolution above which we use the
-`enhanced_xres'.
-
- The `resolution_scale' command is used to specify scaling factors
-for the dot separation on newer printers. It should always be 14400
-with current printers.
-
- The fourth section specifies the minimum and maximum paper sizes, and
-the margins. Some printers allow use of narrower margins when
-softweave is used; both sets of margins are specified.
-
- There is a convenient `INCH' macro defined to make specification of
-the `max_paper_width' and `max_paper_height' more legible. It
-multiplies 72 by the provided expression to get the appropriate number
-of points. For example, to specify 8.5", `INCH(17/2)' expands to `(72
-* 17/2)', which is evaluated left to right, and hence generates the
-correct value.
-
- The fifth section specifies some miscellaneous values that are
-required for certain printers. For most printers, the correct values
-are 1 for `separation_rows' and 0 for the others. Very, very few
-printers require (or allow) `separation_rows' to be anything but 1 and
-`pseudo_separation_rows' other than zero. The Stylus Color 1520,
-Stylus Color 800, Stylus Color 850, and (strangely enough to my mind,
-since it's a new printer) Stylus Color 660 seem to be the only
-exceptions.
-
- The `zero_margin_offset' 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 be determined empirically; good
-starting values are 100 for 1440 DPI and 50 for 2880 DPI printers. The
-goal is to print to the edge of the page, but not over it.
-
- The sixth section specifies head offsets for printers that do not
-have the color jets aligned. Certain printers, such as the Stylus Color
-480, have an unusual head arrangement whereby instead of all of the
-colors being aligned vertically, the nozzles are configured in groups.
-These printers are easy to determine; if the normal head offset of zero
-for each color is used, the printing will be vertically out of
-alignment. Most of these printers require specification of a negative
-offset for printing to the top edge of the paper; typically these
-printers do not require such an offset when printing black only.
-
- The seventh section specifies the most difficult values to tune, the
-dot sizes, printing densities, and ink values (for variable dot size
-enabled printers). These will be described in detail below.
-
- The last section specifies luminosity, hue, and saturation adjustment
-vectors for the printer, and the paper definitions. These are used to
-adjust the color in Photograph and Solid Colors output modes. These are
-each vectors of 48 (actually 49, as the first value must be duplicated)
-doubles that remap the luminosity, hue, and saturation respectively.
-The hue is calculated, and the value used to interpolate between the two
-closest points in each vector.
-
- The paper definitions is a set of paper definitions. The paper
-definition contains the name of the paper type, special settings that
-are required for printers to process the paper correctly, and a set of
-adjustment values. These are not currently discussed here.
-
- The lists of dot sizes and densities contain values for 13 printing
-modes: 120/180 DPI using printer weaving (single row; referred to as
-"interleave") and "soft" weaving (the driver determines the exact
-pattern of dot layout), 360 DPI interleave and softweave, 720x360 DPI
-interleave and softweave, 720 DPI interleave and softweave, 1440x720
-interleave and softweave, 2880x720 interleave and softweave, and
-2880x1440 softweave only.
-
- For the dot sizes, the value for each element in the vector selects
-the dot size to be used when printing at this (or similar) resolution.
-The dot sizes are determined by consulting the programming manual for
-the printer and experimenting as described below. Current Epson
-printers always use dot sizes less than `16', or `0x10', to indicate
-single dot size (each dot is represented by 1 bit, and it's either
-printed or not), and dot sizes of `16' or greater to indicate variable
-dot size (each dot is represented by 2 bits, and it can either be not
-printed or take on 2 or 3 values, representing the relative size of the
-printed dot). Variable dot sizes permit the use of very small dots
-(which would be too small to fill the page and produce solid black) in
-light areas, while allowing the page to be filled with larger dots in
-darker areas.
-
- Even single dot size printers can usually produce dots of different
-sizes; it's just illegal to actually try to switch dot size during a
-page. These dots are also much bigger than those used in true variable
-dot size printing.
-
- A dot size of `-1' indicates that this resolution is illegal for the
-printer in question. Any resolutions that would use this dot size will
-not be presented to the user. A dot size of `-2' indicates that this
-resolution is legal, but that the driver is not to attempt to set any
-dot size. Some very old printers do not support the command to set the
-dot size.
-
- Most printers support a dot size of `0' as a mode-specific default,
-but it's often a bigger dot than necessary. Printers usually also
-support some dot sizes between `1' and `3'. Usually `1' is the right
-dot size for 720 and 1440 dpi printing, and `3' works best at 360 dpi.
-
- Variable dot size printers usually support 2 or 3 sets of variable
-dot sizes. Older printers based on a 6 picolitre drop (the 480, 720,
-740, 750, 900, and 1200) support two: mode 16 (0x10 in hexadecimal) for
-normal variable dots at 1440 or 720 dpi, and mode 17 (0x10) for special
-larger dots at 360 dpi. Newer printers based on 4 picolitre drops
-normally support three sizes: `0x10' for 4 pl base drops, `0x11' for 6
-pl base drops, and `0x12' for special large drops. On these printers,
-`0x10' usually works best at 1440x720 and `0x11' works best at 720x720.
-Unfortunately, `0x10' doesn't seem to generate quite enough density at
-720x720, because if it did the output would be very smooth. Perhaps
-it's possible to tweak things....
-
- The list of densities is a list of base density values for all 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
-`.5', solid black actually prints only 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 base
-density to obtain the effective density value. All other things (such
-as ink drop size) remaining the same, doubling the resolution requires
-halving the base density. The base density in the density vector may
-exceed `1', as many paper types require lower density than the base
-driver. The driver ensures that the actual density never exceeds 1.
-
- Tuning the density should be done on high quality paper (usually
-glossy photo paper). The goal is to find the lowest 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 1440x720, by 4 for 2880x720,
-and by 8 for 2880x1440.
-
- However, for printers that offer a choice of dot size, this may not
-be the best strategy. The best choice for dot size is the smallest dot
-size that allows choosing a density value not greater than 1 that gives
-full coverage. This dot size may be different for different
-resolutions. Tuning variable dot size printers is more complicated;
-the process is described below.
-
- 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 the largest dot size has a value of 1. 6-color inks are
-handled similarly; the light cyan and light magenta inks are treated as
-a fractional ink value. The combination of variable dot size and 6
-color inks, of course, just creates that many more different ink
-choices.
-
- This structure is actually rather complicated; it contains entries
-for each combination of physical printer resolution (180, 360, 720, and
-1440 dpi), ink colors (4, 6, and 7), and single and variable dot sizes
-(since some printer modes can't handle variable dot size inks). Since
-there's so much data, it's actually a somewhat deeply nested structure:
-
- An `escp2_printer_t' contains a pointer (essentially, a reference
-rather than a copy) to an `escp2_variable_inklist_t'.
-
- An `escp2_variable_inklist_t' contains pointers to
-`escp2_variable_inkset_t' structures. There is one such pointer for
-each combination of resolution, dot type, and ink colors as described
-above. Yes, this is rather inflexible.
-
- An `escp2_variable_inkset_t' contains pointers to
-`escp2_variable_ink_t' structures. There is one such pointer for each
-of the four colors (C, M, Y, and K).
-
- An `escp2_variable_ink_t' contains a pointer to the actual list of
-ink values (`simple_dither_range_t'), the number of ink values, and a
-density value to be used for computing the transitions. This density
-value is actually a scaling value; it is multiplied by the effective
-density to compute the density to be used for computing the transitions.
-Normally, this value is `1', but in some cases it may be possible to
-get smoother results with a different value (in particular, the single
-dot size 6-color inks work best with the effective density scaled to
-`.75' for this purpose). A lower density lowers the transition points,
-which results in more ink being deposited.
-
- A `simple_dither_range_t' is a structure containing four values:
-
- 1. The value of the particular ink
-
- 2. The bit pattern used to represent the ink
-
- 3. Whether the ink is light (0) or dark (1), for inks with light and
- dark variants
-
- 4. The relative amount of ink actually deposited by this dot (not
- currently used for much; it can be used for ink reduction
- purposes, to reduce the amount of ink deposited on the paper).
-
- These things are interesting as arrays. From an array of
-`simple_dither_range_t''s, the dither code computes transition values
-that it looks up at run time to decide what ink to print, as well as
-whether to print at all.
-
- *Really* confused now? Yup. You'll probably find it easier to
-simply read the code.
-
-
-File: gimpprint.info, Node: Tuning Epson printers, Next: Canon inkjet printers, Prev: Epson inkjet printers, Up: New Printer
-
-Tuning the printer
-==================
-
- Now, how do you use all this to tune a printer? There are a number
-of ways to do it; this one is my personal favorite.
-
- There's a file named `cyan-sweep.tif'. This consists of a thin bar
-of cyan sweeping from white to almost pure cyan, and from pure cyan to
-black. The first thing to do is to pick the appropriate
-`simple_dither_range_t' (or create a whole new
-`escp2_variable_inklist_t') and comment out all but the darkest ink
-(this means you'll be using the largest dots of dark ink). At 8.5"
-width (the width of a letter-size piece of paper), the bar will be 1/8"
-high. Printing it on wider or narrower paper will change the height
-accordingly. Print it width-wise across a piece of photo quality paper
-in line art mode using ordered or adaptive hybrid dither. Do not use
-photographic mode; the colors in photographic mode vary non-linearly
-depending upon the presence of the three color components, while in line
-art mode the colors are much purer. Make sure that all the color
-adjustments are set to defaults (1.0). Use the highest quality version
-of the print mode you're testing to reduce banding and other artifacts.
-This is much easier to do with the Gimp than with Ghostscript.
-
- At this stage, you want to look for four things:
-
- 1. The black near the center of the line is solid, but not more so
- than that.
-
- 2. The cyan immediately to the left of the black is _almost_ solid.
-
- 3. The dark cyan at the far right of the page is solid, but not more
- so. You can try tuning the density so that it isn't quite solid,
- then nudging up the density until it is.
-
- 4. Both sweeps sweep smoothly from light to dark. In particular, the
- dark half of the bar shouldn't visibly change color; it should go
- smoothly from cyan to black.
-
- Repeat this stage until you have everything just right. Use the
-positioning entry boxes in the dialog to position each bar exactly 1/8"
-further down the page. Adjacent bars will be touching.
-
- The next step is to uncomment out the second darkest dot size. If
-you're using variable dots, use the second largest dot size of the dark
-ink rather than the largest dot size of the light ink. This will give
-you two inks.
-
- When you recompile the plugin, you simply need to copy the new
-executable into the correct place. You do not need to exit and restart
-the Gimp.
-
- Print another bar adjacent to the first one. Your goal is to match
-the bar using a single dot size as closely as possible. You'll find
-that the dark region of the bar shouldn't change to any great degree,
-but the light half probably will. If the lighter part of the light
-half is too dark, you need to increase the value of the smaller dot; if
-it's too light, you need to decrease the value. The reasoning is that
-if the value is too low, the ink isn't being given enough credit for
-its contribution to the darkness of the ink, and vice versa. Repeat
-until you have a good match. Make sure you let the ink dry fully,
-which will take a few minutes. Wet ink will look too dark. Don't look
-at the paper too closely; hold it at a distance. The extra graininess
-of the largest dot size will probably make it look lighter than it
-should; if you hold it far enough away so that you can't see the dots,
-you'll get a more accurate picture of what's going on.
-
- After you have what looks like a good match, print another bar using
-only the largest dot size (or dark ink, for single dot size 6-color
-printers). You want to ensure that the bars touching each other look
-identical, or as close as possible to it; your eye won't give you a
-good reading if the bars are separated from each other. You'll
-probably have to repeat the procedure.
-
- The next step is to comment out all but the largest and third-largest
-dot size, and repeat the procedure. When they match, use all three dot
-sizes of dark ink. Again, the goal is to match the single dot size.
-
- You'll probably find the match is imperfect. Now you have to figure
-out what region isn't right, which takes some experimentation. Even
-small adjustments can make a noticeable difference in what you see. At
-this stage, it's very important to hold the page far enough from your
-eye; when you use all three dot sizes, the texture will be much more
-even, which sometimes makes it look darker and sometimes lighter.
-
- After this is calibrated, it's time to calibrate the light ink
-against the dark ink. To do this, comment out all but the large dot
-version of the two inks, and repeat the procedure. This is trickier,
-because the hues of the inks might not be quite identical. Look at the
-dark half of the bar as well as the light half to see that the hue
-really doesn't change as you sweep from cyan to black. Sometimes it's
-easier to judge that way. You may find that it looks blotchy, in which
-case you should switch from ordered dither to adaptive hybrid.
-
- After you have the light and dark inks calibrated against each other,
-it's time to add everything back in. Usually you don't want to use the
-largest dot size of light ink. These dots will be much larger than the
-small dots of dark ink, but they'll still be lighter. This will cause
-problems when printing mixed colors, since you'll be depositing more
-ink on lighter regions of the page, and you'll probably get strange
-color casts that you can't get rid of in neutral tones. I normally use
-only the smallest one or two dot sizes of light ink.
-
- After you've tweaked everything, print the color bar with saturation
-set to zero. This will print neutral tones using color inks. Your
-goal here is to look for neutral tonality. If you're using a 6-color
-printer and get a yellow cast, it means that the values for your light
-inks are too high (remember, that means they're getting too much
-credit, so you're not depositing enough cyan and magenta ink, and the
-yellow dominates). If you get a bluish or bluish-purple cast, your
-light inks are too low (you're not giving them enough 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 1440x720 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 be put into the
-distribution.
-
- You can also fully desaturate this bar inside the Gimp and print it
-as monochrome (don't print the cyan as monochrome; the driver does funny
-things with luminance), for comparison. You'll find it very hard to
-get rid of all color casts.
-
- There are other ways of tuning printers, but this one works pretty
-well for me.
-
-
-File: gimpprint.info, Node: Canon inkjet printers, Prev: Tuning Epson printers, Up: New Printer
-
-Canon inkjet printers
-=====================
-
- Basically, a new Canon printer can be added to `print-canon.c' in a
-similar way as described above for the epson inkjet printers. The main
-differences are noted here:
-
- 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
-color used.
-
- `canon_cap_t' is a C struct defined as follows:
-
- - Data type: canon_cap_t
- typedef struct canon_caps {
- int model; /* model number as used in printers.xml */
- int max_width; /* maximum printable paper size */
- int max_height;
- int base_res; /* base resolution - shall be 150 or 180 */
- int max_xdpi; /* maximum horizontal resolution */
- int max_ydpi; /* maximum vertical resolution */
- int max_quality;
- int border_left; /* left margin, points */
- int border_right; /* right margin, points */
- int border_top; /* absolute top margin, points */
- int border_bottom; /* absolute bottom margin, points */
- int inks; /* installable cartridges (CANON_INK_*) */
- int slots; /* available paperslots */
- int features; /* special bjl settings */
- 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;
-
- Since there are Canon printers which print in resolutions of 2^n*150
-dpi (e.g. 300, 600, 1200) and others which support resolutions of
-2^n*180 dpi (e.g. 360, 720, 1440), there's a base resolution (150 or
-180, respectively) given in the `canon_cap_t'. The structs
-`canon_dot_size_t', `canon_densities_t' and `canon_variable_inklist_t'
-refer to resolutions being multiples of the base resolution.
-
- For the Canon driver, the struct `canon_dot_size_t' holds values for
-a model's capabilities at a given resolution: `-1' if the resolution is
-not supported. `0' if it can be used and `1' if the resolution can be
-used for variable dot size printing.
-
- In `canon_densities_t' the base densities for each resolution can be
-specified like for an epson printer, the same holds true for
-`canon_variable_inklist_t'. See the descriptions above to learn about
-how to adjust your model's output to yield nice results.
-
- There's a slight difference though in the way the Canon driver and
-the escp2 driver define their variable inklists: In the Canon driver,
-you need to define an inklist like this:
-
- static const canon_variable_inklist_t canon_ink_myinks[] =
- {
- {
- 1,4, /* 1bit/pixel, 4 colors */
- &ci_CMYK_1, &ci_CMYK_1, &ci_CMYK_1,
- &ci_CMYK_1, &ci_CMYK_1, &ci_CMYK_1,
- },
- {
- 3,4, /* 3bit/pixel, 4 colors */
- &ci_CMYK_3, &ci_CMYK_3, &ci_CMYK_3,
- &ci_CMYK_3, &ci_CMYK_3, &ci_CMYK_3,
- },
- };
-
-where the `&ci_CMYK_1' and `&ci_CMYK_3' entries are references to a
-previously defined const of type `canon_variable_inkset_t'.
-
-
-File: gimpprint.info, Node: Data Type and Variable Index, Next: Function and Macro Index, Prev: Appendices, Up: Top
-
-Data Type and Variable Index
-****************************
-
-* Menu:
-
-* canon_cap_t: Canon inkjet printers.
-* escp2_printer_t: Epson inkjet printers.
-* gimpprint_binary_age: Version functions.
-* gimpprint_current_interface: Version functions.
-* gimpprint_interface_age: Version functions.
-* gimpprint_major_version: Version functions.
-* gimpprint_micro_version: Version functions.
-* gimpprint_minor_version: Version functions.
-* stp_image_t: Printer functions.
-* stp_option_t: Options functions.
-* stp_outfunc_t: stp_vars_t functions.
-* stp_papersize_t: Paper functions.
-* stp_papersize_unit_t: Paper functions.
-* stp_printer_t: Printer functions.
-* stp_printfuncs_t: Printer functions.
-* stp_vars_t: stp_vars_t functions.
-
-
-File: gimpprint.info, Node: Function and Macro Index, Next: Concept Index, Prev: Data Type and Variable Index, Up: Top
-
-Function and Macro Index
-************************
-
-* Menu:
-
-* * ?? BC=XX Y[1] ... Y[xx]: ESC/P2 Remote Mode Commands.
-* * AC BC=2 00 XX: ESC/P2 Remote Mode Commands.
-* * AI BC=3 00 00 00: ESC/P2 Remote Mode Commands.
-* * CH BC=2 00 XX: ESC/P2 Remote Mode Commands.
-* * DA BC=4 00 XX 00 YY: ESC/P2 Remote Mode Commands.
-* * DA BC=6 00 XX 00 YY 09 00: ESC/P2 Remote Mode Commands.
-* * DR BC=4 00 xx DT2: ESC/P2 Remote Mode Commands.
-* * DT BC=3 00 XX 00: ESC/P2 Remote Mode Commands.
-* * DU BC=6 00 XX 00 09 00 YY: ESC/P2 Remote Mode Commands.
-* * EX BC=3 00 XX YY: ESC/P2 Remote Mode Commands.
-* * EX BC=6 00 00 00 00 0x05 XX: ESC/P2 Remote Mode Commands.
-* * EX BC=6 00 00 00 00 0x14 XX: ESC/P2 Remote Mode Commands.
-* * FP BC=3 00 XX YY: ESC/P2 Remote Mode Commands.
-* * IK BC=2 00 XX: ESC/P2 Remote Mode Commands.
-* * IQ BC=1 01: ESC/P2 Remote Mode Commands.
-* * IR BC=2 00 XX: ESC/P2 Remote Mode Commands.
-* * LD BC=0: ESC/P2 Remote Mode Commands.
-* * PH BC=2 00 XX: ESC/P2 Remote Mode Commands.
-* * PM BC=2 00 00: ESC/P2 Remote Mode Commands.
-* * PP BC=3 00 XX YY: ESC/P2 Remote Mode Commands.
-* * PZ BC=2 00 xx: ESC/P2 Remote Mode Commands.
-* * RS BC=1 01: ESC/P2 Remote Mode Commands.
-* * SM BC=1 01: ESC/P2 Remote Mode Commands.
-* * SM BC=2 00 02: ESC/P2 Remote Mode Commands.
-* * SM BC=2 00 XX: ESC/P2 Remote Mode Commands.
-* * SN BC=3 00 XX YY: ESC/P2 Remote Mode Commands.
-* * ST BC=1 01: ESC/P2 Remote Mode Commands.
-* * ST BC=2 00 XX: ESC/P2 Remote Mode Commands.
-* * SV BC=0: ESC/P2 Remote Mode Commands.
-* </printer>: printers.xml.
-* <color>: printers.xml.
-* <language value=TYPE>: printers.xml.
-* <model value=INT>: printers.xml.
-* <nocolor>: printers.xml.
-* <printer name="LONGNAME" driver="DRIVERNAME">: printers.xml.
-* AM_PATH_GIMPPRINT: autoconf.
-* ESC $ OFFSET2: ESC/P2 Standard Commands.
-* ESC ($ BC=4 OFFSET4: ESC/P2 Standard Commands.
-* ESC (/ BC=4 OFFSET4: ESC/P2 Standard Commands.
-* ESC (\ BC=4 UNITS2 OFFSET2: ESC/P2 Standard Commands.
-* ESC (C BC=2 PAGELENGTH2: ESC/P2 Standard Commands.
-* ESC (C BC=4 PAGELENGTH4: ESC/P2 Standard Commands.
-* ESC (c BC=4 TOP2 LENGTH2: ESC/P2 Standard Commands.
-* ESC (c BC=8 TOP4 LENGTH4: ESC/P2 Standard Commands.
-* ESC (D BC=4 BASE2 VERTICAL1 HORIZONTAL1: ESC/P2 Standard Commands.
-* ESC (e BC=2 ZERO1 DOTSIZE1: ESC/P2 Standard Commands.
-* ESC (G BC=1 ON1: ESC/P2 Standard Commands.
-* ESC (i BC=1 MICROWEAVE1: ESC/P2 Standard Commands.
-* ESC (K BC=2 ZERO1 GRAYMODE1: ESC/P2 Standard Commands.
-* ESC (r BC=2 DENSITY1 COLOR1: ESC/P2 Standard Commands.
-* ESC (R BC=8 00 R E M O T E 1: ESC/P2 Standard Commands.
-* ESC (s BC=1 SPEED1: ESC/P2 Standard Commands.
-* ESC (S BC=8 WIDTH4 LENGTH4: ESC/P2 Standard Commands.
-* ESC (U BC=1 UNIT1: ESC/P2 Standard Commands.
-* ESC (U BC=5 PAGEUNITS1 VUNIT1 HUNIT1 BASEUNIT2: ESC/P2 Standard Commands.
-* ESC (V BC=2 ADVANCE2: ESC/P2 Standard Commands.
-* ESC (v BC=2 ADVANCE2: ESC/P2 Standard Commands.
-* ESC (V BC=4 ADVANCE4: ESC/P2 Standard Commands.
-* ESC (v BC=4 ADVANCE4: ESC/P2 Standard Commands.
-* ESC . COMPRESS1 VSEP1 HSEP1 LINES1 WIDTH2 DATA...: ESC/P2 Standard Commands.
-* ESC 01 @EJL [sp] ID\r\n: ESC/P2 Standard Commands.
-* ESC @: ESC/P2 Standard Commands.
-* ESC \ OFFSET2: ESC/P2 Standard Commands.
-* ESC i COLOR1 COMPRESS1 BITS1 BYTES2 LINES2 DATA...: ESC/P2 Standard Commands.
-* ESC r COLOR1: ESC/P2 Standard Commands.
-* ESC U DIRECTION1: ESC/P2 Standard Commands.
-* GIMPPRINT_BINARY_AGE: Version functions.
-* GIMPPRINT_CHECK_VERSION: Version functions.
-* GIMPPRINT_CURRENT_INTERFACE: Version functions.
-* GIMPPRINT_INTERFACE_AGE: Version functions.
-* GIMPPRINT_MAJOR_VERSION: Version functions.
-* GIMPPRINT_MICRO_VERSION: Version functions.
-* GIMPPRINT_MINOR_VERSION: Version functions.
-* NC BC=2 00 00: ESC/P2 Remote Mode Commands.
-* stp_allocate_copy: stp_vars_t functions.
-* stp_allocate_lut: stp_vars_t functions.
-* stp_allocate_vars: stp_vars_t functions.
-* stp_check_version: Version functions.
-* stp_choose_colorfunc: Settings functions.
-* stp_clear_all_options: Options functions.
-* stp_clear_option: Options functions.
-* stp_compute_lut: stp_vars_t functions.
-* stp_compute_page_parameters: Settings functions.
-* stp_copy_vars: stp_vars_t functions.
-* stp_default_dither_algorithm: Dither functions.
-* stp_default_settings: Settings functions.
-* stp_dither_algorithm_count: Dither functions.
-* stp_dither_algorithm_name: Dither functions.
-* stp_free_lut: stp_vars_t functions.
-* stp_free_vars: stp_vars_t functions.
-* stp_get_app_gamma: stp_vars_t functions.
-* stp_get_brightness: stp_vars_t functions.
-* stp_get_cmap: stp_vars_t functions.
-* stp_get_contrast: stp_vars_t functions.
-* stp_get_cyan: stp_vars_t functions.
-* stp_get_density: stp_vars_t functions.
-* stp_get_dither_algorithm: stp_vars_t functions.
-* stp_get_driver: stp_vars_t functions.
-* stp_get_errdata: stp_vars_t functions.
-* stp_get_errfunc: stp_vars_t functions.
-* stp_get_gamma: stp_vars_t functions.
-* stp_get_image_type: stp_vars_t functions.
-* stp_get_ink_type: stp_vars_t functions.
-* stp_get_input_color_model: stp_vars_t functions.
-* stp_get_left: stp_vars_t functions.
-* stp_get_lut: stp_vars_t functions.
-* stp_get_magenta: stp_vars_t functions.
-* stp_get_media_size: stp_vars_t functions.
-* stp_get_media_source: stp_vars_t functions.
-* stp_get_media_type: stp_vars_t functions.
-* stp_get_option_by_index: Options functions.
-* stp_get_option_by_name: Options functions.
-* stp_get_orientation: stp_vars_t functions.
-* stp_get_outdata: stp_vars_t functions.
-* stp_get_outfunc: stp_vars_t functions.
-* stp_get_output_color_model: stp_vars_t functions.
-* stp_get_output_to: stp_vars_t functions.
-* stp_get_output_type: stp_vars_t functions.
-* stp_get_page_height: stp_vars_t functions.
-* stp_get_page_width: stp_vars_t functions.
-* stp_get_papersize_by_index: Paper functions.
-* stp_get_papersize_by_name: Paper functions.
-* stp_get_papersize_by_size: Paper functions.
-* stp_get_ppd_file: stp_vars_t functions.
-* stp_get_printer_by_driver: Printer functions.
-* stp_get_printer_by_index: Printer functions.
-* stp_get_printer_by_long_name: Printer functions.
-* stp_get_printer_index_by_driver: Printer functions.
-* stp_get_resolution: stp_vars_t functions.
-* stp_get_saturation: stp_vars_t functions.
-* stp_get_scaling: stp_vars_t functions.
-* stp_get_top: stp_vars_t functions.
-* stp_get_unit: stp_vars_t functions.
-* stp_get_yellow: stp_vars_t functions.
-* stp_init: Main functions.
-* stp_known_papersizes: Paper functions.
-* stp_known_printers: Printer functions.
-* stp_malloc: Main functions.
-* stp_maximum_settings: Settings functions.
-* stp_merge_printvars: stp_vars_t functions.
-* stp_minimum_settings: Settings functions.
-* stp_option_count: Options functions.
-* stp_option_data: Options functions.
-* stp_option_length: Options functions.
-* stp_option_name: Options functions.
-* stp_papersize_get_bottom: Paper functions.
-* stp_papersize_get_height: Paper functions.
-* stp_papersize_get_left: Paper functions.
-* stp_papersize_get_name: Paper functions.
-* stp_papersize_get_right: Paper functions.
-* stp_papersize_get_top: Paper functions.
-* stp_papersize_get_unit: Paper functions.
-* stp_papersize_get_width: Paper functions.
-* stp_printer_get_driver: Printer functions.
-* stp_printer_get_long_name: Printer functions.
-* stp_printer_get_model: Printer functions.
-* stp_printer_get_printfuncs: Printer functions.
-* stp_printer_get_printvars: Printer functions.
-* stp_set_app_gamma: stp_vars_t functions.
-* stp_set_brightness: stp_vars_t functions.
-* stp_set_cmap: stp_vars_t functions.
-* stp_set_contrast: stp_vars_t functions.
-* stp_set_cyan: stp_vars_t functions.
-* stp_set_density: stp_vars_t functions.
-* stp_set_dither_algorithm: stp_vars_t functions.
-* stp_set_dither_algorithm_n: stp_vars_t functions.
-* stp_set_driver: stp_vars_t functions.
-* stp_set_driver_n: stp_vars_t functions.
-* stp_set_errdata: stp_vars_t functions.
-* stp_set_errfunc: stp_vars_t functions.
-* stp_set_gamma: stp_vars_t functions.
-* stp_set_image_type: stp_vars_t functions.
-* stp_set_ink_type: stp_vars_t functions.
-* stp_set_ink_type_n: stp_vars_t functions.
-* stp_set_input_color_model: stp_vars_t functions.
-* stp_set_left: stp_vars_t functions.
-* stp_set_lut: stp_vars_t functions.
-* stp_set_magenta: stp_vars_t functions.
-* stp_set_media_size: stp_vars_t functions.
-* stp_set_media_size_n: stp_vars_t functions.
-* stp_set_media_source: stp_vars_t functions.
-* stp_set_media_source_n: stp_vars_t functions.
-* stp_set_media_type: stp_vars_t functions.
-* stp_set_media_type_n: stp_vars_t functions.
-* stp_set_option: Options functions.
-* stp_set_orientation: stp_vars_t functions.
-* stp_set_outdata: stp_vars_t functions.
-* stp_set_outfunc: stp_vars_t functions.
-* stp_set_output_color_model: stp_vars_t functions.
-* stp_set_output_to: stp_vars_t functions.
-* stp_set_output_to_n: stp_vars_t functions.
-* stp_set_output_type: stp_vars_t functions.
-* stp_set_page_height: stp_vars_t functions.
-* stp_set_page_width: stp_vars_t functions.
-* stp_set_ppd_file: stp_vars_t functions.
-* stp_set_ppd_file_n: stp_vars_t functions.
-* stp_set_resolution: stp_vars_t functions.
-* stp_set_resolution_n: stp_vars_t functions.
-* stp_set_saturation: stp_vars_t functions.
-* stp_set_scaling: stp_vars_t functions.
-* stp_set_top: stp_vars_t functions.
-* stp_set_unit: stp_vars_t functions.
-* stp_set_yellow: stp_vars_t functions.
-* VI BC=2 00 00: ESC/P2 Remote Mode Commands.
-
-
-File: gimpprint.info, Node: Concept Index, Prev: Function and Macro Index, Up: Top
-
-Concept Index
-*************
-
-* Menu:
-
-* adding a printer: New Printer.
-* Appendices: Appendices.
-* autoconf: autoconf.
-* automake: automake.
-* bugs: Problems.
-* collisions: Weaving collisions.
-* CUPS driver: CUPS.
-* dither functions: Dither functions.
-* dithering: Dithering.
-* driver file: Driver file.
-* Epson inkjet printers: Epson inkjet printers.
-* ESC/P2: ESC/P2.
-* ESC/P2 introduction: ESC/P2 Introduction.
-* functions: Functions.
-* ghostscript driver: Ghostscript.
-* GIMP Print plugin: The GIMP plugin.
-* gimpprint-config: gimpprint-config.
-* how to read: Instructions.
-* initialising libgimpprint: Main functions.
-* integrating: Integrating libgimpprint.
-* m4 macros: autoconf.
-* main functions: Main functions.
-* make: make.
-* manual, how to read: Instructions.
-* memory allocation: Main functions.
-* new printer: New Printer.
-* options functions: Options functions.
-* oversampling: Oversampling.
-* overview: Overview.
-* paper functions: Paper functions.
-* perfect weave <1>: What is perfect weaving?.
-* perfect weave: Perfect weaving.
-* Print plugin: The GIMP plugin.
-* printer functions: Printer functions.
-* printer, adding: New Printer.
-* printer, tuning: Tuning Epson printers.
-* problems: Problems.
-* programs: Programs.
-* reading: Instructions.
-* settings functions: Settings functions.
-* stp_vars_t functions: stp_vars_t functions.
-* tuning the printer: Tuning Epson printers.
-* using: Using libgimpprint.
-* version functions: Version functions.
-* weaving: Weaving.
-* weaving algorithms: Weaving algorithms.
-* weaving collisions: Weaving collisions.
-
-