1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
|
Overview:
Though designed to emulate the HP Color LaserJet 5/5M, there are several areas
where the behavior of the Artifex interpreter differs from that device. The
first part of this document provides an overview of these differences, and
the second part notes specific examples in the PCL 5c FTS where the differences
between the Artifex interpreter and the HP implementation are apparent.
Overview:
Fonts
Since the release of the LaserJet III in 1989, successive printer products
from HP have shifted away from using bitmap fonts toward scalable fonts,
originally using Intellifont fonts and more recently TrueType fonts (using
the InfiniFont packaging technique). The Color LaserJet 5/5M represents an
intermediate stage in this development. It has a single bitmap font (line-
printer), a primary set of scalable fonts in Intellifont format, and an
additional set of fonts in TrueType format.
Artifex is not a font vendor, and the default set of fonts offered with the
interpreter is not meant to exactly emulate the offerings of an HP product.
In addition, the default font set corresponds to a later stage in the
evolution of HP products; more similar to the monochrome LaserJet 5/5M and
the LaserJet 6P than the Color LaserJet 5/5M (which more closely resembles
the font offering of the monochrome LaserJet 4 series). Though the set of
typeface "names" that are supported is similar, the format in which these
fonts are stored and some aspects of the supported character set vary.
This discrepancy in font offerings has many visible manifestations, most of
them quite minor. Some of the more obvious differences are:
1. Spacing.
Not all of the proportionally spaced fonts in the default set match
the spacing (advance width) of the corresponding fonts provided
by HP. This is most often visible when lines of text are set up to be
clipped at the right margin (rare in applications but more common in
the FTS), or when the automatic line wrap feature is used.
2. Adherence to requested height and/or (fixed-width) space.
In normal operation, a PCL document does not directly specify which
fonts are to be used for a given block of text. Rather, the document
will specify a set of font properties which the interpreter attempts
to match as best possible given the set of available fonts (the rules
which define a "best" match are quite specific). Among the properties
specified are the height of the font and, in the case of a fixed-pitch
font, the character pitch.
All of the fonts provided in the default set for the Artifex
interpreter are scalable, hence all will exactly adhere to the
requested font size and/or pitch. In situations where a bitmap font
would, instead, be used by an HP printer, only an approximate match
may be available for font size/pitch. Hence, the size of text
rendered by the Artifex interpreter may differ from that of an HP
printer.
3. Interaction with downloaded symbol sets.
All of the fonts in the Artifex default set are TrueType fonts, which
make use of the Unicode font encoding scheme. Intellifont fonts, such
as the base set provided with the Color LaserJet 5/5M, make use of a
different font encoding scheme known as MSL. (In principle there is no
connection between a font's scaling technology and its encoding scheme,
but in practice all Intellifont fonts use the MSL scheme and all
(unbound) TrueType fonts use the Unicode scheme.)
In PCL, a user defined (downloaded) symbol set may apply to either the
Unicode or the MSL encoding scheme, but not to both. Hence, a downloaded
symbol set that uses the MSL encoding can be used with the base font
set of the Color LaserJet 5/5M, but not with fonts provided with the
Artifex interpreter. Conversely, any downloaded symbol set that uses
the Unicode encoding can be used with the base font set of the Artifex
interpreter, but not the Color LaserJet 5/5M.
Because support for the currently selected symbol set is the highest
priority selection parameter in the PCL font selection mechanism, this
difference in font format can have dramatic effects, as is evident in
some of the 5c FTS tests.
4. Font scaler anomalies
The set of Intellifont fonts distributed by Agfa includes fonts with
some "malformed" character outlines (outlines that do not adhere to the
documented format). These outlines are handled differently by the
HP Intellifont scaler and the scaler provided with the Artifex
interpreter. For example, in the 5c FTS, the lower case 't' in the
Park Avenue font has a malformed outline, and its rendering with the
Artifex interpreter is quite different (i.e., distorted) from that
produced by an HP interpreter.
Rendering Methods/Halftones
HP's documentation identifies 20 different "rendering algorithms" that can
be selected on an object-by-object basis. For the most part these rendering
algorithms represent different halftones, though certain rendering
algorithms also specify color mapping (in particular, color to monochrome
conversion).
No actual devices support all 20 algorithms. For any given device, many
algorithms are mapped to others, so that no more than 6 to 12 unique
algorithms are supported. This remapping respects color transformations:
a monochrome algorithm may be remapped to another monochrome algorithm but
not to a color algorithm, and vice-versa. Hence, the remapping of render
algorithms is essentially a mechanism for selecting amongst different
halftones.
Halftones for PCL 5c devices fall into two categories: "predictable" and not
"predictable". Prior to the release of the Color LaserJet 5/5M, all PCL 5c
halftones were predictable: all halftones were based on threshold arrays
(HP's documentation terms such halftones "ordered dithers", because they
have a monotonicity or "order" property), and the same halftone was used on
all devices. (Strictly speaking, there is "upward compatibility": some
devices offer more halftones than others, but when a halftone is offered on
multiple devices it is the same.)
The Color LaserJet 5/5M completely broke with this tradition, and offered
only "unpredictable", or device specific, halftones. This was accomplished
by adding five new halftone algorithms to the previously existing set of 15,
and on the Color LaserJet 5/5M, remapping all of the existing algorithms
that require halftoning (algorithms 1 and 2 do not) to these five.
The "predictability" of a halftone is potentially of great significance in
PCL 5c, because of the manner in which HP chose to implement raster
operations. These are defined on a pixel-by-pixel basis after halftoning
(at least, where such a definition is possible; see the contone discussion
below for further information). Hence, when using raster operations to
combine objects rendered with two different halftones, the order in which
a halftone darkens pixels is of great significance: given two objects of
approximately 50% intensity and an exclusive-or raster operation, the
resulting region may be solidly colored, fully white, or anything in
between.
The Artifex interpreter provides the full set of rendering algorithms that
use "predictable" halftones, and except for the case of the noise ordered
dither, the halftone used is identical to that used by HP devices prior
to the Color LaserJet 5/5M. The halftone provided for noise-ordered
dither is only roughly similar to that provided by HP, but this should
not cause a problem in practice. Though in principle "predictable", the
noise ordered dither used on HP devices is so large (128 x 128 pixels)
that no application could reasonably take advantage of its ordered
property.
The Artifex interpreter provides no device-specific halftones because it
is impossible to know a priori what output device it will be used with.
Mechanisms are provided to allow device-specific halftones to be assigned
to specific rendering methods--see the accompanying interface description
for more information. All of the rendering algorithms that would normally
use a device specific halftone have been remapped to a method that uses
a predictable halftone. A mechanism is available for modifying this
mapping; again, see the interface document for details.
The Artifex interpreter supports user-downloaded threshold (dither) arrays,
which are supported by all recent HP color devices except the Color
LaserJet 5/5M. If desired, this support can be disabled by remapping the
corresponding render algorithms (9 and 10) via the mechanism noted above;
by default, however, these are not remapped.
In practice, this implies that halftoned output produced by the unmodified
Artifex PCL 5c interpreter will have a very different appearance from that
produced by the Color LaserJet 5/5M, even when the former is output on the
5/5M. (There are also other complications, which are described further
below.) In general, the output from the Artifex interpreter will be similar
to that of the original Color LaserJet and the HP DeskJet 1200 and 1600
C/CM printers. This is a reflection of a different configuration rather
than a fundamental difference in the interpreter.
Raster Operations, device pixel depth
In any industry that undergoes rapid technological evolution, any technical
term that becomes significant for purposes of marketing tends to lose its
technical meaning, as manufacturers shift the definition to show their
products in the best light. Such has been the case for the term "resolution"
when used with respect to inkjet and laser printers.
HP does not provided a resolution specification for the Color LaserJet 5/5M.
It does, however, claim "1200 dpi" equivalent performance, via the use of
"resolution enhancement technology" (RET).
Based on the traditional metric, namely, the thinnest horizontal and
vertical pure color line that can be drawn, the Color LaserJet 5/5M is
a 300 dpi device. The resolution enhancement technology used by HP
provides for more rapid modulation of the laser in the fast-scan
direction (the long edge of a letter or A4 page). This is used as part of
a halftoning technique that produces thinner lines in the slow-scan
direction than would be indicated by the 300 dpi resolution. This makes
the printer somewhat of a contone device, with between 8 and 16 levels
per pixel in each color plane.
Based on empirical evidence, HP does not make use of this contone capability
in a direct manner. Rather, the level used for a specific pixel is based
both on the color of that pixel and on the colors for a small number of
nearest neighbor pixels. A likely reason for this is that PCL rasters are
traditionally bi-level in each color plane (this is true for all of the
default or "fixed" color palettes), and the printer will only support
input resolutions to 300 dpi.
A side-effect of this arrangement is to make the effect of general raster
operations completely unpredictable; indeed, much less predictable than
would be indicated by usage of "unpredictable" halftones. For actual
applications this is almost never visible, but in several of the tests
in the PCL 5c FTS, the results on the Color LaserJet 5/5M bear only
slight resemblance to what is documented and what is produced by other
PCL 5c printers. In these cases, the Artifex PCL 5c interpreter
follows the documentation, as the results produced by the CLJ 5/5M seem to
be extremely specific to that device.
Color Correction
The Color LaserJet 5/5M provides sets of two device dependent and three
device independent color spaces. One of the latter is not, however, a fully
device independent color space: the "Colorimetric RGB" space is documented
as a device independent color space but is implemented as a set of lookup
tables based on the device-dependent RGB space (all above board: this
arrangement is noted in the documentation).
The implementation of the device dependent color spaces is simple enough,
with the exception of some peculiar color correction applied to the fixed
color spaces. The latter is discussed below. The implementation in the
Artifex code matches that of the Color LaserJet 5/5M quite closely in this
area, with the exception of the color correction anomaly.
The device independent color spaces are another matter entirely. Nothing can
be said directly about the "Colorimetric RGB" space since this is not
actually supported. The documentation for this format does, however, include
several parameters whose significance is, at best, obscure. The definition
of the chromaticities of the primaries is straightforward enough, and the
specification of gamma parameters for the components is reasonably
standard (though why the language provides for both a per component gamma
specification and a per-component, per-color-space lookup table is less
clear). The gain parameter, on the other hand, is not standard, and we
could find no description in the literature as to what it might mean. Based
on empirical work using the luminance-chrominance color space (which uses
the same parameter for its base color space), we have implemented the
gamma and gain parameters as:
out = 1.0 - (1.0 - pow(in, 1/gamma)) / gain
The CIE L*a*b* color space provided by the Color LaserJet 5/5M is also
somewhat peculiar. Its most unusual property is that an L* value 0 does not
yield black but rather a fairly solid red. This leaves one at somewhat of a
loss as to what the L* parameter is intended to correspond to. In any event,
after prior discussions with the OEM customer, the Artifex interpreter
was built to use the CIE specified conversion from L*a*b* to XYZ (the
color rendering dictionary converts the latter to device colors). The
difference between the two is visible in several of the tests of the PCL
5c FTS.
The default color correction information provided with the Artifex
interpreter assumes the output device has uncorrected SMPTE primaries. This
is, of course, not likely to be correct for any actual output device. The
output observed using device independent color spaces will be incorrect
unless a suitable color rendering dictionary has been installed. How this
may be accomplished is described in the accompanying interface document.
Device dependent color correction
The fixed or "simple" color space palettes provided with the Color LaserJet
5/5M are ostensibly variations of the device-dependent RGB color space.
However, unlike the latter, the "simple" color spaces produce different
results when used for raster as opposed to geometric objects: red becomes
orange, green becomes notably lighter in shade, cyan becomes nearly blue,
and blue becomes deep purple. This effect is quite noticeable and is only
present on the Color LaserJet 5/5M; other HP printers do not show this
effect.
Because rasters rendered with the simple color spaces generate output much
more "quickly" than rasters generated with the equivalent writeable color
palette by a factor of about 3, it is our belief that the simple color
space raster palettes represent the true colors of the device primaries,
and that color correction is applied to colors used with geometric objects
to make them more nearly match what is expected of these colors.
The Artifex PCL 5c interpreter does and, and indeed cannot, provide the
same form of correction. In the 5c interpreter, geometric and raster
objects that use the same color will have identical appearance. Hence,
rasters produced with simple color space in the Artifex interpreter will not
have the same appearance as those produced by the Color LaserJet 5/5m.
View Illuminant
For reasons that are likely specific to the implementation, the view
illuminant setting on the Color LaserJet 5/5m only affects rasters, not
geometric objects. The Artifex interpreter does not replicate this
behavior: the view illuminant setting affects all output. This leads to
different output on one of the tests of the PCL 5c FTS.
Default Colors
HP specifies that up to the first eight entries of each palette be given
a set of default, device dependent primary colors. Furthermore, these colors
are not affected by color lookup tables for the device independent color
spaces, but are affected by lookup tables for the appropriate device
dependent color space.
This effect is difficult to achieve given the design of the Artifex
interpreter and its underlying graphic library. The effect is also of
questionable merit: why use a device-dependent default color with a
device independent color space? Hence, in the Artifex interpreter, the
default colors used with device independent color spaces are themselves
device independent, and are affected by all applicable color lookup
tables.
Transparency
The implementation of transparency in the Artifex PCL 5c interpreter
closely follows that of HP interpreters, with one major exception. In HP
interpreters, the determination of which colors are white is made at the
device level, immediately before dithering. In the Artifex interpreter,
the same determination is made at the source color level, after consider-
ation of the black and white reference points but before any other color
transformation. This is arguably a bug but one that is difficult to remedy
given the design of the underlying graphic library.
In practice, this difference is not visible in application files, and is
visible in test files in only two cases: when using an inverting color
lookup table, and when using rendering algorithm 2 (map black to white and
all other colors to black). Both of these situations arise in a small
number of tests in the PCL 5c FTS.
Pixel Placement
Though the definition of pixel placement is consistent across all PCL 5c
implementations from HP, the set of objects affected is not. In all cases
pixel placement affects rectangles in PCL and polygon fills in GL, and do
not affect PCL rasters. For all devices except the Color LaserJet 5/5M,
pixel placement does not affect text; this is also the documented behavior.
For the CLJ 5/5M, pixel placement affects the rendering of scalable fonts,
but does so in a manner not consistent with its effects on other objects
(an extra pixel is added on each side of the character, as opposed to just
the right and bottom sides).
The Artifex PCL 5c interpreter adheres to the documented behavior: only
PCL rectangles and polygon fills in GL/2 are affected by pixel placement
(currently there is a bug that causes the pixel placement command in
GL/2 to have incorrect behavior, but the design intent is as stated).
Driver configuration parameters
The Artifex PCL 5c interpreter does not implement the driver configuration
command. This causes several tests near the end of the PCL 5c FTS to
produce different results than is the case for the Color LaserJet 5/5M.
Difference in specific tests of the PCL 5c FTS
54:
The line "12345..." is printed in an 8 pt. version of the default
proportionally spaced font. In the Artifex interpreter, this is a Times
font, as it is for the Color LaserJet 5/5M, but not with the same spacing.
65, 75, 85, 95, 103:
The raster in each of these tests is printed in a "simple" color space
(fixed palette). As described above, the colors in these color spaces
vary between geometric objects and rasters for the Color LaserJet 5/5M,
but not for the Artifex interpreter. Hence, the colors for the raster
will appear different in the two interpreters.
140, 143:
The vertical bar character is from the bitmap lineprinter font on
the HP and from the Courier font on the Artifex interpreter, hence
the differences in the length of the bars.
273, 274, 275, 276, 284, 285, 286:
Symbol set differences.
310, 320:
These two panels are printed with the printer's "line printer" font.
On the HP DJ 1600C/CM and the CLJ 5/5M, this is a bitmap font that is
not scalable and is offered in only one size, hence its size does not
change with pitch. On the Artifex system, the scalable Courier font is
substituted for the line printer font. This font does change pitch as
requested in the tests.
403, 412:
The Univers Condensed font provided with the Artifex PCL interpreter
has all characters condensed. In the version of the same font provided
by HP, certain "universal" characters (characters that are independent
of font style), are not condensed.
411 (et. al.):
The lower case 't' in the downloaded Park Avenue font contains a malformed
outline. This is handled differently by the Intellifont font scaler
provided with the Artifex PCL interpreter than by the scaler provided with
HP PCL implementations.
422:
The default vertical offset applied to floating underlines by the Artifex
PCL interpreter is not the same as that provided by HP PCL interpreters.
441 - 443, 450 - 512:
The fonts provided with the Artifex PCL 5 interpreter are TrueType fonts,
which use the Unicode encoding scheme. The corresponding fonts in the
Color LaserJet 5/5M are Intellifont fonts, which use the MSL encoding
scheme. Thus, downloaded symbol sets that use the MSL coding scheme
can be used with the resident fonts of the Color LaserJet 5/5M, but not
with the resident fonts provided with the Artifex interpreter. Similarly,
downloaded symbol sets that use the Unicode encoding scheme can be used
with fonts provided with the Artifex interpreter, but not with those
provided with the CLJ 5/5M.
520, 521:
Symbol set discrepancies.
680 - 682:
These rasters are generated in a simple color space, and thus have the color
anomalies described in the first section of this document.
701:
The length of the bitarray for the third and fourth pair of raster
(magenta and yellow) differ from those on the HP CLJ 5/5M.
The output of the Artifex interpreter matches that of the HP DJ 1600C/CM.
The output of the CLJ 5/5M is contrary to the documentation, and likely
a limitation of the particular implementation due to the interaction
between rasters and the hardware dither method.
714:
On the Color LaserJet 5/5M, two of the white gaps between the cyan lines
appear to be wider than the others (after the 48th line and 98th cyan
lines). These larger gaps are not present in the input data, and are
probably due to a resonance phenomenon between the raster and the
resolution enhancement technology used by the CLJ 5/5M. This behavior
is not reproduced in the Artifex PCL 5c interpreter.
721:
This raster are generated in a simple color space, and thus has the color
anomalies described in the first section of this document.
722:
On the Color LaserJet 5/5M, the first of the shorter, magenta raster lines
appears to be thinner than the others. In the input data all of the lines
are the same width, and there is no apparent reason for the thinness of
the first line. The Artifex PCL 5c interpreter does not replicate this
anomaly.
750:
In the third row, the row with the greatest reduction in scale, the first
(thinnest) bar of the raster completely disappears on the Color LaserJet
5/5M, but not with the Artifex PCL 5c interpreter.
Whether a given artifact of a raster appears or disappears when scaled down
is a property of the specific raster scale implementation used. There is
no reason to expect the results to be the same across two implementations,
and little reason to try to make them the same.
800 - 804:
Each of the "bars" in these test are rendered in a different color space,
in the sequence RGB, CMY, Colorimetric RGB, CIE L*a*b*, Luminance-
Chrominance. The final three bars are in device independent color spaces,
hence their appearance will vary based on the color rendering
dictionary provided.
Note also that fourth bar in tests 800 and 803 reflect the implementation
of the CIE L*a*b* color space in the Color LaserJet 5/5M, which renders
colors with the value of L* = 0 as red rather than black.
811
Each raster in this example is rendered in a different color space, in the
sequence RGB, CMY, Colorimetric RGB, CIE L*a*b*, and Luminance-Chrominance.
Hence, the appearance of the last three rows will depend on the color
rendering dictionary provided. For the fourth raster, the different
implementations of the CIE L*a*b* color spaces is also evident.
813:
The first two rasters are printed in RGB and CMY color spaces, with the
white and black points reversed. Due to an error in the implementation
of transparency in the CLJ 5/5M, this causes BOTH white and black to be
considered transparent, which in turn causes the center region to be
fully transparent.
The Artifex implementation does not have this bug, hence either the
black triangles or the black background of this region is visible.
The additional three rasters are printed in device-independent color spaces,
hence their appearance is dependent on the color rendering dictionary
provided.
830, 831:
A number of differences between the Artifex PCL 5c interpreter and the
CLJ 5/5M are visible in these tests:
1. The Artifex PCL 5c interpreter, in its default form, supports the
rendering methods with predictable halftones, and does not support
the rendering methods with unpredictable or device-specific halftones.
The CLJ 5/5M has the reverse arrangement. In particular, the Artifex
interpreter supports user downloaded dithers, which the CLJ 5/5M
does not.
2. The Artifex PCL 5c interpreter determines which pixels are "white"
for purposes of transparency prior to the effects of the color mapping
implied by the rendering algorithm; the CLJ 5/5M makes this same
determination after such color mapping. This is most visible in the
case of render algorithm 2 (prominent horizontal black lines in both
tests), where the output from the Artifex interpreter is transparent
while that of the CLJ 5/5M is opaque.
3. The Artifex PCL 5c interpreter, in common with most HP implementations
of PCL 5c, implements render algorithm 1 (snap to primaries) after
applying gamma correction. The CLJ 5/5M is exceptional in this area in
snapping the colors to primaries before applying gamma correction.
Hence, when using render algorithm 1, the output of the Artifex
interpreter (and most HP PCL 5c interpreters) is always a solid
primary color, while for the CLJ 5/5M it may be a halftoned color.
This difference is visible in the latter part of test 831.
4. The final two columns of tests 830 and 831 represent a non-solid
raster object combined with a non-solid foreground, using logical
operation 252. Especially for the larger gamma values, the appearance
of the result is critically dependent on the nature of the halftones
used for the raster and the foreground. In the Artifex PCL 5c
interpreter, the halftones used cause these regions to become white
more rapidly than is the case for the CLJ 5/5M.
833:
Each pair of lines in this example constitutes a pair of rasters. The
data for each raster pair is the same, only resolution is changed.
A bug in the CLJ 5/5M interpreter, also evident in test 701, results in
the improper rendering of raster output at 100 and 150 dpi in some
situations. The Artifex PCL 5c interpreter does not mimic this bug,
hence the different appearance of the output.
853:
The modified render algorithm referred to in the fourth line of this test
is render algorithm 10, monochrome user defined dither. This render method
is supported by the Artifex PCL 5c interpreter (in its default form),
but not by the CLJ 5/5M. Hence the different appearance. Note also that
the final foreground for the fourth line is used to draw the text for
the final, fifth line of the test, so its appearance is modified as well.
860 - 865:
See discussion for test 830 and 831.
866:
The different appearance of this test between the Artifex PCL 5c
interpreter and the Color LaserJet 5/5M is due to the different halftones
used.
871:
The final three rows of rectangles in this example are rendered in a device
independent color space, hence their appearance will depend on the nature
of the color rendering dictionary provided. In the default configuration,
these rectangles have a yellow hue where white would be expected.
883:
The output from the Artifex PCL 5c interpreter matches the documented
behavior, and the behavior of HP implementations other than the CLJ 5/5M.
For reasons that are not clear, the CLJ 5/5M will print a faint outline
of "Text" for the rightmost instance of this string in the first line
of the test. Examination under magnification reveals that this outline
is smaller than the design resolution of the device, so this may be a
print engine artifact.
956:
The rectangle on the right is printed with a transparent pattern. This
produces the expected output on the HP 1600C/CM and with the Artifex PCL
interpreter. It does not produce the expected output for the HP CLJ 5/5M,
apparently due to a bug.
974:
See the discussion for test 830. This particular example also demonstrates
a situation in which different color mapping methods are being used for the
foreground and the raster being printed. For reasons that are not yet
clear, this (highly unusual) combination is not properly supported by the
graphic library underlying the Artifex PCL 5c interpreter.
980, 981:
1. The raster operation mechanism of the CLJ 5/5M is broken, and thus
cannot be used as a reliable comparison (see notes at the start of
this document).
2. The implementation of opaque text for scalable fonts in the
Artifex PCL 5c interpreter is somewhat imperfect. The implementation
requires both inside and "outside" of a path to be filled, in
independent operations. The two filled regions do not join exactly,
hence a faint outline of the original character is usually visible.
3. When compared to the documented behavior, the behavior of the Artifex
interpreter varies in some of the opaque source, transparent pattern
cases. We have not yet analyzed why this is the case, but do not
expect it to cause difficulty in practice.
983:
The behavior of the Artifex PCL 5c interpreter matches the documented
behavior, and the behavior of HP devices other than the CLJ 5/5M. Raster
operations on the CLJ 5/5M are broken.
1053:
The behavior of the Artifex PCL 5c interpreter matches the documented
behavior, and the behavior of HP devices other than the CLJ 5/5M. The
behavior of the CLJ 5/5M is apparently a bug.
1402 (et. al.):
The filling of GL/2 polygon regions with lines in the Artifex PCL 5c
interpreter is not completely accurate. Line space and phasing are both
incorrect. These bugs are present in many other GL/2 tests as well.
1440 - 1446 (et. al.):
When using GL/2 line fills, the Artifex PCL 5c interpreter clips the
rendered representation of the line, rather than the path along which
the line is to be drawn. This difference is evident in the pie wedges
used in this set of tests, and many others.
1463, 1463:
The patterned line fills used in these two tests vary in appearance
between the CLJ 5/5M and the Artifex PCL 5c interpreter because
the latter does not properly set the phase of GL/2 line fills.
1601, 1602:
The GL/2 label printing command ("LB") in the Artifex PCL 5c interpreter
does not set the initial position of text correctly when printing in the
vertical direction.
1641:
The handling of horizontal tab in GL/2 differs between the Artifex PCL 5c
interpreter and the CLJ 5/5M.
1642, 1650:
The position of the label origin in GL/2 varies between the Artifex PCL 5c
interpreter and the CLJ 5/5M.
1680:
The character sets supported by the fonts used in Artifex PCL 5c
interpreter, in its default form, are not the same as those supported by
the fonts in the CLJ 5/5M.
1752, 1753 (et. al.):
The lower-case 'a' in the GL/2 stick font provided with the Artifex PCL 5c
interpreter is a different style than that of the stick font in the
CLJ 5/5M. This difference is also evident in other tests.
1860, 1862, 1863:
The position of the GL/2 label origin in the Artifex PCL 5c interpreter is
not accurate. This is particularly noticeable for arbitrary transformations
of text, as in the first two tests cited.
1894, 1895 (et. al.):
For reasons that are not completely clear, the dashed lines used for
patterned line fills in this example are completely solid in the Artifex
PCL 5c interpreter. This is a bug.
In these and many other tests, the Artifex PCL 5c interpreter appears to
use the incorrect line pattern size (dash length). The cause of this
problem has not yet been determined.
2003:
The Artifex PCL 5c interpreter apparently misplaces the label origin for
the latter half of the text in this file (the HPGL Demo part). This problem
has not yet been analyzed. A similar problem is evident on a number of the
subsequent tests.
2040 - 2070:
The GL/2 clipping behavior of the Artifex PCL 5c interpreter is not
identical to that of the CLJ 5/5M.
2080:
The scaling of the rightmost imported image in this test is
different than the HP printer. The artifex interpreter complies
with the HP PCLTRM. The following test shows that simply entering
and leaving HPGL/2 <ESC>%OB<ESC>%0A has the side effect of
resetting HPGL/2 scaling. This should not happen according to
PCLTRM 18-17.
<ESC>E
<ESC>*c720X
<ESC>*c0T
<ESC>*c8.3K
(1) <ESC>%0B /* enter hpgl2/2 */
(2) <ESC>%0A /* enter pcl */
<ESC>*c420Y
<ESC>*c0T
<ESC>%1BSP2;PW0;IN;SP6;SC0,100,0,100;PA50,50;SC;SP7;CI450;
<ESC>%1A
<ESC>E
the two commands (1) and (2) change the behavior the HP scaling
but not Artifex Scaling. If (1) and (2) are removed both HP and
Artifex produce the same results.
2101, 2102:
See comments for test 830 and 831.
2106:
Logical operations are broken on the CLJ 5/5M. The behavior of the Artifex
PCL 5c interpreter follows the documentation.
2120, 2122:
HPGL/2 pixel placement is implemented using the postscript
operator setfilladjust. The HP command definition is not consistant with
the behavior of the implementation and different devices (Color
Laserjet & 6MP) produce different results for each of these test files.
2210 (fourth page):
The scaling of the output differs between the Artifex PCL 5c interpreter
and the CLJ 5/5M. This problem has not yet been analyzed.
2210 (fifth page):
The output for the upper half of the page differs between the CLJ 5/5M
and the Artifex PCL 5c interpreter. This problem has not yet been analyzed.
2220:
See comments for test 2210.
2322, 2323:
Because the Artifex PCL 5c interpreter determines which regions are "white"
for purposes of transparency before taking into account any color lookup
table modifications, the white arrows in the center of these images are
considered transparent even in the center case (the inverting color
lookup table). Hence, for the inverting color lookup table case, the
central rectangle of the raster will be completely white.
2330:
The CLJ 5/5M does not support the viewing illuminant command; the Artifex
PCL interpreter does.
2331:
These rasters are rendered in a device independent color space, hence
their appearance will be dependent on the color rendering dictionary
provided.
2351, 2352:
The driver configuration command is not implemented in the Artifex PCL
5c interpreter.
2412:
After downloading a color lookup table, the monochrome palettes at the
bottom of the first and second pages of this test have one additional
black entry when rendered with the Artifex PCL 5c interpreter, as compared
to the output of the CLJ 5/5M. This problem has not been analyzed.
|