Creating a CP2000 PPF File

pablobhz

New member
Hello Everyone and thanks for your attention.
I'm currently trying to create an PPF file to be read into a CP2000 Console. However, i've been running into some issues.
Even the file being completely okay (i had a template to follow), the console still doesn't read it.
I'll post the file here (text contents). I'm writing the file as a binary file, of course. It just to make things easier to read.
Lines that end with "def", have a CR/LF symbol in the end (just to clarify).

If you want to preview the image, the steps are:
1) Photoshop
2) Drag the .raw image there
3) Manually set the resolution, 3 channels interleaved

Any input is appreciated.

Thanks in advance

PrePress file for testing - CP2000:

%!PS-Adobe-3.0
%%CIP3-File Version 2.1
CIP3BeginSheet
/CIP3AdmJobName (PABLOBHZ_SAMPLE_TEST) def
/CIP3AdmSoftware (TestSotware) def
/CIP3AdmCreationTime (D:20180522152631+02'00') def
/CIP3AdmArtist (Pablo) def
/CIP3AdmCopyright (Copyright by Pablo, 1984-2020) def
/CIP3AdmSheetName (Sheet 1) def
/CIP3AdmSheetLay /Left def
/HDMAdmPPF CIP3BeginPrivate
/HDMPPFVersion (1.1.3) def
/HDMUniqueSheetId (D422D923-552B-448A-A7CC-8F4EBCDEBA85) def
/HDMSheetCode () def
/HDMOriginalPPFName (PABLOBHZ_SAMPLE.ppf) def
/HDMEnddeviceName (CP2000) def
CIP3EndPrivate
/HDMPress CIP3BeginPrivate
HDMPressName (SM 102 80.5*50.5) def
/HDMPressId 6 def
/HDMNumberOfInkZones 32 def
/HDMInkZoneWidth 32.500000 def
/HDMTransferFilmCurveData [0.000000 0.000000 0.100000 0.100000 0.200000 0.200000 0.300000 0.300000 0.400000 0.400000 0.500000 0.500000 0.600000 0.600000 0.700000 0.700000 0.800000 0.800000 0.900000 0.900000 1.000000 1.000000 ] def
/HDMTransferPlateCurveData [0.000000 0.000000 0.100000 0.100000 0.200000 0.200000 0.300000 0.300000 0.400000 0.400000 0.500000 0.500000 0.600000 0.600000 0.700000 0.700000 0.800000 0.800000 0.900000 0.900000 1.000000 1.000000 ] def
CIP3EndPrivate
/CIP3AdmPSExtent [2097.637795 1133.86 ] def
/CIP3TransferFilmCurveData [0 0 1 1 ] def
/CIP3TransferPlateCurveData [0 0 1 1 ] def
CIP3BeginFront
/CIP3AdmSeparationNames [(Cyan)(Magenta)(Yellow)(Black)] def
/CIP3AdmInkColors [[9.02 0.5 0.5 ][59.22 -40.66 -43.67 ][48.24 73.79 -4.52 ][94.51 -6.53 91.86 ]] def
/CIP3AdmInkInfo [(HD Default)(HD Default)(HD Default)(HD Default)] def
/HDMThumbnail CIP3BeginPrivate
/HDMThumbnailWidth 238 def
/HDMThumbnailHeight 153 def
/HDMThumbnailCompression /None def
/HDMThumbnailData 109242 CIP3PrivateContent
[Image content attached separated, PPM file]
CIP3EndPrivate
/HDMAreaCoverageValue CIP3BeginPrivate
/HDMZones <</HDMInkB [0.600000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 12.000000 17.400000 18.300000 17.300000 18.300000 14.900000 8.000000 9.600000 18.700000 18.100000 19.800000 18.200000 10.400000 1.500000 18.400000 22.300000 21.500000 22.200000 20.400000 12.000000 1.500000 0.600000 ]
/HDMInkC [0.600000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 9.100000 1.500000 1.500000 1.500000 0.600000 ]
/HDMInkM [0.600000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 23.000000 29.200000 28.400000 28.400000 28.600000 31.100000 23.300000 31.800000 31.100000 28.500000 28.900000 29.200000 28.800000 30.000000 33.300000 30.800000 30.100000 28.100000 28.700000 31.000000 19.100000 7.600000 ]
/HDMInkY [0.600000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 23.800000 30.500000 29.500000 29.800000 30.200000 31.900000 23.300000 34.100000 33.000000 30.600000 30.900000 31.300000 32.600000 35.400000 35.600000 33.800000 33.700000 33.600000 34.500000 35.800000 23.100000 9.200000 ]
>> def
CIP3EndPrivate
CIP3BeginPreviewImage
CIP3BeginSeparation
/HDMSeparationData CIP3BeginPrivate
/HDMInkCode /HDMInkB def
/HDMArrayCoverage 11.0833333 def
/HDMInkConsumption 11.083333 def
/HDMZoneCoverageValue [0.600000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 12.000000 17.400000 18.300000 17.300000 18.300000 14.900000 8.000000 9.600000 18.700000 18.100000 19.800000 18.200000 10.400000 1.500000 18.400000 22.300000 21.500000 22.200000 20.400000 12.000000 1.500000 0.600000 ] def
/HDMZoneCoverageValue [44.87 35.7 33.8 32.15 33.85 25.76 36.43 39.36 25.94 13.01 24.14 27.92 28.64 20.82 25.4 26.94 28.52 25.09 34.56 36.97 19.72 18.66 0 ] def
/HDMZoneStandardDeviation [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] def
CIP3EndPrivate
CIP3EndSeparation
CIP3BeginSeparation
/HDMSeparationData CIP3BeginPrivate
/HDMInkCode /HDMInkC def
/HDMArrayCoverage 1.6933333 def
/HDMInkConsumption 1.693333 def
/HDMZoneCoverageValue [0.600000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 9.100000 1.500000 1.500000 1.500000 0.600000 ] def
/HDMZoneCoverageValue [4.15 3.94 7.41 7.31 8.97 19.02 25.35 24.34 15.05 5.03 18.86 21.64 22.48 15.09 12.44 24.36 18.11 18.73 18.8 17.41 11.42 19.4 0 ] def
/HDMZoneStandardDeviation [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] def
CIP3EndPrivate
CIP3EndSeparation
CIP3BeginSeparation
/HDMSeparationData CIP3BeginPrivate
/HDMInkCode /HDMInkM def
/HDMArrayCoverage 20.67 def
/HDMInkConsumption 20.67 def
/HDMZoneCoverageValue [0.600000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 23.000000 29.200000 28.400000 28.400000 28.600000 31.100000 23.300000 31.800000 31.100000 28.500000 28.900000 29.200000 28.800000 30.000000 33.300000 30.800000 30.100000 28.100000 28.700000 31.000000 19.100000 7.600000 ] def
/HDMZoneCoverageValue [3.31 6.43 19.02 23.01 7.73 10.4 16.53 7.52 12.91 23.84 18.8 23.04 24.26 14.43 15.05 31.82 29.63 41.81 49.34 31.78 24.12 4.23 0 ] def
/HDMZoneStandardDeviation [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] def
CIP3EndPrivate
CIP3EndSeparation
CIP3BeginSeparation
/HDMSeparationData CIP3BeginPrivate
/HDMInkCode /HDMInkY def
/HDMArrayCoverage 22.5766667 def
/HDMInkConsumption 22.576667 def
/HDMZoneCoverageValue [0.600000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 1.500000 23.800000 30.500000 29.500000 29.800000 30.200000 31.900000 23.300000 34.100000 33.000000 30.600000 30.900000 31.300000 32.600000 35.400000 35.600000 33.800000 33.700000 33.600000 34.500000 35.800000 23.100000 9.200000 ] def
/HDMZoneCoverageValue [4.66 17.61 32.05 27.5 20.93 13.25 9.12 11.89 13.2 28.01 20.01 23.16 22.27 15.49 13.38 20.64 29.62 31.94 47.18 35.83 38.41 0.05 0 ] def
/HDMZoneStandardDeviation [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] def
CIP3EndPrivate
CIP3EndSeparation
CIP3EndPreviewImage
CIP3EndFront
CIP3EndSheet
%%CIP3EndOfFile
 
