From dfae5860833782af557deb35e286d7e186fe3cf5 Mon Sep 17 00:00:00 2001 From: Roger Leigh Date: Sun, 26 Oct 2008 16:11:41 +0000 Subject: Imported Upstream version 4.3.99+cvs20050702 --- doc/gimpprint.info-5 | 872 --------------------------------------------------- 1 file changed, 872 deletions(-) delete mode 100644 doc/gimpprint.info-5 (limited to 'doc/gimpprint.info-5') 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 () and Robert -Krawitz () - - 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. -* : printers.xml. -* : printers.xml. -* : printers.xml. -* : printers.xml. -* : printers.xml. -* : 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. - - -- cgit v1.2.3