if (_PDFPageRef != NULL) // Check for non-NULL CGPDFPageRef
{
CGPDFPageRetain(_PDFPageRef); // Retain the PDF page
CEOPDFParser *parser = [[CEOPDFParser alloc] init]; // Parse content stream for highlight annots.
CGPDFOperatorTableRef opTable = parser.opTable;
_PDFContentStreamRef = CGPDFContentStreamCreateWithPage(_PDFPageRef);
_PDFScannerRef = CGPDFScannerCreate(_PDFContentStreamRef, opTable, NULL);
CGPDFScannerScan (_PDFScannerRef);
CGPDFScannerRelease (_PDFScannerRef);
CGPDFContentStreamRelease (_PDFContentStreamRef);
[parser release];
CGRect cropBoxRect = CGPDFPageGetBoxRect(_PDFPageRef, kCGPDFCropBox);
CGRect mediaBoxRect = CGPDFPageGetBoxRect(_PDFPageRef, kCGPDFMediaBox);
CGRect effectiveRect = CGRectIntersection(cropBoxRect, mediaBoxRect);
_pageAngle = CGPDFPageGetRotationAngle(_PDFPageRef); // Angle
switch (_pageAngle) // Page rotation angle (in degrees)