zoukankan      html  css  js  c++  java
  • PDF转jpg

     /Users/mac/Library/Developer/CoreSimulator/Devices/38BB3233-7551-4DBE-A3D9-58934568818D/data/Containers/Data/Application/B4866C5A-B68E-437F-A787-8C83FC7D13D2/Documents/

    上面模拟器Documents文件里添加pdf文件test.pdf

    调用:

    [self createJPGsFromPDF:test.pdf];

    -(void) createJPGsFromPDF:(NSString *)fromPDFName

    {

        

        if (fromPDFName == nil || [fromPDFName isEqualToString:@""]) {

            return;

        }

        

        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

        NSString *documentsDir = [paths objectAtIndex:0];

        

        NSString *docPath = [documentsDir stringByAppendingPathComponent:fromPDFName];

        

        

        NSURL *fromPDFURL = [NSURL fileURLWithPath:docPath];

        CGPDFDocumentRef fromPDFDoc = CGPDFDocumentCreateWithURL((CFURLRef) fromPDFURL);

       

        // Get Total Pages

        float pages = CGPDFDocumentGetNumberOfPages(fromPDFDoc);

        

        // Create Folder for store under "Documents/"

        NSError *error = nil;

        NSFileManager *fileManager = [[NSFileManager alloc] init];

        NSString *folderPath = [documentsDir stringByAppendingPathComponent:[fromPDFName stringByDeletingPathExtension]];

        [fileManager createDirectoryAtPath:folderPath withIntermediateDirectories:YES attributes:nil error:&error];

        

        int i = 1;

        for (i = 1; i <= pages; i++) {

            CGPDFPageRef pageRef = CGPDFDocumentGetPage(fromPDFDoc, i);

            CGPDFPageRetain(pageRef);

            

            // determine the size of the PDF page

            CGRect pageRect = CGPDFPageGetBoxRect(pageRef, kCGPDFMediaBox);

            

            // renders its content.

            UIGraphicsBeginImageContext(pageRect.size);

            

            CGContextRef imgContext = UIGraphicsGetCurrentContext();

            CGContextSaveGState(imgContext);

            CGContextTranslateCTM(imgContext, 0.0, pageRect.size.height);

            CGContextScaleCTM(imgContext, 1.0, -1.0);

            CGContextSetInterpolationQuality(imgContext, kCGInterpolationDefault);

            CGContextSetRenderingIntent(imgContext, kCGRenderingIntentDefault);

            CGContextDrawPDFPage(imgContext, pageRef);

            CGContextRestoreGState(imgContext);

            

            //PDF Page to image

            UIImage *tempImage = UIGraphicsGetImageFromCurrentImageContext();

            

            UIGraphicsEndImageContext();

            //Release current source page

            CGPDFPageRelease(pageRef);

            

            // Store IMG

            NSString *imgname = [NSString stringWithFormat:@"fromPDFName_%d.jpg", i];

            NSString *imgPath = [folderPath stringByAppendingPathComponent:imgname];

            [UIImageJPEGRepresentation(tempImage, 1.0) writeToFile:imgPath atomically:YES];

            

        }

        

        CGPDFDocumentRelease(fromPDFDoc);

        

    }

  • 相关阅读:
    【RabbitMQ】3、win7下安装RabbitMQ
    【协议】4、http状态码
    【协议】3、HTTP 协议入门
    【协议】2、TCP/IP协议三次握手与四次握手流程解析
    【Dubbo&&Zookeeper】5、dubbo总结和学习资料汇总
    【Dubbo&&Zookeeper】6、 给dubbo接口添加白名单——dubbo Filter的使用
    【Spring】27、JPA 实现乐观锁@Version注解的使用
    HBase 常用Shell命令
    Java操作XML的JAXB工具
    JAXB--@XmlType注解标注xml生成顺序
  • 原文地址:https://www.cnblogs.com/niexiaobo/p/4724530.html
Copyright © 2011-2022 走看看