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);

        

    }

  • 相关阅读:
    Linux 系统目录 以及常见命令
    设计模式C++学习笔记之十三(Decorator装饰模式)
    设计模式C++学习笔记之二(Proxy代理模式)
    Linux 文件基本操作
    Linux 文件系统基本结构 以及命令行 管理
    Linux 入门 bash语句 第三课
    JMeter学习参数化User Defined Variables与User Parameters
    JMeter使用中遇到的问题:Jmeter Debug
    JMeter学习(九)FTP测试计划
    JMeter学习(八)JDBC测试计划-连接Oracle
  • 原文地址:https://www.cnblogs.com/niexiaobo/p/4724530.html
Copyright © 2011-2022 走看看