Skip to main content
Skip table of contents

Example of inspecting PDF files

This page applies to Harlequin v13.1r0 and later; and to Harlequin Core but not Harlequin MultiRIP.

This code listing gives a simple example of how to use the PDF inspection operators to obtain a page count from a PDF file.

As customary in examples, there is limited error handling, and some assumptions are made. For example, /Count might be indirect. This possibility is remote, but should be anticipated in production code, by checking the type of object returned.

% Example of use for the getPDFtrailer and getPDFobject
% routines in the RIP. Reports the total number of pages
% in the PDF file "example.pdf", without customary error checks.
2 dict begin

% Open the file
(example.pdf) (r) file /PDFFile exch def

% Create the PDF execution context
PDFFile << >> pdfopen /PDFContextID exch def

% Get the trailer object
PDFContextID 1183615869 internaldict /getPDFtrailer get exec

% Should have a /Root object
/Root get

PDFContextID exch 1183615869 internaldict /getPDFobject get exec

% Got the Catalog object, now look for /Pages
/Pages get

PDFContextID exch 1183615869 internaldict /getPDFobject get exec

% This top-level Pages object has the page count for
% the entire PDF file
/Count get
(PDF contains ) print 128 string cvs print ( pages) =

% Be sure to close the execution context and the physical file 
PDFContextID pdfclose PDFFile closefile
currentdict end

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.