Welcome to Ed Chapman's PDF Issues Page

image Location: http://rocws01011/PDFissues.html image Mar 21, 2006 image
image
Recent projects Image Editor tool cool internal links
Documentation My Calendar Phone / Email
PDF Issues DHV Custom Issues Codev Issues
401K helper Old Work Pages

Home Kids Buick's
Links Parents Laughs

image
This page will be used to track issues around PDF for the DHV RIP. Typically it is in chronological order so the newest information is at the bottom.

Overview of how the 01.50.00 PDF code works.

In the 01.50 release the PDF code loops on pages within the valid page range. It checks the page size using the PDPageGetSize procedure. This is supposed to return the page size based on the media box or if EPS the crop box (however there is at least one test case where this fails see PR 9012 page 1). Next the rotation is checked with the PDPageGetRotate procedure and the PageSize X and Y values are swapped if the rotation is 90 or 270 degrees. This is needed since camelot determines the orientation by these X and Y values. If the page size is not within 5 points of the previous page size (which is always the case on page 1) an in-line setpagedevice is issued so subsequent pages can inherit the page device around the save and restore operators executed around each page. A flag is turned on to allow a setpagedevice to be embedded in the PostScript file that is created for each page in the PDF to PostScript conversion and this conversion is done with a ConvertPDFToPS procedure call. An in-line save is done due to a known VM memory leak which Adobe is aware of (PR 6805). The stream object (PostScript file) is handed off to camelot and it converts the page to raster like any PostScript file with the procedure PSExecuteObject. If a KDK or DSC has selected a media for this page (e.g. %KDKBody:) then the setpagedevice is not honored. An in-line restore is then executed and it goes on to the next page. We don't want to issue a setpagedevice on each page since it always causes a force front.

Overview of PDF job that exposes the following issues

This came from PR9012 and is 64 pages. image Click Me for the PDF job. Acrobat displays all the pages as 6.5 by 9 inches in a portrait orientation and page 2 is blank. When printing on a DHV machine the several issues come up. It can't print without a %KDKBody, if it has one page 1 comes out blank and the other pages aren't centered.

Page PageSize Rotate MediaBox CropBox BoundingBox InLine SPD File SPD
1 [468 648] 0 [0 0 1296 864] [648 108 1116 756] [648 108 1116 756] [468 648] [1296 864]
2 [468 648] 0 [0 0 468 648] [0 0 468 648] [0 0 468 648] [468 648] [468 648]
3 [468 648] 0 [0 0 468 648] [0 0 468 648] [115 127 437 602] [468 648] [468 648]

This is how the page 1 image fits in it's MediaBox
image

This is how the the other pages images fits in their MediaBox (same size as image)
image
On the current DHV printer you can tell how the images will be placed on paper by placing the real media used in the [0 0] bottom left corner. For example, if a body media of [612 792] is used page 1 will be blank since the image falls off the page. Page 2 will will print with the image in the lower left corner.


Issue 1 - if page size used in setpagedevice not a valid media size

You can have many different image sizes in a PDF file. The image sizes from the PDF file on PR 9012 are 6.5 by 9 inches which gives a PageSize of [468 648]. Acrobat displays the images as 6.5 by 9 inches. The PDF code will generate a setpagedevice based on this size. If a KDK or DSC has not selected a media for this page thus ignoring the setpagedevice an error occurs like: "%%[Error: configureationerror: OffendingCommand: setpagedevice; ErrorInfo: PageSize --nostringval--]%% since [468 648] is not a valid media size for DHV. This is an issue for PostScript files that use setpagedevice too. See PR 8974 or PR 9012 for an example.
Some possible changes would be to have camelot support other policies such as select an alternate medium that is either the nearest in size or the next largest to the requested PageSize. If we center PDF images like Acrobat (see Issue 3) this would be resolved for PDF.

Issue 1 - Resolution in 01.51.00 release

The goal is to have a nearest next largest media selection in release 01.51.00 if the media width or height is not within 5 points of a valid media size. Booklet only sizes, tab media, manual (9x12) and 8x10_5 are not valid. There will be a flag in the /hp/etc/rip.pids file (default true) which uses the printer's default media to determine if a metric or US standard media is used. Orientation of the setpagedevice is Preserved. If the requested size is larger than the largest valid media, the largest valid media will be used and clipping may occur (no other cases will clip). Some examples are below. In is the requested size, Match is either on ANY media or standard only or metric only. Out is the setpagedevice issued.
In=[ 612  792] Match=Any Out=[ 612  792]
In=[ 792  612] Match=Any Out=[ 792  612]
In=[ 612 1008] Match=Any Out=[ 612 1008]
In=[1008  612] Match=Any Out=[1008  612]
In=[ 792 1224] Match=Any Out=[ 792 1224]
In=[1224  792] Match=Any Out=[1224  792]
In=[ 595  842] Match=Any Out=[ 595  842]
In=[ 842  595] Match=Any Out=[ 842  595]
In=[ 842 1191] Match=Any Out=[ 842 1191]
In=[1191  842] Match=Any Out=[1191  842]
In=[ 612  792] Match=Std Out=[ 612  792]
In=[ 792  612] Match=Std Out=[ 792  612]
In=[ 612 1008] Match=Std Out=[ 612 1008]
In=[1008  612] Match=Std Out=[1008  612]
In=[ 792 1224] Match=Std Out=[ 792 1224]
In=[1224  792] Match=Std Out=[1224  792]
In=[ 595  842] Match=MET Out=[ 595  842]
In=[ 842  595] Match=MET Out=[ 842  595]
In=[ 842 1191] Match=MET Out=[ 842 1191]
In=[1191  842] Match=MET Out=[1191  842]
In=[ 612  792] Match=MET Out=[ 842 1191]
In=[ 792  612] Match=MET Out=[1191  842]
In=[ 612 1008] Match=MET Out=[ 842 1191]
In=[1008  612] Match=MET Out=[1191  842]
In=[ 792 1224] Match=MET Out=[ 842 1191]
In=[1224  792] Match=MET Out=[1191  842]
In=[ 595  842] Match=Std Out=[ 612 1008]
In=[ 842  595] Match=Std Out=[1008  612]
In=[ 842 1191] Match=Std Out=[ 792 1224]
In=[1191  842] Match=Std Out=[1224  792]
In=[   1    1] Match=Any Out=[ 612  792]
In=[   1    1] Match=Any Out=[ 612  792]
In=[   1    1] Match=Std Out=[ 612  792]
In=[   1    1] Match=Std Out=[ 612  792]
In=[   1    1] Match=MET Out=[ 595  842]
In=[   1    1] Match=MET Out=[ 595  842]
In=[9999 9999] Match=Any Out=[ 842 1191]
In=[9999 9999] Match=Any Out=[ 842 1191]
In=[9999 9999] Match=Std Out=[ 792 1224]
In=[9999 9999] Match=Std Out=[ 792 1224]
In=[9999 9999] Match=MET Out=[ 842 1191]
In=[9999 9999] Match=MET Out=[ 842 1191]
In=[ 617  792] Match=Any Out=[ 612  792]
In=[ 792  617] Match=Any Out=[ 792  612]
In=[ 607 1008] Match=Any Out=[ 612 1008]
In=[1008  607] Match=Any Out=[1008  612]
In=[ 797 1224] Match=Any Out=[ 792 1224]
In=[1224  797] Match=Any Out=[1224  792]
In=[ 590  842] Match=Any Out=[ 595  842]
In=[ 842  590] Match=Any Out=[ 842  595]
In=[ 847 1191] Match=Any Out=[ 842 1191]
In=[1191  847] Match=Any Out=[1191  842]
In=[ 627  792] Match=Any Out=[ 792 1224]
In=[ 792  627] Match=Any Out=[1224  792]
In=[ 207 1008] Match=Any Out=[ 612 1008]
In=[1008  207] Match=Any Out=[1008  612]
In=[ 799 1224] Match=Any Out=[ 842 1191]
In=[1224  799] Match=Any Out=[1191  842]
In=[ 599  842] Match=Any Out=[ 595  842]
In=[ 842  599] Match=Any Out=[ 842  595]
In=[ 447 1191] Match=Any Out=[ 792 1224]
In=[1191  447] Match=Any Out=[1224  792]

Issue 1 - Resolution in 03.02.00 release

Jan 07, 2000 It works the same as earlier releases except there is a new 9x14 inch media and it will match on any valid media if Match = ANY including tab stock. Match = ANY would still have to be set in the /hp/etc/rip.pids file. The product ships with only common metric or standard media choices based on default media. Common standard isletter, legal or tabloid only while common metric is A3 or A4 only. This table is generated with the media matching unit test program MediaMatchUnitTest (found in $HP/src/lib/lts).
In=[ 612  792] Match= ANY Out=[ 612  792]
In=[ 792  612] Match= ANY Out=[ 792  612]
In=[ 612 1008] Match= ANY Out=[ 612 1008]
In=[1008  612] Match= ANY Out=[1008  612]
In=[ 792 1224] Match= ANY Out=[ 792 1224]
In=[1224  792] Match= ANY Out=[1224  792]
In=[ 595  842] Match= ANY Out=[ 595  842]
In=[ 842  595] Match= ANY Out=[ 842  595]
In=[ 842 1191] Match= ANY Out=[ 842 1191]
In=[1191  842] Match= ANY Out=[1191  842]
In=[ 648 1008] Match= ANY Out=[ 648 1008]
In=[1008  648] Match= ANY Out=[1008  648]
In=[ 576  756] Match= ANY Out=[ 576  756]
In=[ 756  576] Match= ANY Out=[ 756  576]
In=[ 648  864] Match= ANY Out=[ 648  864]
In=[ 864  648] Match= ANY Out=[ 864  648]
In=[ 648  792] Match= ANY Out=[ 648  792]
In=[ 792  648] Match= ANY Out=[ 792  648]
In=[ 638  842] Match= ANY Out=[ 638  842]
In=[ 842  638] Match= ANY Out=[ 842  638]
In=[ 612  792] Match= Std Out=[ 612  792]
In=[ 792  612] Match= Std Out=[ 792  612]
In=[ 612 1008] Match= Std Out=[ 612 1008]
In=[1008  612] Match= Std Out=[1008  612]
In=[ 792 1224] Match= Std Out=[ 792 1224]
In=[1224  792] Match= Std Out=[1224  792]
In=[ 595  842] Match= MET Out=[ 595  842]
In=[ 842  595] Match= MET Out=[ 842  595]
In=[ 842 1191] Match= MET Out=[ 842 1191]
In=[1191  842] Match= MET Out=[1191  842]
In=[ 612  792] Match= MET Out=[ 842 1191]
In=[ 792  612] Match= MET Out=[1191  842]
In=[ 612 1008] Match= MET Out=[ 842 1191]
In=[1008  612] Match= MET Out=[1191  842]
In=[ 792 1224] Match= MET Out=[ 842 1191]
In=[1224  792] Match= MET Out=[1191  842]
In=[ 595  842] Match= Std Out=[ 612 1008]
In=[ 842  595] Match= Std Out=[1008  612]
In=[ 842 1191] Match= Std Out=[ 792 1224]
In=[1191  842] Match= Std Out=[1224  792]
In=[ 648 1008] Match= Std Out=[ 792 1224]
In=[1008  648] Match= Std Out=[1224  792]
In=[ 576  756] Match= Std Out=[ 612  792]
In=[ 756  576] Match= Std Out=[ 792  612]
In=[ 648  864] Match= Std Out=[ 792 1224]
In=[ 864  648] Match= Std Out=[1224  792]
In=[ 648  792] Match= Std Out=[ 792 1224]
In=[ 792  648] Match= Std Out=[1224  792]
In=[ 638  842] Match= Std Out=[ 792 1224]
In=[ 842  638] Match= Std Out=[1224  792]
In=[   1    1] Match= ANY Out=[ 576  756]
In=[   1    1] Match= ANY Out=[ 576  756]
In=[   1    1] Match= Std Out=[ 612  792]
In=[   1    1] Match= Std Out=[ 612  792]
In=[   1    1] Match= MET Out=[ 595  842]
In=[   1    1] Match= MET Out=[ 595  842]
In=[9999 9999] Match= ANY Out=[ 842 1191]
In=[9999 9999] Match= ANY Out=[ 842 1191]
In=[9999 9999] Match= Std Out=[ 792 1224]
In=[9999 9999] Match= Std Out=[ 792 1224]
In=[9999 9999] Match= MET Out=[ 842 1191]
In=[9999 9999] Match= MET Out=[ 842 1191]
In=[ 617  792] Match= ANY Out=[ 612  792]
In=[ 792  617] Match= ANY Out=[ 792  612]
In=[ 607 1008] Match= ANY Out=[ 612 1008]
In=[1008  607] Match= ANY Out=[1008  612]
In=[ 647 1007] Match= ANY Out=[ 648 1008]
In=[1007  647] Match= ANY Out=[1008  648]
In=[ 797 1224] Match= ANY Out=[ 792 1224]
In=[1224  797] Match= ANY Out=[1224  792]
In=[ 590  842] Match= ANY Out=[ 595  842]
In=[ 842  590] Match= ANY Out=[ 842  595]
In=[ 847 1191] Match= ANY Out=[ 842 1191]
In=[1191  847] Match= ANY Out=[1191  842]
In=[ 627  792] Match= ANY Out=[ 648  792]
In=[ 792  627] Match= ANY Out=[ 792  648]
In=[ 207 1008] Match= ANY Out=[ 612 1008]
In=[1008  207] Match= ANY Out=[1008  612]
In=[ 647 1017] Match= ANY Out=[ 792 1224]
In=[1017  647] Match= ANY Out=[1224  792]
In=[ 799 1224] Match= ANY Out=[ 842 1191]
In=[1224  799] Match= ANY Out=[1191  842]
In=[ 599  842] Match= ANY Out=[ 595  842]
In=[ 842  599] Match= ANY Out=[ 842  595]
In=[ 447 1191] Match= ANY Out=[ 792 1224]
In=[1191  447] Match= ANY Out=[1224  792]

