1. Go to this page and download the library: Download arajcany/pre-press-tricks library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
arajcany / pre-press-tricks example snippets
use arajcany\PrePressTricks\Ticketing\XPIF\XpifTicket;
/*
* Probably the most basic ticket you can make.
*
* Notes:
* Finishing values of
* 28 = staple-dual-left
* 92 = punch-4-hole
* 93 = punch-left
* The 'media' is defined as 'A4-White-80gsm' as my RIP has a stock catalogue with such defined
*
*/
//create a ticket object based on a specific XPIF version
$ticket = new XpifTicket('2.082a');
//populate the ticket with properties
$ticket
->setJobName("For_the_Term_of_His_Natural_Life.pdf")
->setRequestingUserName("John Smith")
->setCopies(2)
->setFinishings([28, 93, 92])
->setSheetCollate('collated')
->setSides('two-sided-long-edge')
->setMedia('A4-White-80gsm');
//render the ticket (returns xml string AND optionally writes to filesystem)
$string = $ticket->render("C:\\tmp\\Example_01.xpf");
//name of the job, typically the filename
$ticket->setJobName("For_the_Term_of_His_Natural_Life.pdf");
//name of user printing the job
$ticket->setRequestingUserName("Joe Citizen");
//number of copies
$ticket->setCopies(2);
//print only the pages within this range inclusive
$ticket->setPageRanges([1, 77]);
//the finishing values, you will need to know what each number represents
$ticket->setFinishings([28, 93, 92]);
//mime type
$ticket->setDocumentFormat("application/pdf");
//name of the stock as defined in the RIP or printer
$ticket->setMedia('Plain-White-A4-80gsm');
//print the job as 'color' │ 'monochrome-grayscale'
$ticket->setColorEffectsType('color');
//id for accounting / reconciliation purposes
$ticket->setJobAccountId('123');
//user id requesting job accounting data
$ticket->setJobAccountingUserId('AU004133');
//extra data that is useful for accounting and reconciliation purposes
$ticket->setJobAccountingData("From Web-2-Portal System A");
//name of the user that will receive the job
$ticket->setJobRecipientName("Jane Doe");
//message that is passed to the RIP or printer with the job, typically printed on a banner page
$ticket->setJobSheetMessage("Please refer to work ticket for additional instructions");
//message that is passed to the RIP or printer with the job, typically displayed to the operator
$ticket->setJobMessageToOperator("Urgent and fussy client");
//use the indicated orientation (portrait, landscape, reverse-landscape, reverse-portrait)
$ticket->setOrientationRequested(3);
//job collation
$ticket->setSheetCollate("Collated");
//sides to print on 'one-sided' │ 'two-sided' │ 'two-sided-short-edge' │ 'two-sided-long-edge'
$ticket->setSides("one-sided");
//commonly used in forcing a page to print on the RHS for double sided printing (i.e. chapter starts)
$ticket->setForceFrontSide([1, 5, 9, 12]);
//render the ticket (returns xml string AND optionally writes to filesystem)
$string = $ticket->render("C:\\tmp\\Example_02.xpf");
/*
* The following examples achieve the same result
*/
//concrete method
$ticket->setJobName("For the Term of His Natural Life");
//generic
$ticket->setProperty("job-name", "For the Term of His Natural Life");
//concrete method
$ticket->setSides("one-sided");
//generic
$ticket->setProperty("sides", "one-sided");
//concrete method
$ticket->setSheetCollate("Collated");
//generic
$ticket->setProperty("sheet-collate", "Collated");
//example of other properties you might like to set
$ticket->setProperty("file-name", "For_the_Term_of_His_Natural_Life.pdf");
$ticket->setProperty("job-id-from-client", "D704432_SEQ001");
$ticket->setProperty("printer-resolution", "1200");
//concrete methods for 3 of the most common undefined children of value
//concrete method
$ticket->setFinishings([28, 93, 92]);
//generic equivalent
$ticket->setProperty('xpif.job-template-attributes.finishings.value.0', '28', ['syntax' => "enum"]);
$ticket->setProperty('xpif.job-template-attributes.finishings.value.1', '93', ['syntax' => "enum"]);
$ticket->setProperty('xpif.job-template-attributes.finishings.value.2', '92', ['syntax' => "enum"]);
//concrete method
$ticket->setPageRanges([1, 50]);
//generic equivalent
$ticket->setProperty('xpif.job-template-attributes.page-ranges.value.lower-bound', '1');
$ticket->setProperty('xpif.job-template-attributes.page-ranges.value.upper-bound', '50');
//concrete method
$ticket->setForceFrontSide([1, 10, 19, 32]);
//generic equivalent
$ticket->setProperty('xpif.job-template-attributes.force-front-side.value.0', '1', ['syntax' => "integer"]);
$ticket->setProperty('xpif.job-template-attributes.force-front-side.value.2', '10', ['syntax' => "integer"]);
$ticket->setProperty('xpif.job-template-attributes.force-front-side.value.3', '19', ['syntax' => "integer"]);
$ticket->setProperty('xpif.job-template-attributes.force-front-side.value.4', '32', ['syntax' => "integer"]);
use arajcany\PrePressTricks\Ticketing\XPIF\XpifTicket;
$ticket = new XpifTicket('2.082a');
$ticket->setJobName("For_the_Term_of_His_Natural_Life.pdf");
$ticket->setMedia('Plain-White-A4-80gsm');
use arajcany\PrePressTricks\Ticketing\XPIF\XpifTicket;
use arajcany\PrePressTricks\Ticketing\XPIF\XpifMediaCollection;
$mediaCollection = new XpifMediaCollection('2.082a');
$mediaCollection
->setMediaKey('plain-white-a4-80gsm')
->setMediaType('plain')
->setMediaInfo('This is our standard white paper')
->setMediaColor('white')
->setMediaPrePrinted('blank')
->setMediaHoleCount(0)
->setMediaOrderCount(1)
->setMediaSize([21000, 29700])
->setMediaWeightMetric(80)
->setMediaBackCoating('plain')
->setMediaFrontCoating('plain')
->setMediaRecycled('')
->setMediaDescription('')
->setMediaTooth('')
->setMediaGrain('')
->setMediaMaterial('')
->setMediaThickness('')
->setMediaSizeName('A4')
->setInputTray('')
->setTrayFeed('')
->setFeedOrientation('')
->setMediaMismatchPropertyPolicy('')
->setMediaMismatchSizePolicy('');
//note: the above is a complete list of concrete methods, you do not need to set all of them!
$ticket = new XpifTicket('2.082a');
$ticket->setJobName("For_the_Term_of_His_Natural_Life.pdf");
$ticket->setMediaCollection($mediaCollection);
use arajcany\PrePressTricks\Ticketing\XPIF\XpifCoverFrontCollection;
use arajcany\PrePressTricks\Ticketing\XPIF\XpifCoverBackCollection;
use arajcany\PrePressTricks\Ticketing\XPIF\XpifInsertSheetCollection;
use arajcany\PrePressTricks\Ticketing\XPIF\XpifPageOverridesCollection;
//front cover collection
$coverFrontCollection = new XpifCoverFrontCollection('2.082a');
$coverFrontCollection
->setCoverType('print-both')
->setMediaCollection($blueCoverMediaCollection) //we created $blueCoverMedia in Example 5
->setMedia('the-name-of-the-stock'); //not necessary if you use setMediaCollection()
//back cover collection
$coverBackCollection = new XpifCoverBackCollection('2.082a');
$coverBackCollection
->setCoverType('print-both')
->setMediaCollection($greenCoverMediaCollection) //we created $greenCoverMedia in Example 5
->setMedia('the-name-of-the-stock'); //not necessary if you use setMediaCollection()
//insert sheet collection
$pinkInsertSheetCollection = new XpifInsertSheetCollection('2.082a');
$pinkInsertSheetCollection
->setInsertAfterPageNumber('0')
->setInsertCount(1)
->setMediaCollection($pinkMediaCollection) //we created $pinkMediaCollection in Example 5
->setMedia('the-name-of-the-stock'); //not necessary if you use setMediaCollection()
//page overrides collection
$yellowPageOverridesCollection = new XpifPageOverridesCollection('2.082a');
$yellowPageOverridesCollection
->setPages('1-5')
->setMediaCollection($yellowMediaCollection) //we created $yellowMediaCollection in Example 5
->setMedia('the-name-of-the-stock'); //not necessary if you use setMediaCollection()
//insert the above 4 collections into your xpif ticket with the following 4 concrete methods
$ticket->setCoverFrontCollection($coverFrontCollection);
$ticket->setCoverBackCollection($coverBackCollection);
$ticket->setInsertSheetCollection($pinkInsertSheetCollection);
$ticket->setPageOverridesCollection($yellowPageOverridesCollection);
use arajcany\PrePressTricks\Ticketing\XPIF\XpifTicket;
use arajcany\PrePressTricks\Ticketing\XPIF\XpifMediaCollection;
use arajcany\PrePressTricks\Ticketing\XPIF\XpifCoverFrontCollection;
use arajcany\PrePressTricks\Ticketing\XPIF\XpifCoverBackCollection;
use arajcany\PrePressTricks\Ticketing\XPIF\XpifInsertSheetCollection;
use arajcany\PrePressTricks\Ticketing\XPIF\XpifPageOverridesCollection;
$titleStart = '1';
$imprintStart = '2';
$prefaceStart = '3';
$prologueStart = '4';
$bookStarts ='13,79,173,331';
$chapterStarts ='14,21,28,31,35,41,49,56,62,67,75,78,80,83,86,95,98,101,108,113,118,123,129,140,147,151,158,164,168,174,185,194,201,208,212,217,221,225,233,243,245,249,253,260,265,269,273,276,279,282,290,300,305,311,315,325,332,341,351,357,361,365,371,375,379,383,389,392,397,402,410,415,418,423';
$epilogueStart = '428';
//Start by setting up a default white media collection.
$defaultWhiteMediaCollection = (new XpifMediaCollection('2.082a'))
->setMediaType('plain')
->setMediaColor('white')
->setMediaPrePrinted(false)
->setMediaSize([21000, 29700])
->setMediaWeightMetric(80);
//Create the other needed media collections by cloning and modifying
$blueCoverMediaCollection = (clone $defaultWhiteMediaCollection)->setMediaColor('blue')->setMediaWeightMetric(200);
$yellowDividerMediaCollection = (clone $defaultWhiteMediaCollection)->setMediaColor('yellow')->setMediaWeightMetric(200);
$pinkMediaCollection = (clone $defaultWhiteMediaCollection)->setMediaColor('pink');
//Create the exception and insert pages that don't ->setInsertCount(1)
->setMediaCollection($yellowDividerMediaCollection);
//push into the xpif ticket
$ticket = $ticket->setInsertSheetCollection($bookStartInsert);
}
//we need to loop the chapter starts
foreach (explode(',', $chapterStarts) as $chapterStart) {
$chapterStartException = (new XpifPageOverridesCollection('2.082a'))
->setPages([$chapterStart, $chapterStart + 1])
->setMediaCollection($pinkMediaCollection);
//push into the xpif ticket
$ticket = $ticket->setPageOverridesCollection($chapterStartException);
}
$xpifXml = $ticket->render();
print_r($xpifXml);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.