Skip to main content

ThumbNail of PDF


-(void)thumbnailOfPDF{

    NSURL* pdfFileUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"test" ofType:@"pdf"]];
    CGPDFDocumentRef pdf = CGPDFDocumentCreateWithURL((CFURLRef)CFBridgingRetain(pdfFileUrl));
    CGPDFPageRef page;
    
    CGRect aRect = CGRectMake(0, 0, 70, 100); // thumbnail size
    UIGraphicsBeginImageContext(aRect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    UIImage* thumbnailImage;
    
    
    NSUInteger totalNum = CGPDFDocumentGetNumberOfPages(pdf);
    
    [self.thumbScrollView setContentSize:CGSizeMake(self.thumbScrollView.frame.size.width, totalNum*100)];
    for(int i = 0; i < totalNum; i++ ) {
        
        
        UIImageView *showThumbnail = [[UIImageView alloc]initWithFrame:CGRectMake(0, 100*i, 80, 80)];
        [showThumbnail setBackgroundColor:[UIColor redColor]];
        
        //Add the thumb Image on the ScrollView
        [self.thumbScrollView addSubview:showThumbnail];
        
        
        CGContextSaveGState(context);
        CGContextTranslateCTM(context, 0.0, aRect.size.height);
        CGContextScaleCTM(context, 1.0, -1.0);
        
        CGContextSetGrayFillColor(context, 1.0, 1.0);
        CGContextFillRect(context, aRect);
        
        
        // Grab the first PDF page
        page = CGPDFDocumentGetPage(pdf, i + 1);
        CGAffineTransform pdfTransform = CGPDFPageGetDrawingTransform(page, kCGPDFMediaBox, aRect, 0, true);
        // And apply the transform.
        CGContextConcatCTM(context, pdfTransform);
        
        CGContextDrawPDFPage(context, page);
        
        // Create the new UIImage from the context
        thumbnailImage = UIGraphicsGetImageFromCurrentImageContext();
        
        [showThumbnail setImage:thumbnailImage];
        //Use thumbnailImage (e.g. drawing, saving it to a file, etc)
        
        CGContextRestoreGState(context);
        
    }
    
    
    UIGraphicsEndImageContext();
    CGPDFDocumentRelease(pdf);
}

Comments

Popular posts from this blog

iOS9 iTune Upload Error : Invalid Bundle. iPad Multitasking support requires launch story board in bundle

1. Add the UIRequiresFullScreen key to your Xcode project’s Info.plist file and apply the Boolean value YES 2. This will fix one more issue that is coming at the time of iTune upload Invalid Bundle. iPad Multitasking support requires these orientations: 'UIInterfaceOrientationPortrait,UIInterfaceOrientationPortraitUpsideDown,UIInterfaceOrientationLandscapeLeft,UIInterfaceOrientationLandscapeRight'. If your application only using single orientation then use the above keyword in info.plist

Code Review Tool for Objective-C

Clang Static Analyzer The Clang Static Analyzer is a source code analysis tool that finds bugs in C, C++, and Objective-C programs. Currently it can be run either as a  standalone tool  or  within Xcode . The standalone tool is invoked from the command line, and is intended to be run in tandem with a build of a codebase. The analyzer is 100% open source and is part of the  Clang project. Like the rest of Clang, the analyzer is implemented as a C++ library that can be used by other tools and applications. Download Mac OS X Latest build (Intel-only binary, 10.5+): checker-275.tar.bz2  (built May 23, 2013) Release notes This build can be used both from the command line and from within Xcode Installation  and  usage Other Platforms For other platforms, please follow the instructions for  building the analyzer  from source code. Viewing static analyzer results in Xcode Viewing static analyzer results in a web ...