Issue 2 - Which setpagedevice to use

Should the PageSize setpagedevice be from the MediaBox (PDPageGetMediaBox) or PageSize (PDPageGetSize)? This needs to be addressed in conjunction with the other issues.

Issue 2 - Resolution in 01.51.00 release

The plan is to keep the PageSize as it is currently using the PDPageGetSize procedure in release 01.51.00 There will be a flag to use the MediaBox in the /hp/etc/rip.pids file.

Issue 3 - Should the image be centered like Acrobat does it?

There is a PDPageEmitPSOrient procedure which allows the image to be centered on the media by issuing translate and rotate operators. It appears to work like hitting the print button on Acrobat. The table below shows what translate/rotate values were used for given media sizes (the last 2 are not valid media sizes for DHV). In all the cases in the table the images were centered on the media. In one case the image was too large for the media in the original orientation and was rotated 90 degrees to fit. There is also a shrinkToFit option to the PDPageEmitPSOrient procedure which was not used.
MediaSize Rotate translate page 1 translate page 2
[612 792] 0 [-576 -36] [72 72]
[792 612] 90 [-576 -828] [72 -720]
[864 1296] 0 [-450 216] [198 324]
[1296 864] 0 [-234 0] [414 108]
[792 1224] 0 [-486 180] [162 288]

Issue 3 - Resolution in 01.51.00 release

The goal is to have auto centering of images on the media in release 01.51.00 There will be a flag to shut off auto centering in the /hp/etc/rip.pids

The greenish background in the following images is helpful when printing

With centering OFF this is how the images look viewed with ImageEd on letter media [792 612]
image image
With centering ON this is how the images look viewed with ImageEd on letter media [792 612]
image image
With centering OFF this is how the images look viewed with ImageEd on tabloid media [792 1228]
image image
With centering ON this is how the images look viewed with ImageEd on tabloid media [792 1228]
image image

The job from PR #9039

This 177 page job image Click Me for the PDF job. Acrobat displays all the pages as 7.5 by 9.01 inches in a portrait orientation. The PageSize is [540 649] or [792 792] is the MediaBox was used.
With centering OFF this is how the images look viewed with ImageEd on letter media [792 612]
image image
With centering ON this is how the images look viewed with ImageEd on letter media [792 612]
image image

The job from PR #8994

This 137 page job image Click Me for the PDF job. Acrobat displays all the pages as 6.0 by 9.0 inches in a portrait orientation. The PageSize and MediaBox is [432 648]
With centering OFF this is how the images look viewed with ImageEd on letter media [792 612]
image image
With centering ON this is how the images look viewed with ImageEd on letter media [792 612]
image image

Mixed Orientation Job

Here is how a first page portrait second page landscape appears using Acrobat
image
With centering OFF or ON this is how the images look viewed with ImageEd with no Body media (uses setpagedevice) or a BodyMedia [612 792]
image
With centering OFF or ON this is how the images look viewed with ImageEd with Body media [792 612]
image
This is how the images look viewed with ImageEd with Body media [792 612] when sending the PostScript file created with Acrobat or pre 01.51.00 versions of PDF with Body media [792 612].
image

PR9765 mini-pamphlet PDF jobs

A problem with centering and mini pamphlets for A4 or letter media (note legal pamphlets are not supported) is in rel 01.51.00
image
With centering OFF (in /hp/etc/rip.pids using the -f 2 option to camelot) or the proposed fix in either 01.51.01
image
The solution is to shut off auto-centering when the Media Size selected for use by camelot is within 5 point of either [396 612] or [421 595].
New for 01.51.02 - Auto Centering will be done for mini pamphlets by using a MediaSize that doubles the shorter dimension of the width or height and then switches the width and height. This accounts for camelot scaling and rotating the image when it rips the PostScript created by the PDF code. Prior to this the minipamhlets would be in the lower left corner of their side of the page. When images were not the same as the media size this would be noticed. This job demonstrates the problem image Click Me for the PDF job.
New for 02.02.01 - The PDF code will disable in-line setpagedevice calls if a %KDKBody: is used to request a body media. There is currently a problem where camelot allows these setpagedevice calls from PDF to override the media requested by the KDK. If our clients or downloaders ever change to not issue complete KDK sets then we also need to check for SLIPS and COVERS. This job demonstrates the problem The job would request letter media prior to this fix and A3 and A4 after. It's from pr 10719 with DSC's added. image Click Me

PDF 1.3 limitations when using 3010 May 08, 2001

The following PDF 1.3 feature will not be supported in the RIP release 3.x to 4.x releases

CFF fonts will not be handled - Courier will be substituted. The two most likely sources are from InDesign files saved as PDF 1.3 with the fonts sub-routinized, and distilled PDF files from Japanese OS's

CFF (Compact Font Format) which are Type2 fonts are a compact representation which enables multiple fonts to be stored in a unit called a FontSet. It represents one or more fonts based on the Type 1 charstring format. It retains full fidelity of the original font while achieving significant space reduction due to compact binary representation and sharing of data common to multiple fonts.

CFF fonts may be embedded in a PDF1.2 file with the following: Three objects included below from a PDF file show this is a Type1 CFF (compact font format). It must use the /FontFile3 key and /Subtype /Type1C There is no work around for this other than converting to PostScript until 3011 comes out.

8 0 obj
<< 
/Type /FontDescriptor 
/FontName /DBIMIA+Catull-Medium 
/Flags 1310770 
/FontBBox [ -190 -306 1271 930 ] 
/MissingWidth 250 
/StemV 155 
/StemH 35 
/ItalicAngle 0 
/CapHeight 706 
/XHeight 453 
/Ascent 706 
/Descent -250 
/Leading 341 
/MaxWidth 1250 
/AvgWidth 553 
/FontFile3 1752 0 R 
>> 
endobj


9 0 obj
<< 
/Type /Font 
/Subtype /Type1 
/Name /F1 
/BaseFont /DBIMIA+Catull-Medium 
/FirstChar 0 
/LastChar 255 
/Widths [ 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 
271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 
354 396 583 604 875 917 208 333 333 458 500 313 479 313 479 583 
583 583 583 583 583 583 583 583 583 354 354 500 500 500 625 896 
833 688 729 854 604 562 854 938 375 375 792 625 1083 917 917 625 
917 812 562 688 771 729 1250 812 729 792 375 479 375 729 500 271 
542 604 458 604 521 333 521 646 313 292 604 313 979 646 583 583 
604 437 437 313 646 521 854 562 521 521 354 229 354 729 271 833 
833 729 604 917 917 771 542 542 542 542 542 542 458 521 521 521 
521 313 313 313 313 646 583 583 583 583 583 646 646 646 646 500 
354 479 833 542 333 667 625 833 833 771 271 271 549 1000 917 713 
500 549 549 729 688 494 713 823 549 274 354 375 768 792 583 625 
354 667 549 479 549 612 521 521 1000 271 833 833 917 1146 875 604 
708 521 521 292 292 500 494 521 729 125 667 333 333 646 646 542 
313 313 521 1250 833 604 833 604 604 375 375 375 375 917 917 790 
917 771 771 771 313 271 271 271 271 271 271 271 271 271 271 ] 
/Encoding /MacRomanEncoding 
/FontDescriptor 8 0 R 
>> 
endobj

1752 0 obj
<< /Filter /FlateDecode /Length 1753 0 R /Subtype /Type1C >> 
stream ...(binary stream data)... 
endstream
endobj
How to tell if you have CFF fonts For pdf 1.3 The keys are /CIDFontType0 embedded using the /FontFile3 Key with /SubType /CIDFontType0C Here is an example:
200 0 obj
<< 
/Type /Font 
/BaseFont /WYUOZY+Times-Roman 
/Subtype /CIDFontType0 
/DW 1000 
/CIDSystemInfo << /Registry (Adobe)/Ordering (Identity)/Supplement 0 >> 
/W [ 0 [ 250 333 408 ] 3 4 500 5 [ 833 778 ] 7 9 333 10 [ 500 564 250 333 250 278 ] 
16 25 500 26 27 278 28 30 564 31 [ 444 921 722 ] 34 35 667 36 [ 722 611 556 ] 
39 40 722 41 [ 333 389 722 611 889 ] 46 47 722 48 [ 556 722 667 556 611 ] 
53 54 722 55 [ 944 ] 56 57 722 58 [ 611 333 278 333 469 500 333 444 500 444 500 444 333 ] 
71 72 500 73 74 278 75 [ 500 278 778 ] 78 81 500 82 [ 333 389 278 ] 
85 86 500 87 [ 722 ] 88 89 500 90 [ 444 480 200 480 541 333 ] 96 
97 500 98 [ 167 ] 99 102 500 103 [ 180 444 500 ] 106 107 333 108 
109 556 110 112 500 113 [ 250 453 350 333 ] 117 118 444 119 [ 500 ] 
122 [ 444 ] 123 135 333 137 [ 889 276 611 722 889 310 667 ] 144 
145 278 146 [ 500 722 500 300 564 400 500 722 500 611 500 750 564 611 750 722 500 
444 278 611 278 500 200 500 722 500 722 980 760 500 722 556 722 
611 722 ] 
181 183 500 184 [ 722 500 ] 186 187 444 188 [ 722 444 ] 190 191 
564 192 [ 300 722 500 ] 195 196 722 197 [ 444 278 722 333 ] 201 
203 722 204 [ 611 444 300 500 750 722 564 500 ] 212 213 444 214 
[ 278 333 444 333 760 333 667 389 444 722 556 444 722 444 250 ] 
] 
/FontDescriptor 201 0 R 
>> 
endobj