I don't know if it's required syntax, but I notice ours have spaces between the variables such as separation names etc

%!PS-Adobe-3.0
%%CIP3-File Version 2.1
% m_negativePrint:0
% m_mirrorPrint:0
% m_mediaClipRect:( 0, 0 )-( 1714.9609375, 2111.81103515625 )
% m_plateRect:( 0, 0 )-( 1714.9609375, 2111.81103515625 )
% m_appendNumSepsToFileName:0
% m_useOldPecomSpec:0
% m_deleteFilesAfterFTP:0
% m_sendFileUsingFTP:0
% m_imageHeightInPoints:2111.81
% m_imageWidthInPoints:1714.96
% m_rotateWithPreviewMatrix:1
% m_mirrorWithPreviewMatrix:1
% m_rotateCtpToPress:270
% m_replaceUnderscoresFromJobName:0
% m_useImpoNameForAdmJobName:1
% m_useSigNumInSheetNum:1
% m_bOutputJDF:0
% m_useImpoNameInFilename:1
% m_outputLowPageNumber:0
% m_truncateJobName:0
% m_writeMode:1
% m_outputType:1
CIP3BeginSheet
/CIP3AdmJobName (110739 Bentley Buzz - 2018 Summer lc 4pp 1 1 F) def
/CIP3AdmJobCode (110739 Bentley Buzz - 2018 Summer lc) def
/CIP3AdmMake (Creo) def
/CIP3AdmModel (Prinergy) def
/CIP3AdmCreationTime (Tue Mar 10 10:32:27 2020) def
/CIP3AdmSheetName (1/1F) def
/CIP3AdmPlateType () def
/CIP3AdmPSExtent [2111.81 1714.96] def
/CIP3AdmPlateTrf [1 0 0 1 0 0 ] def
/CIP3AdmPlateExtent [2111.81 1714.96] def
/CIP3AdmPressTrf [1 0 0 1 0 0 ] def
/CIP3AdmPressExtent [2111.81 1714.96] def
/CIP3AdmPaperTrf [1 0 0 1 -134.646 -99.213 ] def
/CIP3AdmPaperExtent [1842.52 1289.76] def
/CIP3TransferFilmCurveData [0.000 0.000 1.000 1.000 ] def
/CIP3TransferPlateCurveData [0.000 0.000 1.000 1.000 ] def
CIP3BeginFront
/CIP3AdmSeparationNames [ (Cyan) (Magenta) (Yellow) (Black) ] def
/CIP3AdmInkColors [ [ 86.4491 -83.4069 -21.7777 ] [ 67.6006 101.303 -50.8154 ] [ 97.5021 -16.4788 103.675 ] [ 0 0 -0 ] ] def
CIP3BeginPreviewImage
CIP3BeginSeparation
/CIP3PreviewImageComponents 1 def
/CIP3PreviewImageWidth 777 def
/CIP3PreviewImageHeight 630 def
/CIP3PreviewImageMatrix [0 630 777 0 0 0] def
/CIP3PreviewImageResolution [26.4583 26.4583] def
/CIP3PreviewImageBitsPerComp 8 def
/CIP3PreviewImageCompression /None def
/CIP3PreviewImageEncoding /ASCIIHexDecode def
CIP3PreviewImage
 
