• UIWebView全部区域截图保存为UIImage或者PDF


    //  
    //  UIWebView+ToFile.h  
    //  UIWebViewToFile  
    //  
    //  Created by Tracy E on 13-6-10.  
    //  Copyright (c) 2013 EsoftMobile.com. All rights reserved.  
    //  
      
    #import <UIKit/UIKit.h>  
      
    @interface UIWebView (ToFile)  
      
    - (UIImage *)imageRepresentation;  
      
    - (NSData *)PDFData;  
      
    @end  
    //  
    //  UIWebView+ToFile.m  
    //  UIWebViewToFile  
    //  
    //  Created by Tracy E on 13-6-10.  
    //  Copyright (c) 2013 EsoftMobile.com. All rights reserved.  
    //  
      
    #import "UIWebView+ToFile.h"  
    #import <QuartzCore/QuartzCore.h>  
      
    @implementation UIWebView (ToFile)  
      
    - (UIImage *)imageRepresentation{  
        CGFloat scale = [UIScreen mainScreen].scale;  
          
        CGSize boundsSize = self.bounds.size;  
        CGFloat boundsWidth = boundsSize.width;  
        CGFloat boundsHeight = boundsSize.height;  
          
        CGSize contentSize = self.scrollView.contentSize;  
        CGFloat contentHeight = contentSize.height;  
      
        CGPoint offset = self.scrollView.contentOffset;  
      
        [self.scrollView setContentOffset:CGPointMake(0, 0)];  
          
        NSMutableArray *images = [NSMutableArray array];  
        while (contentHeight > 0) {  
            UIGraphicsBeginImageContextWithOptions(boundsSize, NO, 0.0);  
            [self.layer renderInContext:UIGraphicsGetCurrentContext()];  
            UIImage *image = UIGraphicsGetImageFromCurrentImageContext();  
            UIGraphicsEndImageContext();  
            [images addObject:image];  
              
            CGFloat offsetY = self.scrollView.contentOffset.y;  
            [self.scrollView setContentOffset:CGPointMake(0, offsetY + boundsHeight)];  
            contentHeight -= boundsHeight;  
        }  
        [self.scrollView setContentOffset:offset];  
          
        CGSize imageSize = CGSizeMake(contentSize.width * scale,  
                                      contentSize.height * scale);  
        UIGraphicsBeginImageContext(imageSize);  
        [images enumerateObjectsUsingBlock:^(UIImage *image, NSUInteger idx, BOOLBOOL *stop) {  
            [image drawInRect:CGRectMake(0,  
                                         scale * boundsHeight * idx,  
                                         scale * boundsWidth,  
                                         scale * boundsHeight)];  
        }];  
        UIImage *fullImage = UIGraphicsGetImageFromCurrentImageContext();  
        UIGraphicsEndImageContext();  
        return fullImage;  
    }  
      
    - (NSData *)PDFData{  
        UIViewPrintFormatter *fmt = [self viewPrintFormatter];  
        UIPrintPageRenderer *render = [[UIPrintPageRenderer alloc] init];  
        [render addPrintFormatter:fmt startingAtPageAtIndex:0];  
        CGRect page;  
        page.origin.x=0;  
        page.origin.y=0;  
        page.size.width=600;  
        page.size.height=768;  
          
        CGRect printable=CGRectInset( page, 50, 50 );  
        [render setValue:[NSValue valueWithCGRect:page] forKey:@"paperRect"];  
        [render setValue:[NSValue valueWithCGRect:printable] forKey:@"printableRect"];  
          
        NSMutableData * pdfData = [NSMutableData data];  
        UIGraphicsBeginPDFContextToData( pdfData, CGRectZero, nil );  
          
        for (NSInteger i=0; i < [render numberOfPages]; i++)  
        {  
            UIGraphicsBeginPDFPage();  
            CGRect bounds = UIGraphicsGetPDFContextBounds();  
            [render drawPageAtIndex:i inRect:bounds];  
              
        }  
        UIGraphicsEndPDFContext();  
        return pdfData;  
    }  
      
      
    @end  
  • 相关阅读:
    Tomcat环境的搭建(web基础学习笔记一)
    子查询二(在HAVING子句中使用子查询)
    子查询一(WHERE中的子查询)
    分组统计查询(学习笔记)
    Oracle体系结构一(学习笔记)
    表分区(学习笔记)
    索引(学习笔记)
    序列(学习笔记)
    触发器七(复合触发器)(学习笔记)
    触发器六(系统触发器)(学习笔记)
  • 原文地址:https://www.cnblogs.com/mkai/p/6635759.html
Copyright © 2020-2023  润新知