201 0 obj
<< 
/Type /FontDescriptor 
/FontName /WYUOZY+Times-Roman 
/FontBBox [ -168 -218 1000 898 ] 
/Flags 4 
/CapHeight 662 
/Ascent 0 
/Descent 0 
/StemV 84 
/ItalicAngle 0 
/XHeight 450 
/FontFile3 206 0 R 
>> 
endobj
bj
<< 
/Type /Font 
/BaseFont /WYUOZY+Times-Roman 
/Subtype /CIDFontType0 
/DW 1000 
/CIDSystemInfo << /Registry (Adobe)/Ordering (Identity)/Supplement 0 >> 
/W [ 0 [ 250 333 408 ] 3 4 500 5 [ 833 778 ] 7 9 333 10 [ 500 564 250 333 250 278 ] 
16 25 500 26 27 278 28 30 564 31 [ 444 921 722 ] 34 35 667 36 [ 722 611 556 ] 
39 40 722 41 [ 333 389 722 611 889 ] 46 47 722 48 [ 556 722 667 556 611 ] 
53 54 722 55 [ 944 ] 56 57 722 58 [ 611 333 278 333 469 500 333 444 500 444 500 444 333 ] 
71 72 500 73 74 278 75 [ 500 278 778 ] 78 81 500 82 [ 333 389 278 ] 
85 86 500 87 [ 722 ] 88 89 500 90 [ 444 480 200 480 541 333 ] 96 
97 500 98 [ 167 ] 99 102 500 103 [ 180 444 500 ] 106 107 333 108 
109 556 110 112 500 113 [ 250 453 350 333 ] 117 118 444 119 [ 500 ] 
122 [ 444 ] 123 135 333 137 [ 889 276 611 722 889 310 667 ] 144 
145 278 146 [ 500 722 500 300 564 400 500 722 500 611 500 750 564 611 750 722 500 
444 278 611 278 500 200 500 722 500 722 980 760 500 722 556 722 
611 722 ] 
181 183 500 184 [ 722 500 ] 186 187 444 188 [ 722 444 ] 190 191 
564 192 [ 300 722 500 ] 195 196 722 197 [ 444 278 722 333 ] 201 
203 722 204 [ 611 444 300 500 750 722 564 500 ] 212 213 444 214 
[ 278 333 444 333 760 333 667 389 444 722 556 444 722 444 250 ] 
] 
/FontDescriptor 201 0 R 
>> 
endobj
201 0 obj
<< 
/Type /FontDescriptor 
/FontName /WYUOZY+Times-Roman 
/FontBBox [ -168 -218 1000 898 ] 
/Flags 4 
/CapHeight 662 
/Ascent 0 
/Descent 0 
/StemV 84 
/ItalicAngle 0 
/XHeight 450 
/FontFile3 206 0 R 
>> 
endobj
202 0 obj
<< 
/Type /Font 
/BaseFont /QLVOZY+FuturaT-ExtraBold 
/Subtype /CIDFontType0 
/DW 1000 
/CIDSystemInfo << /Registry (Adobe)/Ordering (Identity)/Supplement 0 >> 
/W [ 0 [ 250 ] 1 2 737 3 [ 560 801 810 751 ] 7 12 639 13 16 613 17 20 
323 21 [ 629 ] 22 26 626 27 30 628 31 33 737 34 35 560 36 37 376 
38 [ 601 685 ] 40 41 810 42 [ 618 705 487 549 737 560 ] 48 49 376 
50 51 810 52 54 751 55 [ 410 441 ] 57 58 707 59 [ 1027 843 436 ] 
62 63 404 64 65 707 66 [ 356 315 355 545 ] 70 79 707 80 [ 355 356 500 707 500 616 668 737 677 591 745 560 542 804 748 376 482 
744 527 983 801 810 667 809 711 618 522 751 725 1049 742 685 705 
430 545 430 457 500 436 639 637 444 637 613 380 635 625 ] 
127 128 323 129 [ 646 323 889 629 626 637 639 443 487 367 628 596 845 646 601 549 417 
500 417 667 410 ] 
150 151 707 152 [ 129 ] 153 155 707 156 [ 733 224 702 534 ] 160 
161 314 162 163 705 164 166 707 167 [ 355 707 667 426 ] 171 172 
702 173 [ 534 1103 1499 616 ] 177 189 500 190 [ 793 947 363 527 810 1039 357 1004 346 324 713 933 643 591 444 713 
576 790 745 628 667 637 685 601 828 ] 
215 216 760 217 219 1089 220 221 707 222 223 549 224 [ 500 400 500 ] 
227 229 480 230 232 549 233 [ 494 713 823 549 274 768 ] 239 240 
549 241 [ 612 494 250 ] ] 
/FontDescriptor 199 0 R 
>> 
endobj
203 0 obj
1190 
endobj
204 0 obj
8130 
endobj
205 0 obj
2042 
endobj
206 0 obj
<< /Filter /FlateDecode /Length 205 0 R /Length1 2176 /Subtype /CIDFontType0C >> 
stream ........


RIP Release 03.02.xx Feb 02, 2000

PDF 1.3 with PS version 3010.111 is available with exceptions noted above. The results of the Adobe PDF 1.3 Test Suite normalized on 792 point feed edge. Here are the backchannel error messages from the log file. The Out of memory error occurs in rel 2.x and with stock 1.3 PDF code too.
%%[ PDF Error: Out of memory. ]%%
%%[ Error: limitcheck; OffendingCommand: pdfprint ]%%
%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%
%%[ Error: limitcheck; OffendingCommand: pdfprint ]%%
%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%
%%[ PDF Error: Out of memory. ]%%
%%[ Error: limitcheck; OffendingCommand: pdfprint ]%%
%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%
%%[ Error: limitcheck; OffendingCommand: pdfprint ]%%
%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%

RIP Release 03.06.xx Mar 01, 2000

The translate / rotate problem has been fixed (PR15717 15714 15696 15667). There is still a shading problem that Adobe is looking at 15577 (possibly others). PR 15690 is fixed now that a good test file was obtained. PD301012.pdf PD301015.pdf PD301021.pdf now print ok but the entire test suite was not run again so the results (pdf files) above would still have any translate / rotate problems and shrink2fit is still false. When the shading fix is in we need to retest PD301005.pdf PD301008.pdf PD301010.pdf PD301020.pdf - (possibly rerun entire suite and save output and backchannel).
The shrink2fit option is a structure member which when turned on in PDF1.2 caused all images to be blank. This option works in PDF1.3 so the default is now TRUE (as in Acrobat). It may be shut off in rip.pids (the RIP must be reset then). This does change our output since previously the images would center and clip if too large. Acrobat 3 checks for fonts by first looking for system fonts, then embedded, and finally faux the font using a multiple master font. Acrobat 4 looks first for embedded and then for system fonts with multiple master fonts last.

RIP Release 04.00.xx Apr 04, 2000

The first 4.x release see's support for new medias 8x10 8.5x10 14x17 12x18 14x18 RA4 RA3 half8x10 half8x10.5 halfLetterTab halfLegalTab halfA4Tab halfRA4 The Fix for PR14139 - force images to not be binary so we can read extra image data and not error. This will cause a slow down since ascii data takes longer to read and write verses binary. This may be changed via a /hp/etc/rip.pids switch. Below are the new media match unit testing results:
In=[ 612  792] Match = MATCH_ANY Out=[ 612  792]
In=[ 792  612] Match = MATCH_ANY Out=[ 792  612]
In=[ 612 1008] Match = MATCH_ANY Out=[ 612 1008]
In=[1008  612] Match = MATCH_ANY Out=[1008  612]
In=[ 792 1224] Match = MATCH_ANY Out=[ 792 1224]
In=[1224  792] Match = MATCH_ANY Out=[1224  792]
In=[ 595  842] Match = MATCH_ANY Out=[ 595  842]
In=[ 842  595] Match = MATCH_ANY Out=[ 842  595]
In=[ 842 1191] Match = MATCH_ANY Out=[ 842 1191]
In=[1191  842] Match = MATCH_ANY Out=[1191  842]
In=[ 648 1008] Match = MATCH_ANY Out=[ 648 1008]
In=[1008  648] Match = MATCH_ANY Out=[1008  648]
In=[ 576  756] Match = MATCH_ANY Out=[ 576  756]
In=[ 756  576] Match = MATCH_ANY Out=[ 756  576]
In=[ 648  864] Match = MATCH_ANY Out=[ 648  864]
In=[ 864  648] Match = MATCH_ANY Out=[ 864  648]
In=[ 648  792] Match = MATCH_ANY Out=[ 648  792]
In=[ 792  648] Match = MATCH_ANY Out=[ 792  648]
In=[ 638  842] Match = MATCH_ANY Out=[ 638  842]
In=[ 842  638] Match = MATCH_ANY Out=[ 842  638]
In=[ 576  720] Match = MATCH_ANY Out=[ 576  720]
In=[ 720  576] Match = MATCH_ANY Out=[ 720  576]
In=[ 576  756] Match = MATCH_ANY Out=[ 576  756]
In=[ 756  576] Match = MATCH_ANY Out=[ 756  576]
In=[ 612  720] Match = MATCH_ANY Out=[ 612  720]
In=[ 720  612] Match = MATCH_ANY Out=[ 720  612]
In=[ 612  792] Match = MATCH_ANY Out=[ 612  792]
In=[ 792  612] Match = MATCH_ANY Out=[ 792  612]
In=[ 612 1008] Match = MATCH_ANY Out=[ 612 1008]
In=[1008  612] Match = MATCH_ANY Out=[1008  612]
In=[ 648  792] Match = MATCH_ANY Out=[ 648  792]
In=[ 792  648] Match = MATCH_ANY Out=[ 792  648]
In=[ 648  864] Match = MATCH_ANY Out=[ 648  864]
In=[ 864  648] Match = MATCH_ANY Out=[ 864  648]
In=[ 648 1008] Match = MATCH_ANY Out=[ 648 1008]
In=[1008  648] Match = MATCH_ANY Out=[1008  648]
In=[ 792 1224] Match = MATCH_ANY Out=[ 792 1224]
In=[1224  792] Match = MATCH_ANY Out=[1224  792]
In=[ 864 1296] Match = MATCH_ANY Out=[ 865 1219]
In=[1296  864] Match = MATCH_ANY Out=[1219  865]
In=[1008 1224] Match = MATCH_ANY Out=[ 865 1219]
In=[1224 1008] Match = MATCH_ANY Out=[1219  865]
In=[1008 1296] Match = MATCH_ANY Out=[ 865 1219]
In=[1296 1008] Match = MATCH_ANY Out=[1219  865]
In=[ 595  842] Match = MATCH_ANY Out=[ 595  842]
In=[ 842  595] Match = MATCH_ANY Out=[ 842  595]
In=[ 609  865] Match = MATCH_ANY Out=[ 609  865]
In=[ 865  609] Match = MATCH_ANY Out=[ 865  609]
In=[ 638  842] Match = MATCH_ANY Out=[ 638  842]
In=[ 842  638] Match = MATCH_ANY Out=[ 842  638]
In=[ 842 1191] Match = MATCH_ANY Out=[ 842 1191]
In=[1191  842] Match = MATCH_ANY Out=[1191  842]
In=[ 865 1219] Match = MATCH_ANY Out=[ 865 1219]
In=[1219  865] Match = MATCH_ANY Out=[1219  865]
In=[ 612  792] Match = MATCH_Std Out=[ 612  792]
In=[ 792  612] Match = MATCH_Std Out=[ 792  612]
In=[ 612 1008] Match = MATCH_Std Out=[ 612 1008]
In=[1008  612] Match = MATCH_Std Out=[1008  612]
In=[ 792 1224] Match = MATCH_Std Out=[ 792 1224]
In=[1224  792] Match = MATCH_Std Out=[1224  792]
In=[ 595  842] Match = MATCH_METRIC Out=[ 595  842]
In=[ 842  595] Match = MATCH_METRIC Out=[ 842  595]
In=[ 842 1191] Match = MATCH_METRIC Out=[ 842 1191]
In=[1191  842] Match = MATCH_METRIC Out=[1191  842]
In=[ 612  792] Match = MATCH_METRIC Out=[ 842 1191]
In=[ 792  612] Match = MATCH_METRIC Out=[1191  842]
In=[ 612 1008] Match = MATCH_METRIC Out=[ 842 1191]
In=[1008  612] Match = MATCH_METRIC Out=[1191  842]
In=[ 792 1224] Match = MATCH_METRIC Out=[ 842 1191]
In=[1224  792] Match = MATCH_METRIC Out=[1191  842]
In=[ 595  842] Match = MATCH_Std Out=[ 612 1008]
In=[ 842  595] Match = MATCH_Std Out=[1008  612]
In=[ 842 1191] Match = MATCH_Std Out=[ 792 1224]
In=[1191  842] Match = MATCH_Std Out=[1224  792]
In=[ 648 1008] Match = MATCH_Std Out=[ 792 1224]
In=[1008  648] Match = MATCH_Std Out=[1224  792]
In=[ 576  756] Match = MATCH_Std Out=[ 612  792]
In=[ 756  576] Match = MATCH_Std Out=[ 792  612]
In=[ 648  864] Match = MATCH_Std Out=[ 792 1224]
In=[ 864  648] Match = MATCH_Std Out=[1224  792]
In=[ 648  792] Match = MATCH_Std Out=[ 792 1224]
In=[ 792  648] Match = MATCH_Std Out=[1224  792]
In=[ 638  842] Match = MATCH_Std Out=[ 792 1224]
In=[ 842  638] Match = MATCH_Std Out=[1224  792]
In=[   1    1] Match = MATCH_ANY Out=[ 576  720]
In=[   1    1] Match = MATCH_ANY Out=[ 576  720]
In=[   1    1] Match = MATCH_Std Out=[ 612  792]
In=[   1    1] Match = MATCH_Std Out=[ 612  792]
In=[   1    1] Match = MATCH_METRIC Out=[ 595  842]
In=[   1    1] Match = MATCH_METRIC Out=[ 595  842]
In=[9999 9999] Match = MATCH_ANY Out=[ 865 1219]
In=[9999 9999] Match = MATCH_ANY Out=[ 865 1219]
In=[9999 9999] Match = MATCH_Std Out=[ 792 1224]
In=[9999 9999] Match = MATCH_Std Out=[ 792 1224]
In=[9999 9999] Match = MATCH_METRIC Out=[ 842 1191]
In=[9999 9999] Match = MATCH_METRIC Out=[ 842 1191]
In=[ 617  792] Match = MATCH_ANY Out=[ 612  792]
In=[ 792  617] Match = MATCH_ANY Out=[ 792  612]
In=[ 607 1008] Match = MATCH_ANY Out=[ 612 1008]
In=[1008  607] Match = MATCH_ANY Out=[1008  612]
In=[ 647 1007] Match = MATCH_ANY Out=[ 648 1008]
In=[1007  647] Match = MATCH_ANY Out=[1008  648]
In=[ 797 1224] Match = MATCH_ANY Out=[ 792 1224]
In=[1224  797] Match = MATCH_ANY Out=[1224  792]
In=[ 590  842] Match = MATCH_ANY Out=[ 595  842]
In=[ 842  590] Match = MATCH_ANY Out=[ 842  595]
In=[ 847 1191] Match = MATCH_ANY Out=[ 842 1191]
In=[1191  847] Match = MATCH_ANY Out=[1191  842]
In=[ 627  792] Match = MATCH_ANY Out=[ 648  792]
In=[ 792  627] Match = MATCH_ANY Out=[ 792  648]
In=[ 207 1008] Match = MATCH_ANY Out=[ 612 1008]
In=[1008  207] Match = MATCH_ANY Out=[1008  612]
In=[ 647 1017] Match = MATCH_ANY Out=[ 792 1224]
In=[1017  647] Match = MATCH_ANY Out=[1224  792]
In=[ 799 1224] Match = MATCH_ANY Out=[ 865 1219]
In=[1224  799] Match = MATCH_ANY Out=[1219  865]
In=[ 599  842] Match = MATCH_ANY Out=[ 595  842]
In=[ 842  599] Match = MATCH_ANY Out=[ 842  595]
In=[ 447 1191] Match = MATCH_ANY Out=[ 792 1224]
In=[1191  447] Match = MATCH_ANY Out=[1224  792]