Hummm i see.
Gotta say that in all templates i've ever used there were no spaces between the SeparationNames.
Its like: /CIP3AdmSeparationNames [(Color1)(Color2)(ColorX...)] def {line feed}

I've many many PPF templates around here (including the ones with raw 1-Bit tiffs). They all use this pattern. Weird what you mentioned, i would really like to find more about it to be honest.

And i'm refactoring my entire code. Instead of using a template and replacing the specific positions with data, i'm manually writing the PPF as binary and setting things. It'll be more annoyone but will give more control over data.

And thanks for your input !
 
I'm gonna post here the final file i create (ppf). Just been a busy week (writing code for other stuff as well).
Those consoles are kinda nuts. Sometimes they don't read an file because they just don't want to.
I really realy would like to have a manual about their spects, what they expect to read. Seems kinda hard to find.
I've succesfully parsed CIP3 with 1-bit large TIF files (composite/separated)(ASCIIHex, RLE, ASCII85, FlateDecode)...but this one is being a pain in the ass lol
 

PressWise

A 30-day Fix for Managed Chaos

As any print professional knows, printing can be managed chaos. Software that solves multiple problems and provides measurable and monetizable value has a direct impact on the bottom-line.

“We reduced order entry costs by about 40%.” Significant savings in a shop that turns about 500 jobs a month.


Learn how…….

   
Back
Top