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

        

    }

  • 相关阅读:
    viewer.js 显示图片名称和照片属性
    js中判断数组中是否包含某元素的方法(转载)
    js脚本如何更新, js后加?v=版本号的原因(转载)
    iview Carousel 走马灯或轮播图 点击事件失效
    sqlserver 查询表中所有字段的最大长度(转载)
    Ueditor文字和echarts图片 生成 word 前端解决方案
    Spark Streaming Backpressure分析
    Spark任务调度流程及调度策略分析
    Spark资源调度及任务调度
    spark streaming流式计算---监听器
  • 原文地址:https://www.cnblogs.com/niexiaobo/p/4724530.html
Copyright © 2011-2022 走看看