new PDF KDK's for RIP release 04.02 Jun 21, 2001
Sep 04, 2002 RIP release 07.00.00.08
image Jan 23, 2003 RIP release 08.00.00.0x

%KDKPDFBinaryOK:
PR #14139 showed we would get an error if the PDF file contained images with extra data in them. Setting binaryok = false means the images will be ASCII encoded in the PDF2PS conversion and get rid of the error. However there is 1.25 times the data for each image which has one write in the PDF2PS conversion and one read in the PS2raster conversion. Many sites should be able to turn this on with a %KDKPDFBinaryOK: on or using the default config utility.

%KDKPDFMediaMatchAll:
With the loss of the page loop feature in late 4.x PDF can only pick a media on page 1. It will only do this if media is not selected via DSC/KDK's. For the case when %KDKPDFMediaMatchAll: is OFF: The standard media sizes will be A3 or A4 if the default media from the default config utility is any of the supported metric sizes including A4, A3, RA4, A4TAB. If the default media is a US standard size such as LETTER, 9X14, or LETTERTAB it will choose from LETTER, LEGAL and TABLOID. For the case when %KDKPDFMediaMatchAll: is ON: All medias (not half size booklets) such as Tab media, manual (9x12) and 8x10_5 can be selected.

%KDKPDFVersion:
Sep 04, 2002 RIP release 07.00.00.08 This allows the choice of 2 PDF interpreters 1.3 or 1.4. The usepdl will choose 1.3 if we are a Morisawa font install or 1.4 if not. The 1.4 has the advantage of 1.4 features and bug fixes but is a bit slower due to a file interface instead of stream. It also can't use Morisawa fonts.

%KDKPDFPageLoop:
image Jul 24, 2003 RIP release 08.00.00.0x This allows the choice running with (on) or without (off) the page loop. The page loop goes through a while loop on each page. It selects media, adjusts the image with CropBox, AutoCenter and FitToPage. It creates one PS file or pipe per page. Note we lose the ability for PDF to change media size, image size, or centering or scaling after page 1 if off. If the release creates a PostScript file from the PDF the file can become quite large with the page loop off. The advantage if the page loop off is that it should run a bit faster and a few jobs exhibit odd behavior when it is on. In 4.x the "TZ" error (not loading ProcSets on each page) caused us to ship with the page loop off. In 7.x the "Writing PS at the wrong time" causes PS errors. Note we do not lose the ability to change medias with %KDKSlip: with the page loop off. Also there is a delay until the first page comes out since the entire job must be converted to PostScript first.

image
%KDKPDFUsePrintersHalftone: {"on" | "off"}1.1 * PDF only Use printer's (not jobs) haltone information, default=ON Jun 22, 2000
%KDKPDFVersion: {"1.3" | "1.4" | "usepdl"} * use pdf1.3 or pdf1.4 or allow RIP to decide Sep 04, 2002
%KDKPDFPageLoop: {"on" | "off"} * Page Loop is on or off Jan 23, 2003

Some examples using FitToPage and AutoCenter image Nov 13, 2002
Some more details: image PDF Image Placement Guide Ver 0.41 RIP 07.00.00.12 image Nov 18, 2002
This shows a 9x14 inch image with letter size media selected with FitToPage = OFF and AutoCenter = OFF (note the clipping) image
This shows a 9x14 inch image with letter size media selected with FitToPage = OFF and AutoCenter = On (still some clipping but less) image
This shows a 9x14 inch image with letter size media selected with FitToPage = On and AutoCenter = Do Not Care when Fit is On note change in image size image

PDF Test Suit RIP Release 04.00.xx May 02, 2000

The PDF 1.3 test suite was run with the same results as before. The out of memory error occurs with jobs pd301023.pdf and pd302023.pdf and the limitcheck error on pd301081.pdf and pd302081.pdf. The testfile KillMemory12x18inch5pg.pdf was the 1.2 version that caused the memory error. The difference between the 301 and 302 test suites is that ScreenOptimized was on when distilling 302 and PrintOptimized for 301.
%%[ PDF Error: Out of memory. ]%%
%%[ Error: limitcheck; OffendingCommand: pdfprint ]%%
%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%

%%[ Error: limitcheck; OffendingCommand: pdfprint ]%%
%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%

PDF RIP Release 04.07.xx - page loop removed Jun 28, 2001

In PR #17637 we have a PDF file that started off as 2 scanned images. It then went to Acrobat 4 and used plugins StampPDF and QIP and were placed in our Document library. When printing we get an: %%[ Error undefined: Offending Command: TZ] %% The PS created in the PDF2PS (out.ps) conversion has the TZ in the file but there is no /TZ definition on page 2 there is on page 1. Using Acrobat Reader 3 and 4 the PS created by both of these contains a /TZ definition. The PDF file views and prints with Acrobat Reader. Adobe did not have any problem printing this file with pure stock PDF code. In the file pdfprint.c a #define USESTOCKPDF switch was entered allowing us to run as close as possible to stock PDF 3010.111 code on the DHV. With this the file printed without any errors. Next the switch #define ALMOSTSTOCKPDF was turned on. This allows us to run near stock 3010.111 code with some of our features enabled. Here the TZ error occurred. By pulling out code fragments between these two it was found out that our page range feature when in is causing the TZ error. This feature allows us to convert PDF to Postscript one page at a time. This allows us to begin ripping the job right away and also we do not have to worry about creating a huge PostScript file during the conversion. Saving the PS files created in the conversion from PDF had the correct procsets and dictionaries in page 1 but not in the following pages. Tried to get the TZ and other procsets and dictionaries defined in startup.ps, written to out.ps file or executed in camelot code. However due to the way dictionaries are stacked this could not be done. Also tried changing paramater switches to load procsets and other resources on each page but this did not help. The save restore around each page was also not the problem. The fix was to remove our page range code (a side note is our page range loop would never work with stock 3010.111) . This page range code converted PDF to PS one page at a time and then handed off the PS to camelot for RIPping. With this change the performance of RIPping PDF jobs should be about the same or slightly faster however it will not print page 1 until the entire job has been converted from PDF to PS. This means there is a time lag until page 1 come out that was not there in prior releases. This lag is typically small but certain large jobs may have a noticeable impact. The file created in the PDF to PS conversion used to be limited to one page in /tmp/out.ps but may now be much larger in /var/tmp/out.ps. For jobs without a %KDKBody a media based on the image sizes and default media was selected. Without the page range code the media selection will be limited to page 1. For example if the job has a letter size image on page one and a legal size image on page 2 both pages will print on the media selected on page 1. Also the FitToPage and AutoCentering features base the page size on page 1. A case where this may bring undesired results is when using slip sheets with different size medias. For example a job with a KDKBody setting of Tabloid and then a letter size slip sheet on page 2 occurs. The correct image size is known e.g. letter size but the new media size is not known so centering and scaling would still be based on Tabloid size media. The page range code will be looked at again as a want in release 5.x. You can also enable the page loop with a rip.pids switch in 4.x

PDF Announcement Mar 12, 2001

Adobe Acrobat 5.0 Software Streamlines Business Processes Across the Extended Enterprise Customers Benefit from Tight Web Integration, XML Support for Easier Data Exchange within Adobe PDF files San Jose, Calif. (March 12, 2001) (Nasdaq: ADBE)Adobe Systems Incorporated, the leader in Network Publishing, today introduced Adobe Acrobat 5.0 software, a major upgrade to one of the companys cornerstone applications. With Acrobat 5.0, Adobe is enabling organizations to reduce cycle times and increase the efficiency of business processes across their extended enterprises of customers and partners. True to its heritage, Acrobat 5.0 continues the tradition of allowing users to produce documents that retain the fidelity of the original, exactly as intended. Customers can be certain that Adobe Portable Document Format (PDF) files they create in Acrobat 5.0 and share online can be viewed and printed using the ubiquitous Acrobat Reader across various hardware and operating systems. But Acrobat 5.0 functionality goes well beyond this fundamental value proposition: professionals can now work more efficiently as individuals and with teams; customers have enhanced capabilities for creating, digitally signing and sending secure documents; businesses can more effectively use electronic forms to reduce costs and increase the accuracy of information in those forms; users can distribute information in a more accessible manner to people with disabilities; and IT managers can now easily deploy and maintain Acrobat software across an entire organization. In the coming years, as business workflows move to the Web, there will be an increased need to access information anytime, anywhere, said Rita Knox, vice president and research director, Gartner. Software that allows organizations to save time and money by supporting such ubiquitous access will be key. This involves both technology and management of user requirements and preferences. Acrobat 5.0 offers a number of key benefits that enable business, graphic arts and IT professionals to excel in this new Network Publishing environment where they must work efficiently at Web speed. Tight Web integration based on WebDistributed Authoring and Versioning (WebDAV) and Open DataBase Connectivity (ODBC) allows teams to simultaneously share comments on Adobe PDF files from within a browser. Support for the eXtensible Markup Language (XML) makes it simple for users to integrate data, such as metadata and forms data in Adobe PDF files, with back-end systems. And stronger integration with enterprise deployment tools enables IT professionals to autoinstall and maintain Acrobat 5.0 over a network to thousands of multi-user or lockdown desktop systems. For a comprehensive list of the new features in Acrobat 5.0 software, please visit: www.adobe.com/products/acrobat/pdfs/acr5nfhs.pdf. Pricing and Availability Acrobat 5.0 software for Windows 95 OSR 2.0, Windows 98, Windows NT 4.0 with service pack 5 or 6, Windows ME and Windows 2000, and Macintosh OS 8.6 (all Web-based capabilities are not available due to Apple OS limitations), 9.0.4 and 9.1, is expected to ship in the United States and Canada in the second quarter of 2001 for an estimated street price of US$249. Registered users of earlier Acrobat software versions can upgrade to Acrobat 5.0 for US$99. French, German and Japanese versions of Acrobat 5.0 are expected to be available shortly after the initial release. Information about other language versions, as well as pricing, upgrade and support policies, is available online at www.adobe.com. For more information, customers can call 1-888-724-4508 or visit .

PDF Reverse Page Order Jul 11, 2001

I am able to print pdf files in reverse page order with a simple C code switch. There is no performance loss. We could put this in sometime with a e.g. %KDKPDFReversePageOrder: on or have a generic %KDKReversePageOrder: on in case ISM supports this in the future for non pdf's. Hopefully the drivers would handle page exceptions such as slip sheets when reversing. For example if there was a 10 page pdf job with letter white plain body media and letter pink color slip sheet on pages 3 and 4 the slip pages would need to be changed to pages 7 and 8.

Note on PDF Font Messages Jul 13, 2001

The snippet below is from the ps log file for bug19920 kyotoKDK.pdf. It shows that if Courier is substituted a back channel message will be generated but not when a font is being fauxed
TS_PDF: CIDFontIsAvailable() - entry font=HeiseiMin-W3
TS_PS: LookupDevStm() - entry name = %disk0%/tmp/flst
TS_PS: LookupDevStm() - exit
TS_PDF: kdkFontInfo() - entry
TS_PDF: kdkFontInfo() - Font HeiseiMin-W3 is not available; font being fauxed.
TS_PDF: kdkFontInfo() - exit
TS_PDF: CIDFontIsAvailable() - exit
HeiseiKakuGo-W5-UniJIS-UCS2-H not found, using Courier.
TS_PS: LogBackChannel() - entry

Minimum PDF File Oct 09, 2001

created with distiller from a ps file with just a showpage
%PDF-1.1
%
1 0 obj
[/CalRGB
<<
/WhitePoint [0.9505 1 1.089]
/Gamma [1.8 1.8 1.8]
/Matrix [0.4497 0.2446 0.02518 0.3163 0.672 0.1412 0.1845 0.08334 0.9227]
>>
]
endobj
3 0 obj
<<
/Length 3
/Filter /LZWDecode
>>
stream

endstream
endobj
4 0 obj
<<
/ProcSet [/PDF]
/ColorSpace <>
>>
endobj
2 0 obj
<<
/Type /Page
/Parent 5 0 R
/Resources 4 0 R
/Contents 3 0 R
>>
endobj
5 0 obj
<<
/Type /Pages
/Kids [2 0 R ]
/Count 1
/MediaBox [0 0 612 792 ]
>>
endobj
6 0 obj
<<
/Type /Catalog
/Pages 5 0 R
>>
endobj
7 0 obj
<<
/CreationDate (D:20011009132504-0400)
/Producer (Acrobat Distiller Daemon 2.1 for SunOS/Solaris \(SPARC\))
>>
endobj
xref
0 8
0000000000 65535 f 
0000000016 00000 n 
0000000314 00000 n 
0000000172 00000 n 
0000000243 00000 n 
0000000394 00000 n 
0000000477 00000 n 
0000000526 00000 n 
trailer
<<
/Size 8
/Root 6 0 R
/Info 7 0 R
/ID [<95ca3b7a8a480273a9ad0f834ba06fb6><95ca3b7a8a480273a9ad0f834ba06fb6>]
>>
startxref
654
%%EOF

PDF RIP Release 05.xx.xx - 3011 PDF1.3 and page loop restored Nov 28, 2001

Starting in release 05.01.xx version 3011.106 camelot and full PDF1.3 support are included. The page loop issues are resolved meaning there is media matching and fittopage and auto centering support after page 1 in release 05.04.xx. There is a known bug only in releases 05.01.xx to 05.05.xx where camelot will run out of file descriptors after 118 pdf jobs and give an error opening a trailer page or findfont - this is fixed in 05.06.xx

RIP Release 06.00.00.13: custom media Apr 16, 2002

The media match unit test now takes into account which medias are generated from the paper catalog or from the files /hp/etc/media_sizes.cfg /hp/etc/paper_size.cfg

Media List Size total (factory + custom sizes) = 25
___________________ start media listing________________________
 0            M8X10 x= 576 y= 720 isMetric=0 isRare=1
 1           M8X105 x= 576 y= 756 isMetric=0 isRare=1
 2               A4 x= 595 y= 842 isMetric=1 isRare=0
 3              RA4 x= 609 y= 865 isMetric=1 isRare=1
 4           M85X10 x= 612 y= 720 isMetric=0 isRare=1
 5           LETTER x= 612 y= 792 isMetric=0 isRare=0
 6            LEGAL x= 612 y=1008 isMetric=0 isRare=0
 7           A4_TAB x= 638 y= 842 isMetric=1 isRare=1
 8       LETTER_TAB x= 648 y= 792 isMetric=0 isRare=1
 9           MANUAL x= 648 y= 864 isMetric=0 isRare=1
10        LEGAL_TAB x= 648 y=1008 isMetric=0 isRare=1
11              JB4 x= 729 y=1032 isMetric=1 isRare=1
12           LEDGER x= 792 y=1224 isMetric=0 isRare=0
13               A3 x= 842 y=1191 isMetric=1 isRare=0
14        OVRLEDGER x= 864 y=1296 isMetric=0 isRare=1
15              RA3 x= 865 y=1219 isMetric=1 isRare=1
16           M14X17 x=1008 y=1224 isMetric=0 isRare=1
17           M14X18 x=1008 y=1296 isMetric=0 isRare=1
18     8.66x13.78in x= 624 y= 992 isMetric=1 isRare=1
19           custom x= 648 y=1080 isMetric=1 isRare=1
20       9.5x12.5in x= 684 y= 900 isMetric=1 isRare=1
21    10x11inCustom x= 720 y= 792 isMetric=0 isRare=1
22  10x12.5inCustom x= 720 y= 900 isMetric=1 isRare=1
23          11x18in x= 792 y=1296 isMetric=1 isRare=1
24        12.5x17in x= 900 y=1224 isMetric=1 isRare=1
___________________ end media listing________________________
In=[ 576  720] Match = MATCH_ANY Out=[ 576  720]
In=[ 720  576] Match = MATCH_ANY Out=[ 720  576]
In=[ 576  756] Match = MATCH_ANY Out=[ 576  756]
In=[ 756  576] Match = MATCH_ANY Out=[ 756  576]
In=[ 612  720] Match = MATCH_ANY Out=[ 612  720]
In=[ 720  612] Match = MATCH_ANY Out=[ 720  612]
In=[ 612  792] Match = MATCH_ANY Out=[ 612  792]
In=[ 792  612] Match = MATCH_ANY Out=[ 792  612]
In=[ 612 1008] Match = MATCH_ANY Out=[ 612 1008]
In=[1008  612] Match = MATCH_ANY Out=[1008  612]
In=[ 648  792] Match = MATCH_ANY Out=[ 648  792]
In=[ 792  648] Match = MATCH_ANY Out=[ 792  648]
In=[ 648  864] Match = MATCH_ANY Out=[ 648  864]
In=[ 864  648] Match = MATCH_ANY Out=[ 864  648]
In=[ 648 1008] Match = MATCH_ANY Out=[ 648 1008]
In=[1008  648] Match = MATCH_ANY Out=[1008  648]
In=[ 729 1032] Match = MATCH_ANY Out=[ 729 1032]
In=[1032  729] Match = MATCH_ANY Out=[1032  729]
In=[ 792 1224] Match = MATCH_ANY Out=[ 792 1224]
In=[1224  792] Match = MATCH_ANY Out=[1224  792]
In=[ 864 1296] Match = MATCH_ANY Out=[ 900 1224]
In=[1296  864] Match = MATCH_ANY Out=[1224  900]
In=[1008 1224] Match = MATCH_ANY Out=[ 900 1224]
In=[1224 1008] Match = MATCH_ANY Out=[1224  900]
In=[1008 1296] Match = MATCH_ANY Out=[ 900 1224]
In=[1296 1008] Match = MATCH_ANY Out=[1224  900]
In=[ 595  842] Match = MATCH_ANY Out=[ 595  842]
In=[ 842  595] Match = MATCH_ANY Out=[ 842  595]
In=[ 609  865] Match = MATCH_ANY Out=[ 609  865]
In=[ 865  609] Match = MATCH_ANY Out=[ 865  609]
In=[ 638  842] Match = MATCH_ANY Out=[ 638  842]
In=[ 842  638] Match = MATCH_ANY Out=[ 842  638]
In=[ 842 1191] Match = MATCH_ANY Out=[ 842 1191]
In=[1191  842] Match = MATCH_ANY Out=[1191  842]
In=[ 865 1219] Match = MATCH_ANY Out=[ 865 1219]
In=[1219  865] Match = MATCH_ANY Out=[1219  865]
In=[ 720  792] Match = MATCH_ANY Out=[ 720  792]
In=[ 792  720] Match = MATCH_ANY Out=[ 792  720]
In=[ 720  900] Match = MATCH_ANY Out=[ 720  900]
In=[ 900  720] Match = MATCH_ANY Out=[ 900  720]
In=[ 612  792] Match = MATCH_STD Out=[ 612  792]
In=[ 792  612] Match = MATCH_STD Out=[ 792  612]
In=[ 612 1008] Match = MATCH_STD Out=[ 612 1008]
In=[1008  612] Match = MATCH_STD Out=[1008  612]
In=[ 792 1224] Match = MATCH_STD Out=[ 792 1224]
In=[1224  792] Match = MATCH_STD Out=[1224  792]
In=[ 595  842] Match = MATCH_METRIC Out=[ 595  842]
In=[ 842  595] Match = MATCH_METRIC Out=[ 842  595]
In=[ 842 1191] Match = MATCH_METRIC Out=[ 842 1191]
In=[1191  842] Match = MATCH_METRIC Out=[1191  842]
In=[ 720  792] Match = MATCH_STD Out=[ 792 1224]
In=[ 792  720] Match = MATCH_STD Out=[1224  792]
In=[ 720  900] Match = MATCH_STD Out=[ 792 1224]
In=[ 900  720] Match = MATCH_STD Out=[1224  792]
In=[ 612  792] Match = MATCH_METRIC Out=[ 842 1191]
In=[ 792  612] Match = MATCH_METRIC Out=[1191  842]
In=[ 612 1008] Match = MATCH_METRIC Out=[ 842 1191]
In=[1008  612] Match = MATCH_METRIC Out=[1191  842]
In=[ 792 1224] Match = MATCH_METRIC Out=[ 842 1191]
In=[1224  792] Match = MATCH_METRIC Out=[1191  842]
In=[ 720  792] Match = MATCH_METRIC Out=[ 842 1191]
In=[ 792  720] Match = MATCH_METRIC Out=[1191  842]
In=[ 720  900] Match = MATCH_METRIC Out=[ 842 1191]
In=[ 900  720] Match = MATCH_METRIC Out=[1191  842]
In=[ 595  842] Match = MATCH_STD Out=[ 612 1008]
In=[ 842  595] Match = MATCH_STD Out=[1008  612]
In=[ 842 1191] Match = MATCH_STD Out=[ 792 1224]
In=[1191  842] Match = MATCH_STD Out=[1224  792]
In=[ 648 1008] Match = MATCH_STD Out=[ 792 1224]
In=[1008  648] Match = MATCH_STD Out=[1224  792]
In=[ 576  756] Match = MATCH_STD Out=[ 612  792]
In=[ 756  576] Match = MATCH_STD Out=[ 792  612]
In=[ 648  864] Match = MATCH_STD Out=[ 792 1224]
In=[ 864  648] Match = MATCH_STD Out=[1224  792]
In=[ 648  792] Match = MATCH_STD Out=[ 792 1224]
In=[ 792  648] Match = MATCH_STD Out=[1224  792]
In=[ 638  842] Match = MATCH_STD Out=[ 792 1224]
In=[ 842  638] Match = MATCH_STD Out=[1224  792]
In=[   1    1] Match = MATCH_ANY Out=[ 576  720]
In=[   1    1] Match = MATCH_ANY Out=[ 576  720]
In=[   1    1] Match = MATCH_STD Out=[ 612  792]
In=[   1    1] Match = MATCH_STD Out=[ 612  792]
In=[   1    1] Match = MATCH_METRIC Out=[ 595  842]
In=[   1    1] Match = MATCH_METRIC Out=[ 595  842]
In=[9999 9999] Match = MATCH_ANY Out=[ 900 1224]
In=[9999 9999] Match = MATCH_ANY Out=[ 900 1224]
In=[9999 9999] Match = MATCH_STD Out=[ 792 1224]
In=[9999 9999] Match = MATCH_STD Out=[ 792 1224]
In=[9999 9999] Match = MATCH_METRIC Out=[ 842 1191]
In=[9999 9999] Match = MATCH_METRIC Out=[ 842 1191]
In=[ 617  792] Match = MATCH_ANY Out=[ 612  792]
In=[ 792  617] Match = MATCH_ANY Out=[ 792  612]
In=[ 607 1008] Match = MATCH_ANY Out=[ 612 1008]
In=[1008  607] Match = MATCH_ANY Out=[1008  612]
In=[ 647 1007] Match = MATCH_ANY Out=[ 648 1008]
In=[1007  647] Match = MATCH_ANY Out=[1008  648]
In=[ 797 1224] Match = MATCH_ANY Out=[ 792 1224]
In=[1224  797] Match = MATCH_ANY Out=[1224  792]
In=[ 590  842] Match = MATCH_ANY Out=[ 595  842]
In=[ 842  590] Match = MATCH_ANY Out=[ 842  595]
In=[ 847 1191] Match = MATCH_ANY Out=[ 842 1191]
In=[1191  847] Match = MATCH_ANY Out=[1191  842]
In=[ 720  792] Match = MATCH_ANY Out=[ 720  792]
In=[ 792  720] Match = MATCH_ANY Out=[ 792  720]
In=[ 720  900] Match = MATCH_ANY Out=[ 720  900]
In=[ 900  720] Match = MATCH_ANY Out=[ 900  720]
In=[ 627  792] Match = MATCH_ANY Out=[ 648  792]
In=[ 792  627] Match = MATCH_ANY Out=[ 792  648]
In=[ 207 1008] Match = MATCH_ANY Out=[ 612 1008]
In=[1008  207] Match = MATCH_ANY Out=[1008  612]
In=[ 647 1017] Match = MATCH_ANY Out=[ 648 1080]
In=[1017  647] Match = MATCH_ANY Out=[1080  648]
In=[ 799 1224] Match = MATCH_ANY Out=[ 865 1219]
In=[1224  799] Match = MATCH_ANY Out=[1219  865]
In=[ 599  842] Match = MATCH_ANY Out=[ 595  842]
In=[ 842  599] Match = MATCH_ANY Out=[ 842  595]
In=[ 447 1191] Match = MATCH_ANY Out=[ 792 1224]
In=[1191  447] Match = MATCH_ANY Out=[1224  792]

RIP Release 06.00.00.17: media selection explained May 28, 2002

PDF does not support media selection as PostScript does with setpagedevice. Due to that it will make a best guess based on crop box, media match all flag (via KDK or default config) and default config media. It will use this only if a KDK did not select media for this page. This is different than other PDL's which use KDK then PDL based (e.g. setpagedevice), and finally the default config value. One other difference is that other PDL's use the first media in a %%DocumentMedia DSC to select the body media if no KDKBody is present. PDF does not.

The PDF code loops on pages within the valid page range. It checks the image size using the CropBox. Next the rotation is checked and the X and Y values are swapped if the rotation is 90 or 270 degrees. This is needed since it determines the orientation by these X and Y values.

You can have many different image sizes in a PDF file. The image sizes from the PDF file on PR 9012 are 6.5 by 9 inches which gives a PageSize of [468 648]. Acrobat displays the images as 6.5 by 9 inches. If the image size is not within [5 5] points of a valid media size a nearest next largest media selection is made. This is one that fits the entire image without clipping or scaling. If the requested size is larger than the largest valid media, the largest valid media will be used and clipping may occur (no other cases will clip).

Booklet only sizes, tab media, manual (9x12) custom sizes, and 8x10_5 are not valid choices unless %KDKMediaMatchAll: On (or default config) allowing all media choices. If that is not on it uses the printer's default media to determine if a common metric or US standard media is used.

If the size is not within [5 5] points of the previous size (which is always the case on page 1) and no %KDKBody is used an setpagedevice is issued.

If a KDK or DSC has selected a media for this page (e.g. %KDKBody: %KDKSlip or %KDKCovers:) then the setpagedevice is not honored. A setpagedevice using the values selected by the KDK's will be issued (if the media is different than the last page) so we do not lose around the save restore. We don't want to issue a setpagedevice on each page since it always causes a force front.


RIP Release 07.00.00.08: PDF1.4 Utility Sep 04, 2002

Major new features of 1.4

Transparency is new in 1.4 and not available in PostScript. PostScript and 1.3 use opaque painting. For example if you place a striped yellow line and then place a checked magenta circle on the line it will cover the line. With transparency you create a new pattern and color where the line and circle overlap. To print this the pdf1.4 utility flattens the pdf - this means it creates new PostScript for (using the same example) the area where the circle and line overlap, the 2 parts of a circle, and parts of a line. This process takes some time so expect printing of a job with transparency to be slow.

JBIG2 is a lossy compression. Being lossy it can really save on image size. This may be a compression to consider for scanned documents.

Notes

07.00.00.04 release

This was an first release that had the pdf1.4 utility available. There are some known problems fixed by 07.00.00.08.

Running stock pdf 1.4 utility

This is given to us as an example command line program. The same libs are used in the camelot process instead of the camelot pdf code along with HDi added product code. Click here to see the stock pdf 5.102 directory An example pdftops with the stock code:

HOSTPDFTOPSDEMO -i input.pdf -o output.ps -p keys.txt

#   The file keys.txt (e.g.)
shrinkToFit=true
centerCropBox=false

Running Stock camelot in a WS
Stock Camelot use moved to own page
AutoCenter and FitToPage

use job: FivePagesSlipFitOnCenOffMMA.pdf and here is the diffs on the pdftopostscript file:

diff pdfutil.ps.save.FitOffCenOff pdfutil.ps.save.FitOffCenOn
2309a2310
> -18 -108 translate

diff pdfutil.ps.save.FitOffCenOff pdfutil.ps.save.FitOnCenOff
2255a2256,2280
> %%BeginResource: pdfasc.prc
> %%Version: 4.0 2
> %%Copyright: Copyright 1992-1997 Adobe Systems Incorporated. All Rights Reserved.
> /AS {
> 9 dict begin
> /shrink? xdd
> /Pury xdd
> /Purx xdd
> /Plly xdd
> /Pllx xdd
> gsave newpath clippath pathbbox newpath grestore
> /Dury xdd
> /Durx xdd
> /Dlly xdd
> /Dllx xdd
> Durx Dllx sub Dury Dlly sub
> Pury Plly sub div exch Purx Pllx sub div
> 2 copy gt { exch } if pop
> Durx Dllx add 2 div Dury Dlly add 2 div translate
> shrink? { dup scale } { pop } ifelse
> Purx Pllx add -2 div Pury Plly add -2 div translate
> end
> } [/shrink? /Pury /Purx /Plly /Pllx /Durx /Dury /Dllx /Dlly]
> bld
> %%EndResource
2309a2335
>  0 0 648 1008 true PDF begin PDFVars begin AS end end

diff pdfutil.ps.save.FitOffCenOff pdfutil.ps.save.FitOnCenOn
2255a2256,2280
> %%BeginResource: pdfasc.prc
> %%Version: 4.0 2
> %%Copyright: Copyright 1992-1997 Adobe Systems Incorporated. All Rights Reserved.
> /AS {
> 9 dict begin
> /shrink? xdd
> /Pury xdd
> /Purx xdd
> /Plly xdd
> /Pllx xdd
> gsave newpath clippath pathbbox newpath grestore
> /Dury xdd
> /Durx xdd
> /Dlly xdd
> /Dllx xdd
> Durx Dllx sub Dury Dlly sub
> Pury Plly sub div exch Purx Pllx sub div
> 2 copy gt { exch } if pop
> Durx Dllx add 2 div Dury Dlly add 2 div translate
> shrink? { dup scale } { pop } ifelse
> Purx Pllx add -2 div Pury Plly add -2 div translate
> end
> } [/shrink? /Pury /Purx /Plly /Pllx /Durx /Dury /Dllx /Dlly]
> bld
> %%EndResource
2309a2335,2336
> -18 -108 translate
>  0 0 648 1008 true PDF begin PDFVars begin AS end end

Performance Sep 09, 2002

These test run on a stand alone RIP rel 07.00.00.08 Ultra 5 rts2disk means the raster is written to disk while rts2null means no disk files saved. A comparison to the numbers from Jim Stocks is what Jim's data means.

File 1.3 rts2disk 1.3 rts2null 1.4 rts2disk 1.4 rts2null 1.3 Jim's data 1.4 Jim's data
ch7.pdf 85s 61s 93s 71s 74s 87s
rp98-024.pdf 77s 47s 71s 36s 71s 104s
surmix-p.pdf 65s 36s 74s 51s 54s 82s

RIPPatch Rel 07.00.00.0015 Jan 21, 2003

Revamped entire orientation selection in pdf1.4 only, fixes:

