📄 pclcap.c
字号:
{ms_JISB5, 0.17*BP_PER_IN, 0.46*BP_PER_IN, 0.17*BP_PER_IN, 0.04*BP_PER_IN}, {ms_EnvC6, 0.13*BP_PER_IN, 0.71*BP_PER_IN, 0.13*BP_PER_IN, 0.04*BP_PER_IN}, {ms_Index4x6in, 0.13*BP_PER_IN, 0.71*BP_PER_IN, 0.13*BP_PER_IN, 0.04*BP_PER_IN}, {ms_Index5x8in, 0.13*BP_PER_IN, 0.71*BP_PER_IN, 0.13*BP_PER_IN, 0.04*BP_PER_IN}, {ms_A6 | PCL_CARD_FLAG, 0.13*BP_PER_IN, 0.71*BP_PER_IN, 0.13*BP_PER_IN, 0.04*BP_PER_IN}, {ms_Postcard, 0.17*BP_PER_IN, 0.71*BP_PER_IN, 0.17*BP_PER_IN, 0.04*BP_PER_IN}, {ms_EnvUS_A2, 0.13*BP_PER_IN, 0.71*BP_PER_IN, 0.13*BP_PER_IN, 0.04*BP_PER_IN}, {ms_Letter | MS_BIG_FLAG, /* banner */ 0.25*BP_PER_IN, 0.0, 0.25*BP_PER_IN, 0.0}, {ms_A4 | MS_BIG_FLAG, /* banner */ 0.13*BP_PER_IN, 0.0, 0.13*BP_PER_IN, 0.0}, /* BPD05054 claims left and right margins of 0.25 in. */ {ms_none} }, hpdj6xx_and_8xx_sizes[] = { /* This entry is a combination from the sizes supported according to DJ6/8 pp. 23-24 by all series 600 and 800 DeskJets, and the corresponding margins from 'hpdj660c_sizes[]' above. This is only used for series 600 DeskJets for which there is no other information and not for series 800 DeskJets. */ {ms_Executive, 0.25*BP_PER_IN, 0.46*BP_PER_IN, 0.25*BP_PER_IN, 0.04*BP_PER_IN}, {ms_Letter, 0.25*BP_PER_IN, 0.46*BP_PER_IN, 0.25*BP_PER_IN, 0.04*BP_PER_IN}, {ms_Legal, 0.25*BP_PER_IN, 0.46*BP_PER_IN, 0.25*BP_PER_IN, 0.04*BP_PER_IN}, {ms_A5, 0.13*BP_PER_IN, 0.71*BP_PER_IN, 0.13*BP_PER_IN, 0.04*BP_PER_IN}, {ms_A4, 0.13*BP_PER_IN, 0.46*BP_PER_IN, 0.13*BP_PER_IN, 0.04*BP_PER_IN}, {ms_JISB5, 0.17*BP_PER_IN, 0.46*BP_PER_IN, 0.17*BP_PER_IN, 0.04*BP_PER_IN}, {ms_Postcard, 0.17*BP_PER_IN, 0.71*BP_PER_IN, 0.17*BP_PER_IN, 0.04*BP_PER_IN}, {ms_DoublePostcard, /* not present in 'hpdj660c_sizes[]'; guessed */ 0.17*BP_PER_IN, 0.71*BP_PER_IN, 0.17*BP_PER_IN, 0.04*BP_PER_IN}, {ms_A6 | PCL_CARD_FLAG, 0.13*BP_PER_IN, 0.71*BP_PER_IN, 0.13*BP_PER_IN, 0.04*BP_PER_IN}, {ms_Index4x6in, 0.13*BP_PER_IN, 0.71*BP_PER_IN, 0.13*BP_PER_IN, 0.04*BP_PER_IN}, {ms_Index5x8in, 0.13*BP_PER_IN, 0.71*BP_PER_IN, 0.13*BP_PER_IN, 0.04*BP_PER_IN}, {ms_Env10, 0.13*BP_PER_IN, 0.71*BP_PER_IN, 0.13*BP_PER_IN, 0.04*BP_PER_IN}, {ms_EnvDL, 0.13*BP_PER_IN, 0.71*BP_PER_IN, 0.13*BP_PER_IN, 0.04*BP_PER_IN}, {ms_EnvC6, 0.13*BP_PER_IN, 0.71*BP_PER_IN, 0.13*BP_PER_IN, 0.04*BP_PER_IN}, {ms_EnvUS_A2, 0.13*BP_PER_IN, 0.71*BP_PER_IN, 0.13*BP_PER_IN, 0.04*BP_PER_IN}, {ms_none} }, hpdj850c_sizes[] = { /* Apart from JIS B5, these specifications have been taken from the German HP user manual for the DeskJet 850C, "HP DeskJet 850C Handbuch", C2145-90248, 3/95. They are valid for black and colour printing. The manual agrees with "HP DeskJet 850C and 855C Printer -- Printable Regions" (BPD02523), HP FIRST #: 2789, 1995-09-05, and the newer "HP DeskJet 855C, 850C, 870C and 890C Series Printers -- Printable Areas" (BPD02523), effective date 1996-06-06. There are some minor deviations in the DG, pp. 81-82, which I have partially adopted. First some shorthand notation for margin types. The order is: left, bottom, right, top. */#define type1 6.4*BP_PER_MM, 11.7*BP_PER_MM, 6.4*BP_PER_MM, 1.0*BP_PER_MM#define type2 3.4*BP_PER_MM, 11.7*BP_PER_MM, 3.4*BP_PER_MM, 1.0*BP_PER_MM#define type3 3.4*BP_PER_MM, 11.7*BP_PER_MM, 3.4*BP_PER_MM, 11.7*BP_PER_MM#define type4 3.2*BP_PER_MM, 11.7*BP_PER_MM, 3.2*BP_PER_MM, 1.0*BP_PER_MM#define type5 3.2*BP_PER_MM, 22.0*BP_PER_MM, 3.2*BP_PER_MM, 1.0*BP_PER_MM {ms_Letter, type1}, {ms_Legal, type1}, {ms_Executive, type1}, {ms_A4, type2}, {ms_A5, type2}, /* also BPD05054. DG: type4 */ {ms_JISB5, type4}, /* from DG */ /* The German handbook as well as BPD02523 and BPD05054 state that this should be type3. This is however demonstrably wrong for the DJ 850C. Besides I can't see why the top margin should be so much larger for JIS B5 than for the other sizes. 'type4' agrees fairly well with what I've measured on a DJ 850C. In particular the right and bottom clipping margins are definitely close to 3 and 11.5 mm, respectively. */ {ms_Index4x6in, type4}, {ms_Index5x8in, type4}, {ms_A6 | PCL_CARD_FLAG, type4}, {ms_Postcard, type4}, {ms_Env10, type5}, {ms_EnvDL, type5}, {ms_EnvC6, type5}, /* BPD02926 claims that the series-800 DeskJets support also US A2 envelope size (ms_EnvUS_A2). I've experimented with a DeskJet 850C and I don't believe it: when sent this page size code, the printer establishes clipping regions which agree with those for US Letter size. This indicates that the PCL interpreter has not recognized the page size code and has therefore switched to the default size. */ {ms_none}#undef type1/* type2 will be needed in a moment */#undef type3#undef type4#undef type5 }, hpdj1120c_sizes[] = { /* These values are from DJ1120C, pp. 11-12, and from BPD05567. I don't consider them particularly trustworthy. */ {ms_Executive, 0.25*BP_PER_IN, 0.46*BP_PER_IN, 0.25*BP_PER_IN, 0.12*BP_PER_IN}, {ms_Letter, 0.25*BP_PER_IN, 0.46*BP_PER_IN, 0.25*BP_PER_IN, 0.12*BP_PER_IN}, {ms_Legal, 0.25*BP_PER_IN, 0.46*BP_PER_IN, 0.25*BP_PER_IN, 0.12*BP_PER_IN}, {ms_Tabloid, 0.20*BP_PER_IN, 0.46*BP_PER_IN, 0.20*BP_PER_IN, 0.12*BP_PER_IN}, {ms_Statement, 0.20*BP_PER_IN, 0.46*BP_PER_IN, 0.20*BP_PER_IN, 0.12*BP_PER_IN}, /* Not in BPD05567. */ {ms_HPSuperB, 0.20*BP_PER_IN, 0.46*BP_PER_IN, 0.20*BP_PER_IN, 0.12*BP_PER_IN}, {ms_A6, 0.125*BP_PER_IN, 0.46*BP_PER_IN, 0.125*BP_PER_IN, 0.12*BP_PER_IN}, /* Not in BPD05567. */ {ms_A5, 0.125*BP_PER_IN, 0.46*BP_PER_IN, 0.125*BP_PER_IN, 0.12*BP_PER_IN}, /* BPD05567: 0.12 in, 0.46 in, 0.12 in, 0.12 in. */ {ms_A4, 0.20*BP_PER_IN, 0.46*BP_PER_IN, 0.20*BP_PER_IN, 0.12*BP_PER_IN}, /* BPD05567: 0.13 in, 0.46 in, 0.13 in, 0.12 in. */ {ms_A3, 0.20*BP_PER_IN, 0.46*BP_PER_IN, 0.20*BP_PER_IN, 0.12*BP_PER_IN}, /* Only in BPD05567. */ {ms_JISB5, 0.125*BP_PER_IN, 0.46*BP_PER_IN, 0.125*BP_PER_IN, 0.12*BP_PER_IN}, /* BPD05567: 0.12 in, 0.46 in, 0.12 in, 0.12 in. */ {ms_JISB4, 0.20*BP_PER_IN, 0.46*BP_PER_IN, 0.20*BP_PER_IN, 0.12*BP_PER_IN}, /* Not in BPD05567. */ {ms_Postcard, 0.125*BP_PER_IN, 0.46*BP_PER_IN, 0.125*BP_PER_IN, 0.12*BP_PER_IN}, /* BPD05567: 0.12 in, 0.46 in, 0.12 in, 0.12 in. */ {ms_A6 | PCL_CARD_FLAG, 0.125*BP_PER_IN, 0.46*BP_PER_IN, 0.125*BP_PER_IN, 0.12*BP_PER_IN}, /* BPD05567: 0.12 in, 0.46 in, 0.12 in, 0.12 in. */ {ms_Index4x6in, 0.125*BP_PER_IN, 0.46*BP_PER_IN, 0.125*BP_PER_IN, 0.12*BP_PER_IN}, /* BPD05567: 0.12 in, 0.46 in, 0.12 in, 0.12 in. */ {ms_Index5x8in, 0.125*BP_PER_IN, 0.46*BP_PER_IN, 0.125*BP_PER_IN, 0.12*BP_PER_IN}, /* BPD05567: 0.12 in, 0.46 in, 0.12 in, 0.12 in. */ {ms_Env10, 0.125*BP_PER_IN, 0.46*BP_PER_IN, 0.125*BP_PER_IN, 0.12*BP_PER_IN}, /* BPD05567: 0.12 in, 0.46 in, 0.12 in, 0.12 in. */ {ms_EnvDL, 0.125*BP_PER_IN, 0.46*BP_PER_IN, 0.125*BP_PER_IN, 0.12*BP_PER_IN}, /* BPD05567: 0.12 in, 0.46 in, 0.12 in, 0.12 in. */ {ms_EnvC6, 0.125*BP_PER_IN, 0.46*BP_PER_IN, 0.125*BP_PER_IN, 0.12*BP_PER_IN}, /* BPD05567: 0.12 in, 0.46 in, 0.12 in, 0.12 in. */ {ms_EnvUS_A2, 0.125*BP_PER_IN, 0.46*BP_PER_IN, 0.125*BP_PER_IN, 0.12*BP_PER_IN}, /* BPD05567: 0.12 in, 0.46 in, 0.12 in, 0.12 in. */ {ms_EnvChou3, 0.125*BP_PER_IN, 0.46*BP_PER_IN, 0.125*BP_PER_IN, 0.12*BP_PER_IN}, /* BPD05567: 0.12 in, 0.46 in, 0.12 in, 0.12 in. */ {ms_EnvChou4, 0.125*BP_PER_IN, 0.46*BP_PER_IN, 0.125*BP_PER_IN, 0.12*BP_PER_IN}, /* BPD05567: 0.12 in, 0.46 in, 0.12 in, 0.12 in. */ {ms_EnvKaku2, 0.20*BP_PER_IN, 0.46*BP_PER_IN, 0.20*BP_PER_IN, 0.12*BP_PER_IN}, /* Not in BPD05567. */ /* Banners are listed only in BPD05567: */ {ms_Letter | MS_BIG_FLAG, 0.25*BP_PER_IN, 0, 0.25*BP_PER_IN, 0.04*BP_PER_IN}, {ms_A4 | MS_BIG_FLAG, 0.13*BP_PER_IN, 0, 0.13*BP_PER_IN, 0.04*BP_PER_IN}, {ms_none} };/*---------------------------------------------------------------------------*//* Custom page size descriptions. First the limits: width min and max, height min and max. Then the margins in the usual order: left, bottom, right, top. Again, I have assumed something I could find no explicit documentation for, namely that these limits refer to raster space (which is identical to pixmap device space for the 'pcl3' device). It is, however, clear from the upper limits for the DJ 850C that "height" does not refer to the direction orthogonal to the feeding direction. */static const eprn_CustomPageDescription hpdj540_custom_sizes[] = { /* These values are taken from the document "HP DeskJet 540 Printer - Print Regions", BPD02194, 1996, except for the right margin which is stated to be application-dependent (the TRG500 recommends that one should enforce at least 1/8 in) and the top margin which I've extended from zero to 0.04 in. These are the correct values for printing in black. Note that the DeskJet 540 in colour mode needs a bottom margin which is larger by 0.13 in. */ { /* Page width 7.12 to 8.5 in */ ms_CustomPageSize, 0.13*BP_PER_IN, 0.46*BP_PER_IN, 0.125*BP_PER_IN, 0.04*BP_PER_IN, 7.12*BP_PER_IN, 8.5*BP_PER_IN, 5.83*BP_PER_IN, 14*BP_PER_IN }, { /* Page width 5 to 7.12 in */ ms_CustomPageSize, 0.13*BP_PER_IN, 0.71*BP_PER_IN, 0.125*BP_PER_IN, 0.04*BP_PER_IN, 5*BP_PER_IN, 7.12*BP_PER_IN, 5.83*BP_PER_IN, 14*BP_PER_IN }, {ms_none, 0, 0, 0, 0, 0, 0, 0, 0} }, hpdj_6xx_and_8xx_custom_sizes[] = { /* Ranges from DJ6/8 p. 23, margins from A4 for the DJ 660C (BPD02519) */ { ms_CustomPageSize, 0.13*BP_PER_IN, 0.46*BP_PER_IN, 0.13*BP_PER_IN, 0.04*BP_PER_IN, 5*BP_PER_IN, 8.5*BP_PER_IN, 148*BP_PER_MM, 14*BP_PER_IN }, {ms_none, 0, 0, 0, 0, 0, 0, 0, 0} }, hpdj850c_custom_sizes[] = { { /* The following values have been taken from the German DeskJet 850C manual, "HP DeskJet 850C Handbuch", C2145-90248, 3/95. They agree with the values given in the newer version of BPD02523 for the DeskJets 850C, 855C, 870C and 890C except that the left and right margins are stated to be 3.44 mm instead of 3.4 mm. This is almost certainly a misprint because the accompanying value in inches is identical (0.13 in, i.e. 3.30 mm), and specifying the margins to a hundredth of a millimetre is ridiculous. */ ms_CustomPageSize, type2, 100*BP_PER_MM, 216*BP_PER_MM, 148*BP_PER_MM, 356*BP_PER_MM }, {ms_none, 0, 0, 0, 0, 0, 0, 0, 0} }, hpdj1120c_custom_sizes[] = { { /* Taken from DJ1120C pp. 10 and 12. The minimum sizes are guessed (smallest supported discrete dimensions) */ ms_CustomPageSize, 0.125*BP_PER_IN, 0.46*BP_PER_IN, 0.125*BP_PER_IN, 0.12*BP_PER_IN, 90*BP_PER_MM, 13*BP_PER_IN, 146*BP_PER_MM, 19*BP_PER_IN, }, {ms_none, 0, 0, 0, 0, 0, 0, 0, 0} }, any_custom_sizes[] = { /* Any value is permitted in this case. This is approximated by permitting 10^-37-10^37 bp for both, width and height (10^37 bp = 3.5*10^33 m). Note that 10^37 is the smallest upper bound and 10^-37 the largest lower bound for 'float' values permitted by the C standard. */ { ms_CustomPageSize, type2, /* use DJ 850C margins */ 1.0E-37, 1.0E37, 1.0E-37, 1.0E37 }, {ms_none, 0, 0, 0, 0, 0, 0, 0, 0} };#undef type2/*****************************************************************************//* Resolution lists */static const eprn_Resolution threehundred[] = { { 300, 300 }, { 0, 0 } }, six_by_three[] = { { 600, 300 }, { 0, 0 } }, sixhundred[] = { { 600, 600 }, { 0, 0 } }, basic_resolutions[] = { { 75, 75 }, { 100, 100 }, { 150, 150 }, { 300, 300 }, { 0, 0 } /* This is the list of resolutions supported by the series 300, 400 and 500 DeskJets (except the DJ 540) in black and colour and by the series 600 and 800 DeskJets (except the DJs 85xC) in colour. */ }, basic_without_100[] = { { 75, 75 }, { 150, 150 }, { 300, 300 }, { 0, 0 } }, rel_hpdj1120c_black[] = { { 150, 150 }, { 300, 300 }, { 600, 600 }, { 0, 0 } }, rel_150_and_300[] = { { 150, 150 }, { 300, 300 }, { 0, 0 } };/* Lists of permitted numbers of intensity levels */static const eprn_IntensityLevels two_levels[] = { {2, 2}, {0, 0} }, four_levels[] = { {4, 4}, {0, 0} }, two_to_four_levels[] = { {2, 4}, {0, 0} }, three_to_four_levels[] = { {3, 4}, {0, 0} }, any_levels[] = { {2, 65535}, {0, 0} };
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -