Просмотр исходного кода

eSign

修复iOS 11 兼容性问题
Ray Zhang 8 лет назад
Родитель
Сommit
b06b283d80

+ 0 - 14
Ants Contract/common/PDFPageView.h

@@ -1,14 +0,0 @@
-//
-//  PDFPageView.h
-//  AntsContract
-//
-//  Created by Ray on 12/16/16.
-//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-
-@interface PDFPageView : UIView
-@property size_t pageIndex;
-@property CGPDFPageRef pageRef;
-@end

+ 0 - 136
Ants Contract/common/PDFPageView.m

@@ -1,136 +0,0 @@
-//
-//  PDFPageView.m
-//  AntsContract
-//
-//  Created by Ray on 12/16/16.
-//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
-//
-
-#import "PDFPageView.h"
-
-@implementation PDFPageView
-
-
-// Only override drawRect: if you perform custom drawing.
-// An empty implementation adversely affects performance during animation.
-- (void)drawRect:(CGRect)rect {
-    // Drawing code
-    
-            //CGPDFDocumentRef document = [self OpenPDF:@"GEIC - Home Improvement Contract 2016.pdf"];
-    
-    
-    
-
-
-    
-        CGContextRef context = UIGraphicsGetCurrentContext();
-    
-    [self MyDisplayPDFPage:context index:self.pageIndex ];//file:@"GEIC - Home Improvement Contract 2016.pdf"];
-}
-
-
-
--(void) MyDisplayPDFPage:(CGContextRef) myContext index:(size_t)pageNumber //file:(NSString*) filename//(,  , const char *filename)
-{
-    
-//    double vwidth=self.frame.size.width;
-//    double vheight = self.frame.size.height;
-    
-    
-    {
-    CGPDFPageRef page = self.pageRef;
-
-    CGContextSaveGState (myContext);
-    
-//                CGRect mediabox= CGPDFPageGetBoxRect(page, kCGPDFMediaBox);
-        
-//                CGContextTranslateCTM(myContext, 0, mediabox.size.height);
-//                CGContextScaleCTM(myContext, 1, -1);
-
-     //   CGAffineTransform pdfTransform = CGPDFPageGetDrawingTransform(page, kCGPDFMediaBox, self.frame, 0, true);
-
-        
-        CGRect mediabox= CGPDFPageGetBoxRect(page, kCGPDFMediaBox);
-        double scalex = self.frame.size.width/mediabox.size.width;
-        double scaley = self.frame.size.height/mediabox.size.height;
-        
-        double scale = scalex<scaley?scalex:scaley;
-        
-        CGAffineTransform translate_transform = CGAffineTransformMakeTranslation ( (self.frame.size.width-mediabox.size.width*scale)/2, 0 );
-        
-        CGAffineTransform scale_transform=CGAffineTransformScale ( translate_transform, scale, scale );
-        
-        CGContextConcatCTM(myContext, scale_transform);
-        
-
-        CGContextScaleCTM(myContext, 1, -1);
-        CGContextTranslateCTM(myContext, 0, -self.frame.size.height/scale_transform.a);
-        
-
-    CGContextDrawPDFPage (myContext, page);
-    CGContextRestoreGState (myContext);
-    }
-    
-    
-    
-    
-    
-//    CGPDFPageRef page = self.pageRef;
-//
-//    CGContextSaveGState (myContext);
-//    
-//    CGRect mediabox= CGPDFPageGetBoxRect(page, kCGPDFMediaBox);
-//    
-//    CGContextTranslateCTM(myContext, 0, mediabox.size.height);
-//    // Reverse the Y axis to grow from bottom to top.
-//    CGContextScaleCTM(myContext, 1, -1);
-//    
-//    CGContextDrawPDFPage (myContext, page);
-//    CGContextRestoreGState (myContext);
-//    return ;
-    
-//    {
-//        
-//        // CGPDFDocumentRef document;
-//        CGPDFPageRef page = self.pageRef;
-//
-//        CGContextSaveGState (myContext);
-//        
-//        
-//        CGRect mediabox= CGPDFPageGetBoxRect(page, kCGPDFMediaBox);
-//        
-//        CGContextTranslateCTM(myContext, 0, mediabox.size.height);
-//        CGContextScaleCTM(myContext, 1, -1);
-//        
-//        CGContextDrawPDFPage (myContext, page);
-//        CGContextRestoreGState (myContext);
-//    }
-    
-    
-    
-    
-    
- /*
-   // CGPDFDocumentRef document;
-    CGPDFPageRef page = self.pageRef;
- //   document = [self OpenPDF:filename];                                   // 1 创建PDFDocument对象
-  //  page = CGPDFDocumentGetPage (document, pageNumber);           // 2 获取指定页的PDF文档
-    
-    
-//    CGAffineTransform m;
-//    m = CGPDFPageGetDrawingTransform (page, kCGPDFMediaBox, self.bounds, -180, true);
-    CGContextSaveGState (myContext);
-    
-    CGContextTranslateCTM(myContext, 80, self.frame.size.height);
-    CGContextScaleCTM(myContext, 1, -1);
-    
- //   CGContextConcatCTM (myContext, m);
-  //  CGContextClipToRect (myContext,CGPDFPageGetBoxRect (page, kCGPDFCropBox));
-    CGContextDrawPDFPage (myContext, page);
-    CGContextRestoreGState (myContext);
-    */
-    
-  //  CGContextDrawPDFPage (myContext, page);                                       // 3 将PDF绘制到图形上下文中
-//    CGPDFDocumentRelease (document);
-}
-@end

+ 0 - 13
Ants Contract/common/PDFScrollView.h

@@ -1,13 +0,0 @@
-//
-//  PDFScrollView.h
-//  AntsContract
-//
-//  Created by Ray on 12/19/16.
-//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-
-@interface PDFScrollView : UIScrollView
-
-@end

+ 0 - 21
Ants Contract/common/PDFScrollView.m

@@ -1,21 +0,0 @@
-//
-//  PDFScrollView.m
-//  AntsContract
-//
-//  Created by Ray on 12/19/16.
-//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
-//
-
-#import "PDFScrollView.h"
-
-@implementation PDFScrollView
-
-/*
-// Only override drawRect: if you perform custom drawing.
-// An empty implementation adversely affects performance during animation.
-- (void)drawRect:(CGRect)rect {
-    // Drawing code
-}
-*/
-
-@end

+ 0 - 45
RedAnt ERP Mobile/common/Functions/PDF+Web/PDFViewController.h

@@ -1,45 +0,0 @@
-//
-//  PDFViewController.h
-//  RedAnt ERP Mobile
-//
-//  Created by Ray on 14-8-7.
-//  Copyright (c) 2014年 United Software Applications, Inc. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-#import <MessageUI/MessageUI.h>
-@interface PDFViewController : UIViewController<UIDocumentInteractionControllerDelegate,MFMailComposeViewControllerDelegate,UIPrintInteractionControllerDelegate>
-@property (strong, nonatomic) IBOutlet UIWebView *webView;
-@property (strong, nonatomic) IBOutlet UIActivityIndicatorView *mum;
-@property (strong,nonatomic) NSString* url; //pdf 路径,可以是网络路径或文件路径
-@property (strong,nonatomic) NSString* filename; // 保存为文件时指定的名称
-@property (strong,nonatomic) NSData* content;
-@property bool isLocalfile;
-@property (strong, nonatomic) IBOutlet UIBarButtonItem *BB_action;
-@property (strong,nonatomic) UIDocumentInteractionController* fileInteractionController;
-@property (nonatomic , copy) void (^onLoadSuccess)(NSString* url );
-@property (nonatomic,copy) NSString *cachePath; //指定的保存路径
-
-@property (nonatomic , copy) void (^onSavePDF)(NSString* name,NSString* file );
-@property (strong,nonatomic) NSString* mail_subject;
-@property (strong,nonatomic) NSString* mail_content;
-@property (strong,nonatomic) NSArray* mail_to;
-@property (strong,nonatomic) NSString* save_name; // save 按钮默认保存名
-@property (strong,nonatomic) NSString* save_note;
-
-@property (strong, nonatomic)  UIBarButtonItem *btnshare;
-@property (strong, nonatomic)  UIBarButtonItem *btnPrint;
-@property (strong, nonatomic)  UIBarButtonItem *btnemail;
-@property (strong, nonatomic)  UIBarButtonItem *btnsave;
-
-
-@property bool autoPrint;
-@property bool hidenavi;
-
-@property bool canSave;
-
-@property bool defaultStyle;
-
-
-@property (strong,nonatomic) NSString* attachment_name; //email 按钮附件名称(已废弃)
-@end

+ 0 - 942
RedAnt ERP Mobile/common/Functions/PDF+Web/PDFViewController.m

@@ -1,942 +0,0 @@
-//
-//  PDFViewController.m
-//  RedAnt ERP Mobile
-//
-//  Created by Ray on 14-8-7.
-//  Copyright (c) 2014年 United Software Applications, Inc. All rights reserved.
-//
-
-#import "PDFViewController.h"
-#import "RAUtils.h"
-#import "const.h"
-#import "AppDelegate.h"
-#import "PDFUtils.h"
-#import "TextUtils.h"
-
-
-@interface PDFViewController ()
-
-@end
-
-@implementation PDFViewController
-
-- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
-{
-    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
-    if (self) {
-        // Custom initialization
-    }
-    return self;
-}
-
-- (void)setFilename:(NSString *)filename {
-    _filename = [TextUtils legalFilename:filename];
-}
-
-- (void)viewDidLoad
-{
-    
-    NSLog(@"pdf viewer loaded");
-    [super viewDidLoad];
-    // Do any additional setup after loading the view.
-    UIRefreshControl *ref = [[UIRefreshControl alloc]init];
-    ref.tag = 200 ;
-    ref.attributedTitle = [[NSAttributedString alloc]initWithString:@"drag to refresh"];
-    ref.tintColor = [UIColor colorWithRed:0.10 green:0.68 blue:0.94 alpha:0.7];
-    //    ref.hidden = true;
-    [ref addTarget:self action:@selector(changeCell) forControlEvents:UIControlEventValueChanged];
-    [self.webView.scrollView addSubview:ref];
-    
-    
-    self.webView.dataDetectorTypes=UIDataDetectorTypeAll;
-    
-    
-  
-    
-
-   // self.btnsave.tintColor = UIColorFromRGB(0x996633);
-    
-    if(self.defaultStyle)
-    {
-
-        self.btnshare =[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction
-                                                                     target:self
-                                                                     action:@selector( onActionClick:)];
-
-        
-        
-        self.btnPrint =[[UIBarButtonItem alloc] initWithTitle:@"Print"
-                                                                    style:UIBarButtonItemStylePlain
-                                                                    target:self
-                                                                    action:@selector( onPrintClick:)];
-        
-        NSMutableArray * items = [[NSMutableArray alloc]init];
-        [items addObject:self.btnshare];
-        [items addObject:self.btnPrint];
-
-        self.navigationItem.rightBarButtonItems =items;
-        
-        
-       if (self.navigationController.viewControllers[0]==self )
-       {
-           UIBarButtonItem *closeButton =nil;
-           
-           
-           
-           closeButton=[[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"close"] imageWithRenderingMode:UIImageRenderingModeAutomatic]
-                                                        style:UIBarButtonItemStylePlain
-                                                       target:self
-                                                       action:@selector( onCloseClick:)];
-           //[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Close", nil) style:UIBarButtonItemStylePlain target:self action:@selector(onCloseClick:)];
-           //    closeButton.title = @"Close";
-           
-           self.navigationItem.leftBarButtonItem = closeButton;
-       }
-
-        
-    }
-    else
-    {
-        UIBarButtonItem *closeButton =nil;
-        
-        
-        
-        closeButton=[[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"back"] imageWithRenderingMode:UIImageRenderingModeAutomatic]
-                                                     style:UIBarButtonItemStylePlain
-                                                    target:self
-                                                    action:@selector( onBackClick:)];
-        //[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Close", nil) style:UIBarButtonItemStylePlain target:self action:@selector(onCloseClick:)];
-        //    closeButton.title = @"Close";
-        
-        self.navigationItem.leftBarButtonItem = closeButton;
-        
-        
-        
-        
-        self.btnshare = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"share"] imageWithRenderingMode:UIImageRenderingModeAutomatic]
-                                                         style:UIBarButtonItemStylePlain
-                                                        target:self
-                                                        action:@selector(onActionClick:)];//[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Edit", nil) style:UIBarButtonItemStylePlain target:self action:@selector(onOpenOrderClick:)];
-        
-        // self.btnshare.tintColor = UIColorFromRGB(0x996633);
-        
-        self.btnemail =[[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"mail"] imageWithRenderingMode:UIImageRenderingModeAutomatic]
-                                                        style:UIBarButtonItemStylePlain
-                                                       target:self
-                                                       action:@selector(onEmailClick:)];// [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Commit", nil) style:UIBarButtonItemStylePlain target:self action:@selector(onCommitOrderClick:)];
-        
-        //  self.btnemail.tintColor = UIColorFromRGB(0x996633);
-        
-        // self.btnSend = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Email", nil) style:UIBarButtonItemStylePlain target:self action:@selector(onSendMailClick:)];
-        
-        
-        
-        self.btnsave = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"save"] imageWithRenderingMode:UIImageRenderingModeAutomatic]
-                                                        style:UIBarButtonItemStylePlain
-                                                       target:self
-                                                       action:@selector(onSaveClick:)];        
-        UIBarButtonItem *fixedItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
-        fixedItem.width = 20.0f;
-        NSMutableArray * items = [[NSMutableArray alloc]init];
-        [items addObject:self.btnshare];
-        [items addObject:fixedItem];
-        [items addObject:self.btnemail];
-        
-        if(self.canSave)
-        {
-            [items addObject:fixedItem];
-            [items addObject:self.btnsave];
-        }
-        self.navigationItem.rightBarButtonItems=items;
-        
-        self.btnshare.enabled =false;
-        
-        
-        self.btnemail.enabled =false;
-        self.btnsave.enabled =false;
-        
-    }
-
-    
-//   self.url=@"http://192.168.1.3:8080/npd/test.pdf";
-//    NSURL* url = [NSURL URLWithString:self.url];
-//    
-//    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:self.url]        cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:2000];
-//    
-//    
-//    [self.webView loadRequest:request];
-    
-    
-    [self loadcontent];
-}
-- (void)onBackClick:(UIButton *)sender {
-    
-    
-    [self.navigationController popViewControllerAnimated:FALSE];
-}
-- (void)onCloseClick:(UIButton *)sender {
-    
-    [self dismissViewControllerAnimated:false completion:nil];
-    //[self.navigationController popViewControllerAnimated:FALSE];
-}
--(void)ReloadData
-{
-    
-    //    Count ++ ;
-    //    [mytabelview reloadData];
-    UIRefreshControl *reF = (UIRefreshControl *)[self.view viewWithTag:200];
-    
-    [reF endRefreshing];
-    [self loadcontent];
-
-    
-}
-
-- (void)copyTmpLocalFile:(NSString *)localPath {
-    
-    NSString *path = NSTemporaryDirectory();
-    NSString *filePath = [path stringByAppendingPathComponent:self.filename];
-    NSFileManager *fileManager = [NSFileManager defaultManager];
-    if ([fileManager fileExistsAtPath:filePath]) { // 文件存在就不会拷贝
-        [fileManager removeItemAtPath:filePath error:nil];
-    }
-    [fileManager copyItemAtPath:localPath toPath:filePath error:nil];
-    self.url = filePath;
-}
-
--(void) loadcontent
-{
-    
-    UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait..." title:@"Loading..."];
-    self.mum.hidden=false;
-    
-    if(self.isLocalfile)
-    {
-        /*
-        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
-        NSString *cachefolder = [paths objectAtIndex:0];
-        NSString *pdfFolder = [cachefolder stringByAppendingPathComponent:@"pdf_cache"];
-        self.url = [pdfFolder stringByAppendingPathComponent:self.url];
-        */
-        
-        self.content= [NSData dataWithContentsOfFile:self.url];
-        
-        [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
-        
-        if (self.filename.length <= 0) {
-            self.filename=[self.url lastPathComponent];
-        } else {
-            [self copyTmpLocalFile:self.url];
-        }
-        
-        self.btnshare.enabled =true;
-        
-        
-        self.btnemail.enabled =true;
-        self.btnsave.enabled =true;
-        
-//        if(self.onLoadSuccess)
-//        self.onLoadSuccess(self.url);
-//        
-//        if(self.autoPrint)
-//        [self startAirPrintWithData:self.content];
-        
-//        NSLog(@"put file to webview");
-//        [self.webView loadData:self.content MIMEType:@"application/pdf" textEncodingName:nil baseURL:nil];
-        
-        NSURL *url = [NSURL fileURLWithPath:self.url];
-        NSURLRequest *request = [NSURLRequest requestWithURL:url];
-        [self.webView loadRequest:request];
-        
-    }
-    else
-    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
-        
-        
-        NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:self.url]        cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60*5];
-        
-        //设置请求方式为get
-        
-        [request setHTTPMethod:@"GET"];
-        
-        //添加用户会话id
-        
-        [request addValue:@"text/html" forHTTPHeaderField:@"Content-Type"];
-        
-        //连接发送请求
-        
-        
-        NSHTTPURLResponse* urlResponse = nil;
-        
-        NSError *error = nil;
-        
-        self.content= [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
-        
-        if(self.filename.length<=0)
-            self.filename = [urlResponse suggestedFilename];
-        
-        
-        dispatch_async(dispatch_get_main_queue(), ^{
-            [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
-            
-            [[self navigationController] setNavigationBarHidden:self.hidenavi animated:NO];
-            self.navigationItem.title = self.save_name;
-            UIRefreshControl *reF = (UIRefreshControl *)[self.view viewWithTag:200];
-          //  self.content=nil;
-            if(self.content!=nil&&self.content.length>0)
-            {
-                [reF removeFromSuperview];
-                
-                
-               // NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
-                NSString *path = NSTemporaryDirectory();
-                NSString *filePath = [path stringByAppendingPathComponent:self.filename];
-                //    NSError *error = nil;
-                //    BOOL bo = [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:&error];
-                //    NSAssert(bo,@"创建目录失败");
-                if (self.cachePath.length) {
-                    filePath = self.cachePath;
-                }
-                
-                [self.content writeToFile:filePath atomically:YES];
-                
-                self.url = filePath;
-                self.isLocalfile = true;
-
-                
-                self.btnshare.enabled =true;
-                
-                
-                self.btnemail.enabled =true;
-                self.btnsave.enabled =true;
-                
-                
-                
-                NSURL *url = [NSURL fileURLWithPath:filePath];
-                NSURLRequest *request = [NSURLRequest requestWithURL:url];
-                [self.webView loadRequest:request];
-                
-                
-
-                
-                
-                
- //               int a=0;
-            }
-            else
-            {
-                [RAUtils message_alert:nil  title:@"Open PDF Failed" controller:self];
-                
-                if(self.autoPrint)
-                    [self.navigationController popViewControllerAnimated:true];
-//                self.content = [self.url dataUsingEncoding:NSUTF8StringEncoding];
-            }
-            
-            ;
-//            DebugLog(@"%@",[[NSString alloc] initWithData:self.content encoding:NSASCIIStringEncoding]);
-            //
-            
-//            DebugLog(urlResponse.MIMEType);
-            
-//            [self.webView loadData:self.content MIMEType:urlResponse.MIMEType textEncodingName:nil baseURL:nil];
-            
-            
-            
-            
-        });
-    });
-    
-    
-    
-    
-}
--(void)changeCell
-{
-    UIRefreshControl *reF = (UIRefreshControl *)[self.view viewWithTag:200];
-    reF.attributedTitle = [[NSAttributedString alloc]initWithString:@"refreshing"];
-    if ([self respondsToSelector:@selector(ReloadData)])
-    [self performSelector:@selector(ReloadData) withObject:nil afterDelay:1];
-//    DebugLog(@"refresh!!!!!!!!");
-    
-}
-- (void)didReceiveMemoryWarning
-{
-    [super didReceiveMemoryWarning];
-    // Dispose of any resources that can be recreated.
-}
--(void) viewWillAppear:(BOOL)animated
-{
-    
-    
-    [super viewWillAppear:animated];
-  
-    [[self navigationController] setNavigationBarHidden:self.hidenavi animated:NO];
-}
-- (IBAction)onPrintClick:(id)sender {
-    
-    
-  //  UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait..." title:@"preparing print..."];
-    
-    UIPrintInteractionController* airPrinterController=[UIPrintInteractionController sharedPrintController];
-    UIPrintInfo *printInfo = [UIPrintInfo printInfo];
-    printInfo.outputType = UIPrintInfoOutputGeneral;
-    
-    printInfo.orientation = UIPrintInfoOrientationPortrait;
-    printInfo.jobName = @"CoolVisitAirPrint";
-    airPrinterController.printInfo = printInfo;
-    airPrinterController.printingItem = self.content;
-    airPrinterController.delegate = self;
-    
-    
-    airPrinterController.showsNumberOfCopies=true;
-    airPrinterController.showsPageRange = true;
-    airPrinterController.showsPaperSelectionForLoadedPapers=true;
-    
-    
-    [airPrinterController presentFromBarButtonItem:self.btnPrint
-                                      animated:YES
-                             completionHandler:
-     ^(UIPrintInteractionController *pic, BOOL completed, NSError *error) {
-     }
-     ];
-    
-    
-//    
-//    void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) = ^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
-//        if(completed && error)
-//            DebugLog(@"Printing failed due to error in domain %@ with error code %lu. Localized description: %@, and failure reason: %@", error.domain, (long)error.code, error.localizedDescription, error.localizedFailureReason);
-//    };
-//    
-//    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
-//    
-//    UIPrinter *airPrinter = [UIPrinter printerWithURL:[NSURL URLWithString:appDelegate.printerURL] ];///*self.printer;*/
-//    
-//    
-//    
-//    
-//    [[UIPrinter printerWithURL:[NSURL URLWithString:appDelegate.printerURL]] contactPrinter:^(BOOL available)
-//     {
-//         [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
-//         
-//         if (available&& appDelegate.printerURL.length>0)
-//         {
-//             
-//             
-//             [airPrinterController printToPrinter:airPrinter completionHandler:completionHandler];
-//             DebugLog(@"AIRPRINTER AVAILABLE");
-//         }
-//         else
-//         {
-//             
-//                          [airPrinterController presentFromRect:CGRectMake(0, 0, 300, 500) inView:self.view animated:YES completionHandler:
-//             
-//             
-//             
-//                           //        [printPicker presentAnimated:YES completionHandler:
-//                           ^(UIPrintInteractionController *printerController, BOOL userDidSelect, NSError *error)
-//                           {
-//                               if (userDidSelect)
-//                               {
-//                                   NSString* sid= printerController.printInfo.printerID;
-//                                   UIPrintPaper*paper=  printerController.printPaper;
-//             
-//                               }
-//                           }];
-//             
-//             
-//             DebugLog(@"AIRPRINTER NOT AVAILABLE");
-//             
-//             
-//             
-////             if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_1)
-////             {
-////                 UIPrinterPickerController *printPicker = [UIPrinterPickerController printerPickerControllerWithInitiallySelectedPrinter:nil];
-////                 //   [printPicker presentFromBarButtonItem:self.btnSubmitOrder animated:yes completionHandler:
-////                 
-////                 
-////                 
-////                 [ printPicker presentFromBarButtonItem:self.btnPrint animated:YES completionHandler:
-////                  
-////                  
-////                  // [printPicker presentFromRect:CGRectMake(0, 0, 300, 500) inView:self.view animated:YES completionHandler:
-////                  
-////                  
-////                  
-////                  //        [printPicker presentAnimated:YES completionHandler:
-////                  ^(UIPrinterPickerController *printerPicker, BOOL userDidSelect, NSError *error)
-////                  {
-////                      if (userDidSelect)
-////                      {
-////                          //User selected the item in the UIPrinterPickerController and got the printer details.
-////                          
-////                          [UIPrinterPickerController printerPickerControllerWithInitiallySelectedPrinter:printerPicker.selectedPrinter];
-////                          
-////                          //Here you will get the printer and printer details.ie,
-////                          // printerPicker.selectedPrinter, printerPicker.selectedPrinter.displayName, printerPicker.selectedPrinter.URL etc. So you can display the printer name in your label text or button title.
-////                          
-////                          
-////                          
-////                          
-////                          appDelegate.printerURL =printerPicker.selectedPrinter.URL.absoluteString;
-////                          
-////                          [self startAirPrintWithData:self.content];
-////                          
-////                      }
-////                      else
-////                      {
-////                          
-////                          
-////                          //                          AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
-////                          //                          if([appDelegate.mode isEqualToString:@"Trade Show Mode"]&& appDelegate.submit_order_logout)
-////                          //                          {
-////                          //
-////                          //                              [((MainViewController*)appDelegate.main_vc) Loginout:false];
-////                          //                          }
-////                          //                          [self prepareReturn:nil];
-////                          
-////                          //[self.navigationController popViewControllerAnimated:true];
-////                      }
-////                  }];
-////             }
-//         }
-//     }];
-//    
-    
-    
-}
-- (IBAction)onActionClick:(id)sender {
-   
-    //NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
-    
-//    NSString *filePath = nil;
-//    if(!self.isLocalfile)
-//    {
-//    NSString *path = NSTemporaryDirectory();
-//    NSString* filename =self.filename;
-//    
-//   filePath= [path stringByAppendingPathComponent:filename];
-//    
-//    }
-//    else
-//        filePath = self.url;
-
-    
-    
-  
-    
-
-    [self openFile:self.url];
-}
-- (IBAction)onSaveClick:(id)sender {
-    
-    //UIAlertControllerStyle两种类型UIAlertControllerStyleAlert类似UIAlertView
-    //UIAlertControllerStyleActionSheet类似UIActionSheet
-    UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"Save pdf" message:nil preferredStyle:UIAlertControllerStyleAlert];
-    //block代码块取代了delegate
-  
-    
-    [alertControl addTextFieldWithConfigurationHandler:^(UITextField *textField) {
-        textField.text = self.save_name;
-       
-        
-    }];
-    
-    UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Save" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
-        
-        UITextField *name = alertControl.textFields.firstObject;
-        if(name.text.length==0)
-        {
-        [RAUtils message_alert:@"Cannot save without name. Save canceled." title:@"Name is missing" controller:self];
-        }
-        else
-        {
-            self.save_name = name.text;
-                            self.btnsave.enabled =false;
-          //  NSMutableDictionary * info =
-            if(self.onSavePDF)
-                self.onSavePDF(self.save_name,self.filename);
-        }
-    }];
-
-    UIAlertAction *alertthree = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
-        DebugLog(@"Cancel");
-    }];
-    [alertControl addAction:actionOne];
-
-    [alertControl addAction:alertthree];
-    
-    //UIAlertControllerStyle类型为UIAlertControllerStyleAlert可以添加addTextFieldWithConfigurationHandler:^(UITextField *textField)
-
-    
-    [self presentViewController:alertControl animated:YES completion:nil];
-    
-    
-    
-    
-}
-
-- (IBAction)onEmailClick:(id)sender {
-    //NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
-//    NSString *path = NSTemporaryDirectory();
-    NSString* filename =self.filename;
-    
-//    NSString *filePath = [path stringByAppendingPathComponent:filename];
-
-    NSString *filePath = self.url;
-
-    
-    
-    
-    
-    MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];
-    
-    if(mc==nil)
-    {
-        //[RAUtils message_alert:@"You must create an email account first."  title:@"Send Email" controller:self];
-        return;
-    }
-    mc.mailComposeDelegate = self;
-    [mc setSubject:self.mail_subject];
-    
-    
-    [mc setToRecipients:self.mail_to];
-    
-    
-    if(self.mail_content==nil)
-        self.mail_content=@"";
-    
-    NSString* htmlbody = [NSString stringWithFormat:@"<html><p>%@</p></html>",self.mail_content];
-    
-    [mc setMessageBody:htmlbody
-                isHTML:YES];
-    
-
-    
-    NSData *data = [NSData dataWithContentsOfFile:filePath];
-    
-//    if(self.attachment_name.length>0)
-//        filename = self.attachment_name;
-    [mc addAttachmentData:data mimeType:@"application/pdf" fileName:filename];
-    [self presentModalViewController:mc animated:YES];
-    
-    return;
-}
-
-
--(void)openFile: (NSString *) file_url  {
-    
-    NSURL *file_URL = [NSURL fileURLWithPath:file_url];
-    
-    if (file_URL != nil) {
-        if (self.fileInteractionController == nil) {
-            //_fileInteractionController = [[UIDocumentInteractionController alloc] init];
-            
-            
-            _fileInteractionController = [UIDocumentInteractionController interactionControllerWithURL:file_URL];
-            _fileInteractionController.delegate = self;
-            //  [_fileInteractionController retain];//不适用ARC,记得RETAIN 使用ARC注释这一行
-        }
-        else
-        {
-            self.fileInteractionController.URL = file_URL;
-        }
-        
-        // [self.fileInteractionController presentOpenInMenuFromRect:self.view.frame inView:self.view animated:YES];
-        
-        
-        [self.fileInteractionController setName:self.mail_subject];
-        
-//        [self.fileInteractionController setAnnotation:<#(id _Nullable)#>;
-        
-        [self.fileInteractionController presentOptionsMenuFromBarButtonItem:self.btnshare animated:YES];
-       // [self.fileInteractionController presentOptionsMenuFromRect:self.view.frame inView:self.view animated:YES];
-        //        [self.fileInteractionController  presentPreviewAnimated:YES];
-        
-    }
-}
-//- (void) sendEmail:(NSString *)to cc:(NSString*)cc subject:(NSString*)subject body:(NSString*)body
-//{
-//    NSString* str = [NSString stringWithFormat:@"mailto:%@?cc=%@&subject=%@&body=%@",
-//                     to, cc, subject, body];
-//    str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-//    
-//    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
-//    
-//    
-//}
-
-#pragma mark methods for the UIDocumentInteractionControllerDelegate
-
-- (void)documentInteractionControllerDidDismissOptionsMenu:(UIDocumentInteractionController *)controller
-{
-//    if (controller == self.fileInteractionController) {
-//        self.fileInteractionController = nil;
-//    }
-}
-
-- (void)previewDocumentWithURL:(NSURL*)url
-{
-    UIDocumentInteractionController* preview = [UIDocumentInteractionController interactionControllerWithURL:url];
-    preview.delegate = self;
-    [preview presentPreviewAnimated:YES];
-    
-}
-
-- (void)documentInteractionControllerDidEndPreview:(UIDocumentInteractionController *)controller
-{
-    
-}
-
-- (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller{
-    return self;
-}
-
-- (CGRect)documentInteractionControllerRectForPreview:(UIDocumentInteractionController *)controller{
-    return self.view.frame;
-}
-
-- (UIView *)documentInteractionControllerViewForPreview:(UIDocumentInteractionController *)controller{
-    return self.view;
-}
-- (void)documentInteractionController:(UIDocumentInteractionController *)controller willBeginSendingToApplication:(nullable NSString *)application	 // bundle ID
-{
-    
-}
-
-
-#pragma mark - web view delegate
-- (void)webViewDidFinishLoad:(UIWebView *)webView
-{
-    self.mum.hidden=true;
-    
-    
-    if(self.onLoadSuccess)
-        self.onLoadSuccess(self.url);
-    
-    if(self.autoPrint)
-        [self startAirPrintWithData:self.content];
-    
-}
-- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
-{
-    
-}
-#pragma mark -MFMailComposeViewControllerDelegate delegate
-
-- (void)mailComposeController:(MFMailComposeViewController*)controller
-          didFinishWithResult:(MFMailComposeResult)result
-                        error:(NSError*)error {
-    switch (result)
-    {
-        case MFMailComposeResultCancelled:
-            DebugLog(@"Mail send canceled...");
-            break;
-        case MFMailComposeResultSaved:
-            DebugLog(@"Mail saved...");
-            break;
-        case MFMailComposeResultSent:
-            DebugLog(@"Mail sent...");
-            break;
-        case MFMailComposeResultFailed:
-            DebugLog(@"Mail send errored: %@...", [error localizedDescription]);
-            break;
-        default:
-            break;
-    }
-    [self dismissModalViewControllerAnimated:YES];
-}
-/*
-#pragma mark - Navigation
-
- In a storyboard-based application, you will often want to do a little preparation before navigation
-- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
-{
-     Get the new view controller using [segue destinationViewController].
-     Pass the selected object to the new view controller.
-}
-*/
-- (void)startAirPrintWithData:(id )data
-{
-
-
-    UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait..." title:@"preparing print..."];
-
-    UIPrintInteractionController* airPrinterController=[UIPrintInteractionController sharedPrintController];
-    UIPrintInfo *printInfo = [UIPrintInfo printInfo];
-    printInfo.outputType = UIPrintInfoOutputGeneral;
-    printInfo.orientation = UIPrintInfoOrientationPortrait;
-    printInfo.jobName = @"CoolVisitAirPrint";
-    airPrinterController.printInfo = printInfo;
-    airPrinterController.printingItem = data;
-    airPrinterController.delegate = self;
-
-
-    airPrinterController.showsNumberOfCopies=true;
-    airPrinterController.showsPageRange = true;
-    airPrinterController.showsPaperSelectionForLoadedPapers=true;
-
-    void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) = ^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
-        if(completed && error)
-            DebugLog(@"Printing failed due to error in domain %@ with error code %lu. Localized description: %@, and failure reason: %@", error.domain, (long)error.code, error.localizedDescription, error.localizedFailureReason);
-    };
-
-    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
-
-    UIPrinter *airPrinter = [UIPrinter printerWithURL:[NSURL URLWithString:appDelegate.printerURL] ];///*self.printer;*/
-
-
-
-
-    [[UIPrinter printerWithURL:[NSURL URLWithString:appDelegate.printerURL]] contactPrinter:^(BOOL available)
-     {
-         [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
-         
-         if (available&& appDelegate.printerURL.length>0)
-         {
-             
-
-             [airPrinterController printToPrinter:airPrinter completionHandler:completionHandler];
-             DebugLog(@"AIRPRINTER AVAILABLE");
-         }
-         else
-         {
-
-             //             [airPrinterController presentFromRect:CGRectMake(0, 0, 300, 500) inView:self.view animated:YES completionHandler:
-             //
-             //
-             //
-             //              //        [printPicker presentAnimated:YES completionHandler:
-             //              ^(UIPrintInteractionController *printerController, BOOL userDidSelect, NSError *error)
-             //              {
-             //                  if (userDidSelect)
-             //                  {
-             //                      NSString* sid= printerController.printInfo.printerID;
-             //                      UIPrintPaper*paper=  printerController.printPaper;
-             //
-             //                  }
-             //              }];
-
-
-             DebugLog(@"AIRPRINTER NOT AVAILABLE");
-
-
-
-             if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_1)
-             {
-                 UIPrinterPickerController *printPicker = [UIPrinterPickerController printerPickerControllerWithInitiallySelectedPrinter:nil];
-              //   [printPicker presentFromBarButtonItem:self.btnSubmitOrder animated:yes completionHandler:
-
-
-
-                [ printPicker presentFromBarButtonItem:self.btnshare animated:YES completionHandler:
-
-
-                // [printPicker presentFromRect:CGRectMake(0, 0, 300, 500) inView:self.view animated:YES completionHandler:
-
-
-
-                  //        [printPicker presentAnimated:YES completionHandler:
-                  ^(UIPrinterPickerController *printerPicker, BOOL userDidSelect, NSError *error)
-                  {
-                      if (userDidSelect)
-                      {
-                          //User selected the item in the UIPrinterPickerController and got the printer details.
-
-                          [UIPrinterPickerController printerPickerControllerWithInitiallySelectedPrinter:printerPicker.selectedPrinter];
-
-                          //Here you will get the printer and printer details.ie,
-                          // printerPicker.selectedPrinter, printerPicker.selectedPrinter.displayName, printerPicker.selectedPrinter.URL etc. So you can display the printer name in your label text or button title.
-
-
-
-
-                          appDelegate.printerURL =printerPicker.selectedPrinter.URL.absoluteString;
-
-                          [self startAirPrintWithData:data];
-
-                      }
-                      else
-                      {
-
-
-//                          AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
-//                          if([appDelegate.mode isEqualToString:@"Trade Show Mode"]&& appDelegate.submit_order_logout)
-//                          {
-//
-//                              [((MainViewController*)appDelegate.main_vc) Loginout:false];
-//                          }
-//                          [self prepareReturn:nil];
-
-                          //[self.navigationController popViewControllerAnimated:true];
-                      }
-                  }];
-             }
-         }
-     }];
-
-
-
-}
-
-#pragma mark - UIPrintInteractionControllerDelegate
-- (UIPrintPaper *)printInteractionController:(UIPrintInteractionController *)printInteractionController choosePaper:(NSArray<UIPrintPaper *> *)paperList
-{
-
-    ;
-
-    //    (int) width = 29700
-    //    Printing description of (*( (int *)0x7caa3a40)):
-    //    (int) height = 42000
-    //设置纸张大小
-
-    CGSize paperSize=[PDFUtils QueryPDFSizeFromData:self.content];
-    for(UIPrintPaper* paper in paperList)
-    {
-        if (CGSizeEqualToSize(paper.paperSize, paperSize))
-            return paper;
-
-    }
-    
-    UIPrintPaper * pp=[[UIPrintPaper alloc] init];
-    
-//    CGSize paperSize = CGSizeMake(612, 792);
-    UIPrintPaper * p=[UIPrintPaper bestPaperForPageSize:paperSize withPapersFromArray:paperList];
-    return p;
-}
-- (void)printInteractionControllerWillPresentPrinterOptions:(UIPrintInteractionController *)printInteractionController
-{
-
-}
-- (void)printInteractionControllerDidPresentPrinterOptions:(UIPrintInteractionController *)printInteractionController
-{
-
-}
-- (void)printInteractionControllerWillDismissPrinterOptions:(UIPrintInteractionController *)printInteractionController
-{
-
-}
-- (void)printInteractionControllerDidDismissPrinterOptions:(UIPrintInteractionController *)printInteractionController
-{
-
-}
-
-- (void)printInteractionControllerWillStartJob:(UIPrintInteractionController *)printInteractionController
-{
-
-}
-- (void)printInteractionControllerDidFinishJob:(UIPrintInteractionController *)printInteractionController
-{
-
-//    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
-//    if([appDelegate.mode isEqualToString:@"Trade Show Mode"]&& appDelegate.submit_order_logout)
-//    {
-//
-//        [((MainViewController*)appDelegate.main_vc) Loginout:false];
-//    }
-//
-//    [self prepareReturn:nil];
-
-    if(self.autoPrint)
-    [self.navigationController popViewControllerAnimated:true];
-}
-@end

+ 0 - 37
RedAnt ERP Mobile/common/pdfCreator/PDFPage.h

@@ -1,37 +0,0 @@
-//
-//  PDFPage.h
-//  pdftest
-//
-//  Created by Ray on 10/11/16.
-//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-#import <UIKit/UIKit.h>
-#import "UIKit/UIDocument.h"
-#import "PDFDrawable.h"
-@interface PDFPage : NSObject<PDFDrawableDelegate>
-@property (nonatomic,strong) NSMutableDictionary* pageTemplate;
-@property double margin_left;
-@property double margin_right;
-@property double margin_top;
-@property double margin_bottom;
-
-@property (nonatomic,strong) NSMutableDictionary* header;
-@property (nonatomic,strong) NSMutableDictionary* footer;
-
-@property CGRect rect;
-@property CGRect drawable_rect;
-@property double pos_x;
-@property double pos_y;
-@property double header_height;
--(instancetype) init:(NSMutableDictionary *)page size:(CGRect)rect;
--(void) Draw:(CGContextRef) context dataSource:(NSMutableDictionary*)data;
--(int) QueryPageCount:(CGContextRef) context dataSource:(NSMutableDictionary*)data;
-
-@property (nonatomic,strong) NSMutableDictionary* data;
-
-@property int pagecount;
--(void) DirectDraw:(CGContextRef) context page:(CGPDFPageRef)page;
--(void) DirectDraw:(CGContextRef) context drawable:(PDFDrawable*)drawable_obj;
-@end

+ 0 - 276
RedAnt ERP Mobile/common/pdfCreator/PDFPage.m

@@ -1,276 +0,0 @@
-//
-//  PDFPage.m
-//  pdftest
-//
-//  Created by Ray on 10/11/16.
-//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
-//
-
-#import "PDFPage.h"
-#import "GroupDrawable.h"
-#import "ImageDrawable.h"
-#import "LineDrawable.h"
-#import "TextDrawable.h"
-#import "TableDrawable.h"
-#import "GridDrawable.h"
-
-@implementation PDFPage
--(instancetype) init:(NSMutableDictionary *)page size:(CGRect)rect
-{
-    if (self = [super init]) {
-        self.rect = rect;
-        [self setPageTemplate:page];
-        self.pagecount=1;
-    }
-    return self;
-    
-    
-    
-}
--(void) setPageTemplate:(NSMutableDictionary *)pageTemplate
-{
-    _pageTemplate = pageTemplate;
-    self.margin_left=[self.pageTemplate[@"margin_left"] doubleValue];
-    self.margin_right=[self.pageTemplate[@"margin_right"] doubleValue];
-    self.margin_top=[self.pageTemplate[@"margin_top"] doubleValue];
-    self.margin_bottom=[self.pageTemplate[@"margin_bottom"] doubleValue];
-    self.header=self.pageTemplate[@"header"];
-    self.footer=self.pageTemplate[@"footer"];
-    
-    
-    self.drawable_rect = CGRectMake(self.rect.origin.x+self.margin_left, self.rect.origin.y+self.margin_top, self.rect.size.width-(self.margin_right+self.margin_left), self.rect.size.height-(self.margin_bottom+self.margin_top));
-    
-    self.pos_x = _margin_left;
-    self.pos_y = _margin_top;
-    
-    // self.rect = CGRectMake(0, 0, [self.pageTemplate[@"width"] doubleValue], [self.pageTemplate[@"height"] doubleValue]);
-}
--(int) QueryPageCount:(CGContextRef) context dataSource:(NSMutableDictionary*)data
-{
-    
-    
-    
-    
-    self.data=data;
-    GroupDrawable* pageHeader = [[GroupDrawable alloc]init:self.header];
-    
-    
-    self.header_height=pageHeader.rect.size.height;
-    pageHeader.delegate = self;
-    GroupDrawable* pageFooter = [[GroupDrawable alloc]init:self.footer];
-    
-    pageFooter.delegate = self;
-    
-    
-    
-    
-    // while (true)
-    {
-        // page 去除页眉,页脚后的区域
-        NSRange range = NSMakeRange(self.drawable_rect.origin.y+pageHeader.rect.size.height, self.drawable_rect.origin.y+self.drawable_rect.size.height-pageFooter.rect.size.height);
-        
-//        CGRect rect = self.rect;
-        
-        //       CGContextBeginPage(context, &rect);
-        //       [pageHeader Draw:context dataSource:data ParentRect:(CGRect)self.drawable_rect startX:0 startY:0 flipHeight:self.rect.size.height range:range];
-        
-        
-        for (int i=0;i<[self.pageTemplate[@"contents"][@"count"] intValue];i++)
-        {
-            NSMutableDictionary * item =self.pageTemplate[@"contents"][ [NSString stringWithFormat:@"item_%d",i ] ];
-            PDFDrawable* drawable_obj=nil;
-            if([item[@"type"] isEqualToString:@"img"])
-            {
-                drawable_obj= [[ImageDrawable alloc] init:item];
-                
-            }
-            else if([item[@"type"] isEqualToString:@"line"])
-            {
-                drawable_obj= [[LineDrawable alloc] init:item];
-                
-            }
-            else if([item[@"type"] isEqualToString:@"text"])
-            {
-                drawable_obj= [[TextDrawable alloc] init:item];
-                
-            }
-            else if([item[@"type"] isEqualToString:@"group"])
-            {
-                drawable_obj= [[GroupDrawable alloc] init:item];
-                
-            }
-            else if([item[@"type"] isEqualToString:@"table"])
-            {
-                drawable_obj= [[TableDrawable alloc] init:item];
-                
-            }
-            else if([item[@"type"] isEqualToString:@"grid"])
-            {
-                drawable_obj= [[GridDrawable alloc] init:item];
-                
-            }
-            drawable_obj.delegate = self;
-            [drawable_obj Query_Rect:context dataSource:data ParentRect:(CGRect)self.drawable_rect startX:0 startY:self.header_height flipHeight:self.rect.size.height range:range];
-        }
-        
-        //    [pageFooter Draw:context dataSource:data ParentRect:(CGRect)self.drawable_rect startX:0 startY:0 flipHeight:self.rect.size.height range:range];
-        //    CGContextEndPage(context);
-        
-    }
-    
-    return self.pagecount;
-}
--(void) DirectDraw:(CGContextRef) context page:(CGPDFPageRef)page
-{
-    
-    
-    
-//    CGAffineTransform m;
-//    m = CGPDFPageGetDrawingTransform (page, kCGPDFCropBox, self.rect, -180, true);
-    CGContextSaveGState (context);
-    
-//    CGContextTranslateCTM(myContext, 80, self.frame.size.height);
-//    CGContextScaleCTM(myContext, 1, -1);
-    
-    CGContextDrawPDFPage (context, page);
-    CGContextRestoreGState (context);
-    
-    
-}
--(void) DirectDraw:(CGContextRef) context drawable:(PDFDrawable*)drawable_obj
-{
-    
-    
-    if(drawable_obj==nil)
-        return;
-    
-    NSLog(@"pdfpage directdraw begin");
-    
-        NSRange range = NSMakeRange(0,self.rect.size.height);
-
-    
-//        CGRect rect = self.rect;
-    
-
-            drawable_obj.delegate = self;
-            [drawable_obj Draw:context dataSource:nil ParentRect:(CGRect)self.drawable_rect startX:0 startY:self.header_height flipHeight:self.rect.size.height range:range];
-    
-    NSLog(@"pdfpage directdraw end");
-
-    
-}
--(void) Draw:(CGContextRef) context dataSource:(NSMutableDictionary*)data
-{
-    
-    
-    
-    
-    self.data=data;
-    
-    
-    
-    GroupDrawable* pageHeader = [[GroupDrawable alloc]init:self.header];
-    self.header_height=pageHeader.rect.size.height;
-    pageHeader.delegate = self;
-    GroupDrawable* pageFooter = [[GroupDrawable alloc]init:self.footer];
-    
-    pageFooter.delegate = self;
-    
-    
-    
-    
-    // while (true)
-    {
-        // page 去除页眉,页脚后的区域
-        NSRange range = NSMakeRange(self.drawable_rect.origin.y+pageHeader.rect.size.height, /*self.drawable_rect.origin.y+*/self.drawable_rect.size.height-pageFooter.rect.size.height-pageHeader.rect.size.height);
-//        NSRange range = NSMakeRange(self.drawable_rect.origin.y+pageHeader.rect.size.height, self.drawable_rect.size.height-pageFooter.rect.size.height+self.drawable_rect.size.height);
-        CGRect rect = self.rect;
-        
-        CGContextBeginPage(context, &rect);
-        [pageHeader Draw:context dataSource:data ParentRect:(CGRect)self.drawable_rect startX:0 startY:0 flipHeight:self.rect.size.height range:range];
-        
-        [pageFooter Draw:context dataSource:data ParentRect:(CGRect)self.drawable_rect startX:0 startY:0 flipHeight:self.rect.size.height range:range];
-        
-        for (int i=0;i<[self.pageTemplate[@"contents"][@"count"] intValue];i++)
-        {
-            NSMutableDictionary * item =self.pageTemplate[@"contents"][ [NSString stringWithFormat:@"item_%d",i ] ];
-            PDFDrawable* drawable_obj=nil;
-            if([item[@"type"] isEqualToString:@"img"])
-            {
-                drawable_obj= [[ImageDrawable alloc] init:item];
-                
-            }
-            else if([item[@"type"] isEqualToString:@"line"])
-            {
-                drawable_obj= [[LineDrawable alloc] init:item];
-                
-            }
-            else if([item[@"type"] isEqualToString:@"text"])
-            {
-                drawable_obj= [[TextDrawable alloc] init:item];
-                
-            }
-            else if([item[@"type"] isEqualToString:@"group"])
-            {
-                drawable_obj= [[GroupDrawable alloc] init:item];
-                
-            }
-            else if([item[@"type"] isEqualToString:@"table"])
-            {
-                drawable_obj= [[TableDrawable alloc] init:item];
-                
-            }
-            else if([item[@"type"] isEqualToString:@"grid"])
-            {
-                drawable_obj= [[GridDrawable alloc] init:item];
-                
-            }
-            drawable_obj.delegate = self;
-            [drawable_obj Draw:context dataSource:data ParentRect:(CGRect)self.drawable_rect startX:0 startY:self.header_height flipHeight:self.rect.size.height range:range];
-        }
-        
-        CGContextEndPage(context);
-        
-    }
-}
--(void) nextPage:(CGContextRef) context
-{
-    CGContextEndPage(context);
-    CGRect rect = self.rect;
-    
-    CGContextBeginPage(context, &rect);
-    
-    
-    
-    GroupDrawable* pageHeader = [[GroupDrawable alloc]init:self.header];
-    pageHeader.delegate = self;
-    GroupDrawable* pageFooter = [[GroupDrawable alloc]init:self.footer];
-    pageFooter.delegate = self;
-    
-    self.data[@"CURRENT_PAGE"]=[NSNumber numberWithInt:[self.data[@"CURRENT_PAGE"] intValue]+1];
-    
-    // page 去除页眉,页脚后的区域
-    NSRange range = NSMakeRange(self.drawable_rect.origin.y+pageHeader.rect.size.height, self.drawable_rect.origin.y+self.drawable_rect.size.height-pageFooter.rect.size.height);
-    
-    
-    [pageHeader Draw:context dataSource:self.data ParentRect:(CGRect)self.drawable_rect startX:0 startY:0 flipHeight:self.rect.size.height range:range];
-    
-    
-    
-    
-    
-    [pageFooter Draw:context dataSource:self.data ParentRect:(CGRect)self.drawable_rect startX:0 startY:0 flipHeight:self.rect.size.height range:range];
-    
-    
-}
-
-#pragma mark - commoneditor delegate
--(void) outofPage:(CGContextRef) context
-{
-    [self nextPage:context];
-}
--(void) addPageCount:(CGContextRef)context
-{
-    self.pagecount++;
-}
-@end