PR32850: PDF backchannel errors now start %%[ Error:
  so onerror works with pdf1.4 trailer pages
  If we get early error we were exiting out and missing chdir /ps
  so we get findfont errors on all successive trailer pages for ps and pdf

PR32442: if camelot changes orientation with slip or restoring body, fix w/spd
PR31930: do not rotate if image fits without rotation
PR31599: portrait/landscape short edge fed pg1
PR31565: portrait/landscape long edge fed pg192 - mixed orientation with same
  media size issues a SPD each change but does not duplex if %KDKBody
PR29176 - was adding translate command only if auto center was true
  now always add translate Also if CropBox is not [0,0] place it there.
  pull out late changes

Test Info - jobs changing image orientation both long/short edge fed media pdf1.4 only
Test Info - jobs with non [0 0] CropBox changing AutoCenter

---

31273 (writing ps at incorrect time) not fixed but tried this:
Dups - 32813  31783
checked for buffer clearing - ok
Tried compiling -xO2 - still fails
Does work without page loop
Tried in 06.16 - still fails
added mutex around each PSExecte (files in 7.x EdC ws) -
	kdkpdfprint.c.psmutex, kdkpdfutilmedia.c.psmutex, pdf1_4tops.c.psmutex

/*	Use in place of PSExecuteString(). It grabs a mutex as a thread
	that will be executing PostScript and then releases when finished.
	It copies the given (null-terminated) string and gives it to the
	PostScript interpreter to be executed. PSExecuteString Returns 1
	if the interpreter reports an error, 0 otherwise. But since we
	call PSHandleExecError NewPSExecuteString should never return a 1
*/

boolean NewPSExecuteString ( char * ps)
{
	static char __PROC__[] = "NewPSExecuteString()";
	boolean	returnval;

	ts_printf(TS_DB_PROC)
		("%s %s - Entry - Locking PS Mutex\n",
		__PDFHEAD__, __PROC__);

	mutex_lock(&PSmutex);

	ts_printf(TS_DB_LOCKS)
		("%s %s -  PS Mutex Locked\n",
		__PDFHEAD__, __PROC__);

	returnval = PSExecuteString(ps);

	ts_printf(TS_DB_LOCKS)
		("%s %s -  UnLocking PS Mutex\n",
		__PDFHEAD__, __PROC__);

	mutex_unlock(&PSmutex);

	ts_printf(TS_DB_PROC)
		("%s %s - Exit - PS Mutex UnLocked\n",
		__PDFHEAD__, __PROC__);

	if (returnval == 1)
	{
		ts_printf(TS_DB_INFO)
			("%s %s -  ERROR executing: %s\n",
			__PDFHEAD__, __PROC__, ps);

			/* TBD does not return from this	*/
		PSHandleExecError();
		return(1);
	}
		return(0);
}

	/* these are for calls that need to clean up before handling the error
		and PSHandleExecError() would not allow that	*/
	
void LockPSMutex (void)
{
	static char __PROC__[] = "LockPSMutex()";

	ts_printf(TS_DB_PROC)
		("%s %s - Entry - Locking PS Mutex\n",
		__PDFHEAD__, __PROC__);

	mutex_lock(&PSmutex);

	ts_printf(TS_DB_PROC)
		("%s %s - PS Mutex Locked - exit\n",
		__PDFHEAD__, __PROC__);
}

void UnLockPSMutex (void)
{
	static char __PROC__[] = "UnLockPSMutex()";

	ts_printf(TS_DB_PROC)
		("%s %s - Entry - UnLocking PS Mutex\n",
		__PDFHEAD__, __PROC__);

	mutex_unlock(&PSmutex);

	ts_printf(TS_DB_PROC)
		("%s %s - PS Mutex UnLocked - exit\n",
		__PDFHEAD__, __PROC__);
}

/***** Example Call *****/

    if (docFlags & PDDocWasRepaired)
    {
        sprintf(psStr, "(%%%%[ PDF Warning: %s ]%%%%\n) print flush",
                fileDamagedButRepaired);
        NewPSExecuteString(psStr);
    }

Also tried detecting when stack is not empty:
file: pdfprint.c.PSEmptyOperandStack.test

	/* also tried in while loop - popping stack until empty - still fails */
  /* Returns true iff the operand stack is empty */
if(PSEmptyOperandStack() == false)
{
    ts_printf(TS_DB_INFO)
        ("%s %s -  operand stack not empty\n",
        __PDFHEAD__, __PROC__);

    os_sleep(1000);
}

It detects it but does not clear it if waiting

Releases image Dec 09, 2003

pdf Acrobat PostScript Rip Package Name *Notes
PDF1.2 Acrobat 3 3010 1.x
PDF1.2 Acrobat 3 3010 3.x use most of pdf 1.3 with limitations
PDF1.2 Acrobat 3 3010 4.x PCT1 use most of pdf 1.3 with limitations
PDF1.3 Acrobat 4 3011 5.x PCT2
PDF1.3 Acrobat 4 3011 6.x EG
PDF1.4 Acrobat 5 3015 7.x MP use 3011/pdf1.4 utility verses 3015
PDF1.4 Acrobat 5 3015 8.00.00.0013 6.x Block 4
PDF1.5 Acrobat 6 3016 8.00.00.1016 6.x Block 5

RIPPatch Rel 07.00.00.0020 Apr 01, 2003

Fix PR 33341 (7 pgs print on 1) and dups (but different symptoms) 33505 33784
Fix PR 33332 init media lib for PrintRange Jobs and dups 33334 33369
Fix PR 33513 (slow pdf1.4 vs. 1.3) with default value of toggle_opp/use_opp

Update pdfutil version pdftops-5.102 to pdftops-5.602.20030220
This updates 6 libraries and pdftops.h
need to save TransparancyInJob (for toggle_opp)
substitute hostid may now be set in rip.pids
toggle_opp and use_opp may now be set in rip.pids

note PR's 33489 33334 were fixed in 07.00.00.0016

RIPPatch Rel 07.00.00.0021 Apr 23, 2003

33489: FIXED The pdf1.4 utility was not handling 180
degree rotates correctly (/Rotate 180). It now emits
translate/rotate PostScript to account for this.
The manual indicates that any multiple of 90 is legal
such as 0 90 180 270 360 450 -90 -180 etc.

0, 90 and 270 rotations were working previously. The module
that handled these worked on an enum that only allows 0, 90,
180, and 270 so this section would never see an e.g. -90
because it would have been converted to 270. So only
180 rotates were a problem.

31780: FIXED or was never a problem
All orientation (ps 1.3 1.4) same and correct

34039: FIXED in .020 release probably because of the new
pdf 1.4 utility libs supplied by Adobe. This does not work with
1.3 which is a duplicate of 31273 writing ps at wrong time.

34042: DUPLICATE 33489 Tabs_with_text.pdf - has  /Rotate 180 on
pages 1-6 (and 0 7-10)

strings Tabs_with_text.pdf | g Rotat
/Rotate 180
/Rotate 180
/Rotate 180
/Rotate 180
/Rotate 180
/Rotate 180
/Rotate 0
/Rotate 0
/Rotate 0
/Rotate 0
%KDKRotation: 0

New 180 degree problem 5000MMA.pdf (problem in stock 1.4 util)
as compared to 1.3 and ps (PR not yet written)

RIP Release 08.00.00.13: new custom medias updated media lib - 3015 limitations image Nov 05, 2003

The 3015 limitations are:

To run the media match unit test -> cd $HP/src/lib/lts ; make test; MediaMatchUnitTest
___________________ start media listing________________________
msz: size name            x_tmm   y_tmm   x_pts   y_pts   x pixs  y pixs   x pad     y pad   x adj.  y adj
****** Media Sizes:
               M8X10 2032    2540     576     720    4800     6000     4800     6016      0     7
              M8X105 2032    2667     576     756    4800     6300     4800     6304      0     2
                  A4 2100    2970     595     842    4960     7015     4960     7040      0    11
                 RA4 2150    3050     609     865    5078     7204     5088     7232      4    12
              M85X10 2159    2540     612     720    5100     6000     5120     6016      8     7
              LETTER 2159    2794     612     792    5100     6600     5120     6624      8    10
               LEGAL 2159    3556     612    1008    5100     8400     5120     8416      8     7
              A4_TAB 2250    2970     638     842    5314     7015     5344     7040     13    11
          LETTER_TAB 2286    2794     648     792    5400     6600     5408     6624      3    10
              MANUAL 2286    3048     648     864    5400     7200     5408     7200      3     0
           LEGAL_TAB 2286    3556     648    1008    5400     8400     5408     8416      3     7
                 JB4 2570    3640     729    1032    6070     8598     6080     8608      4     4
              LEDGER 2794    4318     792    1224    6600    10200     6624    10208     10     3
                  A3 2970    4200     842    1191    7015     9921     7040     9952     11    13
           OVRLEDGER 3048    4572     864    1296    7200    10800     7200    10816      0     7
                 RA3 3050    4300     865    1219    7204    10157     7232    10176     12     8
              M14X17 3556    4318    1008    1224    8400    10200     8416    10208      7     3
              M14X18 3556    4572    1008    1296    8400    10800     8416    10816      7     7
           statement 1397    2159     396     612    3300     5100     3328     5120     12     8
       halflettertab 1397    2286     396     648    3300     5400     3328     5408     12     3
                  A5 1480    2100     420     595    3496     4960     3520     4960     10     0
         half_A4_TAB 1485    2250     421     638    3507     5314     3520     5344      6    13
              M525X8 1334    2032     378     576    3151     4800     3168     4800      7     0
           halflegal 1778    2159     504     612    4200     5100     4224     5120     10     8
        halflegaltab 1778    2286     504     648    4200     5400     4224     5408     10     3
                 JB5 1820    2570     516     729    4299     6070     4320     6080      9     4
          halfManual 1524    2286     432     648    3600     5400     3616     5408      7     3
                M5X8 1270    2032     360     576    3000     4800     3008     4800      3     0
               M5X85 1270    2159     360     612    3000     5100     3008     5120      3     8
                 RA5 1525    2150     432     609    3602     5078     3616     5088      6     4


size name            x_pts   y_pts   xadj yadj fed mtrc rare    cfg     enum 5code xlcode pmar lmar finDev
****** Media Sizes:
               M8X10  576     720     0     7    1   0     1   24002d0    7      7   64   51   7f
              M8X105  576     756     0     2    1   0     1   24002f4  306    306   64   51   7f
                  A4  595     842     0    11    1   1     0   253034a   26      2   60   50   7f
                 RA4  609     865     4    12    1   1     1   2610361  313    313   60   50   7f
              M85X10  612     720     8     7    1   0     1   26402d0  309    309   64   51   7f
              LETTER  612     792     8    10    1   0     0   2640318    2      0   64   51   7f
               LEGAL  612    1008     8     7    1   0     0   26403f0    3      1   64   51   1f
              A4_TAB  638     842    13    11    1   1     1   27e034a  302    302   60   50   7f
          LETTER_TAB  648     792     3    10    1   0     1   2880318  301    301   64   51   7f
              MANUAL  648     864     3     0    1   0     1   2880360  305    305   64   51   7f
           LEGAL_TAB  648    1008     3     7    1   0     1   28803f0  307    307   64   51   1f
                 JB4  729    1032     4     4    0   1     1   2d90408   46     46   60   50   1d
              LEDGER  792    1224    10     3    0   0     0   31804c8    6      4   64   51   1d
                  A3  842    1191    11    13    0   1     0   34a04a7   27      5   60   50   1d
           OVRLEDGER  864    1296     0     7    0   0     1   3600510  311    311   64   51   1d
                 RA3  865    1219    12     8    0   1     1   36104c3  314    314   60   50   1d
              M14X17 1008    1224     7     3    0   0     1   3f004c8  310    310   64   51   1d
              M14X18 1008    1296     7     7    0   0     1   3f00510  312    312   64   51   1d
           statement  396     612    12     8    1   0     1   18c0264  304    304   64   51   0
       halflettertab  396     648    12     3    1   0     1   18c0288  318    318   64   51   0
                  A5  420     595    10     0    1   1     1   1a40253  202    202   60   50   0
         half_A4_TAB  421     638     6    13    1   1     1   1a5027e  321    321   60   50   0
              M525X8  378     576     7     0    1   0     1   17a0240  317    317   64   51   0
           halflegal  504     612    10     8    1   0     1   1f80264  303    303   64   51   61
        halflegaltab  504     648    10     3    1   0     1   1f80288  320    320   64   51   61
                 JB5  516     729     9     4    1   1     1   20402d9   45     45   60   50   61
          halfManual  432     648     7     3    1   0     1   1b00288  319    319   64   51   0
                M5X8  360     576     3     0    1   0     1   1680240  315    315   64   51   0
               M5X85  360     612     3     8    1   0     1   1680264  316    316   64   51   0
                 RA5  432     609     6     4    1   1     1   1b00261  322    322   60   50   0
___________________ end media listing________________________
In=[ 576  720] Match = MATCH_ANY Out=[ 576  720]
In=[ 720  576] Match = MATCH_ANY Out=[ 720  576]
In=[ 576  756] Match = MATCH_ANY Out=[ 576  756]
In=[ 756  576] Match = MATCH_ANY Out=[ 756  576]
In=[ 612  720] Match = MATCH_ANY Out=[ 612  720]
In=[ 720  612] Match = MATCH_ANY Out=[ 720  612]
In=[ 612  792] Match = MATCH_ANY Out=[ 612  792]
In=[ 792  612] Match = MATCH_ANY Out=[ 792  612]
In=[ 612 1008] Match = MATCH_ANY Out=[ 612 1008]
In=[1008  612] Match = MATCH_ANY Out=[1008  612]
In=[ 648  792] Match = MATCH_ANY Out=[ 648  792]
In=[ 792  648] Match = MATCH_ANY Out=[ 792  648]
In=[ 648  864] Match = MATCH_ANY Out=[ 648  864]
In=[ 864  648] Match = MATCH_ANY Out=[ 864  648]
In=[ 648 1008] Match = MATCH_ANY Out=[ 648 1008]
In=[1008  648] Match = MATCH_ANY Out=[1008  648]
In=[ 729 1032] Match = MATCH_ANY Out=[ 729 1032]
In=[1032  729] Match = MATCH_ANY Out=[1032  729]
In=[ 792 1224] Match = MATCH_ANY Out=[ 792 1224]
In=[1224  792] Match = MATCH_ANY Out=[1224  792]
In=[ 864 1296] Match = MATCH_ANY Out=[ 864 1296]
In=[1296  864] Match = MATCH_ANY Out=[1296  864]
In=[1008 1224] Match = MATCH_ANY Out=[1008 1224]
In=[1224 1008] Match = MATCH_ANY Out=[1224 1008]
In=[1008 1296] Match = MATCH_ANY Out=[1008 1296]
In=[1296 1008] Match = MATCH_ANY Out=[1296 1008]
In=[ 595  842] Match = MATCH_ANY Out=[ 595  842]
In=[ 842  595] Match = MATCH_ANY Out=[ 842  595]
In=[ 609  865] Match = MATCH_ANY Out=[ 609  865]
In=[ 865  609] Match = MATCH_ANY Out=[ 865  609]
In=[ 638  842] Match = MATCH_ANY Out=[ 638  842]
In=[ 842  638] Match = MATCH_ANY Out=[ 842  638]
In=[ 842 1191] Match = MATCH_ANY Out=[ 842 1191]
In=[1191  842] Match = MATCH_ANY Out=[1191  842]
In=[ 865 1219] Match = MATCH_ANY Out=[ 865 1219]
In=[1219  865] Match = MATCH_ANY Out=[1219  865]
In=[ 720  792] Match = MATCH_ANY Out=[ 729 1032]
In=[ 792  720] Match = MATCH_ANY Out=[1032  729]
In=[ 720  900] Match = MATCH_ANY Out=[ 729 1032]
In=[ 900  720] Match = MATCH_ANY Out=[1032  729]
In=[ 612  792] Match = MATCH_STD Out=[ 612  792]
In=[ 792  612] Match = MATCH_STD Out=[ 792  612]
In=[ 612 1008] Match = MATCH_STD Out=[ 612 1008]
In=[1008  612] Match = MATCH_STD Out=[1008  612]
In=[ 792 1224] Match = MATCH_STD Out=[ 792 1224]
In=[1224  792] Match = MATCH_STD Out=[1224  792]
In=[ 595  842] Match = MATCH_METRIC Out=[ 595  842]
In=[ 842  595] Match = MATCH_METRIC Out=[ 842  595]
In=[ 842 1191] Match = MATCH_METRIC Out=[ 842 1191]
In=[1191  842] Match = MATCH_METRIC Out=[1191  842]
In=[ 720  792] Match = MATCH_STD Out=[ 792 1224]
In=[ 792  720] Match = MATCH_STD Out=[1224  792]
In=[ 720  900] Match = MATCH_STD Out=[ 792 1224]
In=[ 900  720] Match = MATCH_STD Out=[1224  792]
In=[ 612  792] Match = MATCH_METRIC Out=[ 842 1191]
In=[ 792  612] Match = MATCH_METRIC Out=[1191  842]
In=[ 612 1008] Match = MATCH_METRIC Out=[ 842 1191]
In=[1008  612] Match = MATCH_METRIC Out=[1191  842]
In=[ 792 1224] Match = MATCH_METRIC Out=[ 842 1191]
In=[1224  792] Match = MATCH_METRIC Out=[1191  842]
In=[ 720  792] Match = MATCH_METRIC Out=[ 842 1191]
In=[ 792  720] Match = MATCH_METRIC Out=[1191  842]
In=[ 720  900] Match = MATCH_METRIC Out=[ 842 1191]
In=[ 900  720] Match = MATCH_METRIC Out=[1191  842]
In=[ 595  842] Match = MATCH_STD Out=[ 612 1008]
In=[ 842  595] Match = MATCH_STD Out=[1008  612]
In=[ 842 1191] Match = MATCH_STD Out=[ 792 1224]
In=[1191  842] Match = MATCH_STD Out=[1224  792]
In=[ 648 1008] Match = MATCH_STD Out=[ 792 1224]
In=[1008  648] Match = MATCH_STD Out=[1224  792]
In=[ 576  756] Match = MATCH_STD Out=[ 612  792]
In=[ 756  576] Match = MATCH_STD Out=[ 792  612]
In=[ 648  864] Match = MATCH_STD Out=[ 792 1224]
In=[ 864  648] Match = MATCH_STD Out=[1224  792]
In=[ 648  792] Match = MATCH_STD Out=[ 792 1224]
In=[ 792  648] Match = MATCH_STD Out=[1224  792]
In=[ 638  842] Match = MATCH_STD Out=[ 792 1224]
In=[ 842  638] Match = MATCH_STD Out=[1224  792]
In=[   1    1] Match = MATCH_ANY Out=[ 360  576]
In=[   1    1] Match = MATCH_ANY Out=[ 360  576]
In=[   1    1] Match = MATCH_STD Out=[ 612  792]
In=[   1    1] Match = MATCH_STD Out=[ 612  792]
In=[   1    1] Match = MATCH_METRIC Out=[ 595  842]
In=[   1    1] Match = MATCH_METRIC Out=[ 595  842]
In=[9999 9999] Match = MATCH_ANY Out=[1008 1296]
In=[9999 9999] Match = MATCH_ANY Out=[1008 1296]
In=[9999 9999] Match = MATCH_STD Out=[ 792 1224]
In=[9999 9999] Match = MATCH_STD Out=[ 792 1224]
In=[9999 9999] Match = MATCH_METRIC Out=[ 842 1191]
In=[9999 9999] Match = MATCH_METRIC Out=[ 842 1191]
In=[ 617  792] Match = MATCH_ANY Out=[ 612  792]
In=[ 792  617] Match = MATCH_ANY Out=[ 792  612]
In=[ 607 1008] Match = MATCH_ANY Out=[ 612 1008]
In=[1008  607] Match = MATCH_ANY Out=[1008  612]
In=[ 647 1007] Match = MATCH_ANY Out=[ 648 1008]
In=[1007  647] Match = MATCH_ANY Out=[1008  648]
In=[ 797 1224] Match = MATCH_ANY Out=[ 792 1224]
In=[1224  797] Match = MATCH_ANY Out=[1224  792]
In=[ 590  842] Match = MATCH_ANY Out=[ 595  842]
In=[ 842  590] Match = MATCH_ANY Out=[ 842  595]
In=[ 847 1191] Match = MATCH_ANY Out=[ 842 1191]
In=[1191  847] Match = MATCH_ANY Out=[1191  842]
In=[ 720  792] Match = MATCH_ANY Out=[ 729 1032]
In=[ 792  720] Match = MATCH_ANY Out=[1032  729]
In=[ 720  900] Match = MATCH_ANY Out=[ 729 1032]
In=[ 900  720] Match = MATCH_ANY Out=[1032  729]
In=[ 627  792] Match = MATCH_ANY Out=[ 648  792]
In=[ 792  627] Match = MATCH_ANY Out=[ 792  648]
In=[ 207 1008] Match = MATCH_ANY Out=[ 612 1008]
In=[1008  207] Match = MATCH_ANY Out=[1008  612]
In=[ 647 1017] Match = MATCH_ANY Out=[ 729 1032]
In=[1017  647] Match = MATCH_ANY Out=[1032  729]
In=[ 799 1224] Match = MATCH_ANY Out=[ 865 1219]
In=[1224  799] Match = MATCH_ANY Out=[1219  865]
In=[ 599  842] Match = MATCH_ANY Out=[ 595  842]
In=[ 842  599] Match = MATCH_ANY Out=[ 842  595]
In=[ 447 1191] Match = MATCH_ANY Out=[ 792 1224]
In=[1191  447] Match = MATCH_ANY Out=[1224  792]

RIP Release 08.00.00.16: 3016 explaining Page Loops image Feb 11, 2004

The HDi page loop is no longer used instead we use Adobe's.
This should help explain why we will have page level features 
without our page loop. Note Adobe did NOT provide any page level
call backs prior to 3016. It also explains a proposed "modulus
page loop" which would help with our first page print time.

simplified pseudo code explaining page loops

	No page loop (rel 4.x can turn page loop on)
	============================================
	Can not change page level features after page 1
	Must wait for entire job converts to PS before first raster.

-----------------------------------------

	HDi page loop (rel 5.x 6.x 7.x can turn page loop off)
	==================================================
	We call Adobes procedures from HDi's page loop
	This allows us to have page level features and also
	to have each raster out after each PDF to PS conversion.
	Can cause a performance hit on some jobs



-----------------------------------------

	Adobe page loop (8.x block 4)
	=============================
	Page level features are changed via call-back procedures
	Must wait for entire job converts to PS before first raster.



-----------------------------------------

	Adobe page loop with HDi/Adobe modulus page loop PROPOSED
	=========================================================
	page level features are changed via call-back procedures
	Must wait for N pages (e.g. 10) converts to PS before first raster.
	This is controlled by a %KDKPDFPageLoop: on | off TBD supply modulus N



-----------------------------------------

About inline images and PR51684 image Jun 14, 2005

Inline images are a way to embed small images in pdf and are recommended to
be 4k or under in size.

The format is
BI
...keyvalue pairs...
ID
....image data....
EI

BI=begin image ID=image data EI=end image
key value pairs are e.g. width/height/bits per pixel/encoding

For parsing the pdf, ref manual does not say much about white space e.g.
" " = 0x20 CR = 0x0d LF = 0x0a before or after the BI/ID/EI operators.
Was not able to find a spec on this anywhere.
GhostScript writes "\nEI\n" or "\nEI\nQ\n" with inline images
note Q and q are usually restore and save.
Acrobat and XPDF parse for a whitespace before the EI.
TBD can they handle PR51031 okay?

3.3 RC09 Nexpress parser looks for string "0x45490a" or "0x454920" or "0x45490d"
("EI" = 0x4549) to determine end of image data. With this some pdf files like
from 51675 Dakoda are failing because the string is in the image data.
Specifically object 51 the 14th EI out of 33 total has "EI0x0d" in the
image data. The parser thought this was the end of image even though other
images ended in "EI ". The file from 51031 did not always use the same
characters around EI. The file k_cos_parser.cpp in InfraCommonParsers is
where this code is.

3.3 RC08 Nexpress parser looks for string 0x0d or 0x0a prior to above
RC09 strings to determine end of image data. With this some pdf files
were failing because the preceding 0x0d or 0x0a was not used.
Without this fix a file from PR 51031 from FastSever (ESKo-Graphics) /
PDFOut v2.3 is failing. This file typically uses "&" = 0x26 before the
EI string but there was also a case of 0x02 used before EI string in
object 68 and a case of " " used before EI string in object 50
RC08 prints file fine without any image drop outs

solutions:
---------
3.3 - currently the reccomendation is 3.3 is already done. however
      we would have a better solution by adding in the whitespace
      before the EI (like in RC08) and then oring it with any token
      used such as "&" by the files from PR51031. There would be
      a small to medium risk for doing this.

     The odds of ending an image too soon and not printing in 3.3. RC09
     for a 3 byte sequence is 1/256 * 1/256 * 3/256 = 1 per 5.6 million.
     For a job that uses 2 4k inline images that is 8k/5.6million = 1/690
     chance. *Note 256 is used for 8 bit binary data but for ascii image
     data replace it with 128 and the odds become 1 per 700k or 1/88. 
     By adding the RC08 check back in 1/717 million 1/88k for 256 and
     1/90 million and 1/11k
 
1) better EI parsing
   note this can not be 100% accurate as there is no restriction
   on having e.g. " EI " in the image stream. We could go as far
   as having a data driven non-compiled input to the parser with
   a default of "0x0d OR 0x0a OR 0x20 AND "0x4549" AND 0x0d OR 0x0a OR 0x20" 
   This would allow each site to modify for their own oddball cases. 

2) Byte counting
   For non compressed encodings this would be an easy calculation
   but for compressed e.g. FLATE or JBIG2 we would have to decompress
   the data to count the bytes causing a performance hit which
   would not be bad if only the small recommended size was used.
   From years of working with pdf files there are many images with
   too few or not enough bytes in them for a RIP that work ok on a
   viewer.

3) Combo of byte counting and EI searching
   Count the bytes and also look for EI near the expected place.

4) If we use e.g Adobe's PDF library (about $200 per seat) hopefully
   the API would mean we no longer have to parse inline images.

A note on CosLib
---------------
Starting with pdf1.6 the pdf itself may be encoded to reduce file size.
You need a decoder to view the ascii stream and CosEdit was used.
The Enfocus Browser is another choice. To change window bffer size 
Acrobat -. Edit -> Prefernces -> Enfocus Browser -> implemantation limits

CosLib is a standalone program from pdfTron that reads pdf and other
Cos based document files and displays objects. If you have more then
the free demo version you can edit and save Cos objects.
To see an inline image open the pdf with CosEdit. Look for stream objets.
Click on them and then double click the DATA Key.

When using CosEdit the last inline image in the object ended with
"EI ". This is the correct ending of the image and the Q is in another object.

ripBugFixed-p52-60.pdf
---------------------
3.3 RC08 fails Ripping (pdf file out of RC bad)
3.4 latest TBD
3.3 bypass RC prints ok
ACR - GS - raster ok
stock camelot 3016/3015 error
stock camelot 3011 ok

A note on dumping Inline images from your DFE
---------------------------------------------

This will help in cases where other tools suchas Enfocus Browser can not
display the entire image. Right now you would have to compile this in
by uncommenting in cmpCDFE_CommonParsers\newcoslib\common\KCosParser.cpp
// #define WRITE_INLINE_IMAGES
make_it_clean.bat debugall; make_it_so.bat debug all
copy the files to the DFE and restart. You also need a well known
file to dump the data to c:\DumpInlineImages.txt

About color spaces / RCP image Mar 21, 2006

Device Color Spaces - all are device dependent go from 0 white to 1 saturation
  DeviceGray: RCP-SF[SF=silent fix] changes overprint DeviceGray to CMYK 0 0 0 1
  DeviceCMYK (RCP changes to /Lab PANTONE and HKS)
    RCP-SF changes overprint white CMYK 0 0 0 0 to knockout CMYK 0 0 0 0
    TBD it says this in doc but does not appear to do.
  DeviceRGB (RCP-SF changes to DeviceGray if gray)

CIE based Color Spaces: all are device independent use arrays to decode
  LAB (RCP-SF changes to DeviceGray if black)
  CalGray
  CalRGB (RCP-SF changes to DeviceGray if black)
  IccBased

Special Color Spaces
  DeviceN (new 51650) - monotone, duotone, or more
  Pattern - paint area with pattern (like html background)
  Indexed (new 50882) - uses LUT to save space
    (RCP-SF changes Indexed DeviceRGB to Indexed DeviceGray if gray)
  Separation (RCP maps now)
    all are device independent use arrays (1? or 2 stages) to decode

-----

RCP-SF (other silent fixes):
  case e.g. hks, HkS --> HKS (colors e.g. cyan->Cyan PANTONE and more)
  All --> NxpAll
  remove Halftone specifications see 23496 TBD
  gray DeviceRGB, black CalRGB, black LAB -> DeviceGray
  gray indexed DeviceRGB -> indexed DeviceGray
  images and smooth shading DeviceGray -> separation black

JT controlled: [if irreversable: written as Audit to .jtf so only occurs once]
  Map Spot Colors
    HKS and PANTONE mapped to LAB values
    Once run can not rerun or turn on JT OPP.

  All Colors to Knockout - in areas where 2 or more objects overlap only the
    top is printed. Corrects incorrect useage of overprint. This often results
    in the print matching Acrobat's display with OPP disabled.
    Once run can't rerun or turn on JT OPP and won't get Overprint warning 82
    In job with overprint it should match the Acrobat display with the OPP
    toggle in Acrobat - off (opaque paint) and you can see /Knockout in PDF.

  100% Black to Overprint
    Overprint state set to true for 100% black.
    Once run can not rerun.

  Remove Embedded Profiles
    ICCBased color spaces are switched a base colorspace
    Once run can not rerun.

  Overprint Preview [NOT irreversable]
    JT turn on and shuts off Colors to Knockout and Map Spot Colors
    Does not change Overprint warning check 82

Other terms - Rendering Intents
  Absolute Colorimetric - colors are NOT represented by media's whiteness
  Relative Colorimetric - colors are represented including media's whiteness
  Perceptual - pleasing, good for scanned images, will alter all colors to
    keep relationship of colors the same when some input colors are not
    supported on the output device.
  Saturation - preserves saturation, good for graphics

About vPDF image Oct 25, 2005

Here is some background. vPDF is a variable data format generated by a
tool from Data Logics and Nexpress. The tool compresses PDF well by
reusing X Objects but has no support from Adobe. When generating new
variable data jobs VDX would be the choice of output over vPDF now.
JobSub and JTE do not know about vPDF jobs. That is why the JTE does
not check the VDX column on the job list (when turned on). Content
edit lets you know it is a vPDF job when the bookmarks are displayed.
52859 shows bookmarks with 204 vPDF records each containing 2 pages.
RCM does detect that is is a vPDF job and treats it along with VDX
jobs as variable data jobs. It is not legal to have print ranges with
variable data jobs and hence the redline in the PR.  It is legal to
have sheet ranges.

About pdf boxes, images, and substrates in 1 dimension image Jan 18, 2006

image
Test files and pdf specifications are on the Documentation page

PDF links


PDF software for Windows image Nov 01, 2005


PDF software for Solaris 06/12/02

*Note if installing Acrobat 3.01 or 4 Reader edit the file: ./bin/acroread and change the line below to where you installed it
install_dir=/home/chapmane/Acrobat3.01/Reader
Hits Since Jan 27, 1999 email me ( Edward_Chapman@Nexpress.com) image