2010-11-09 6 views
4

Можно ли перенести подпись с iPhone в файл .xls с помощью кабеля (USB)?Захват подписей iPhone

+0

Какие подписи? –

+0

Подпись из приложения, такого как autogragh. например подписание клиента для получения товара. –

+0

Вы ищете способ захватить подпись или только способ экспортировать ее из своего приложения в Excel через стандартный порт аксессуаров/USB? – JWD

ответ

7

Таким образом, это может быть не совсем то, что вы ищете, но вот как я фиксирую подпись, нарисованную пользователем (с помощью пальца/стилуса). Ваш UIImageView будет иметь нарисованную подпись. Я не думал о том, как перенести изображение подписи на .xls, но вы можете сохранить изображение в библиотеке фотографий устройства, а затем экспортировать его, как и любое другое изображение, а затем поместить его в .xls (я знаю, это руководство обработать). Надеюсь, это поможет.

SignatureViewController.h

IBOutlet UIImageView *signatureImageView; 

//Signature Drawing Items 
CGPoint lastPoint; 
BOOL mouseSwiped; 
int mouseMoved; 

SignatureCaptureViewController.m

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {  
    mouseSwiped = NO; 
    UITouch *touch = [touches anyObject]; 

    //Clear Signature on Double Tap 
    if ([touch tapCount] == 2) { 
     signatureImageView.image = nil; 
     return; 
    } 

    lastPoint = [touch locationInView:signatureImageView]; 

} 

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 
    mouseSwiped = YES; 

    UITouch *touch = [touches anyObject]; 

    CGPoint currentPoint = [touch locationInView:signatureImageView]; 

    UIGraphicsBeginImageContext(signatureImageView.frame.size); 
    [signatureImageView.image drawInRect:CGRectMake(0, 0, signatureImageView.frame.size.width, signatureImageView.frame.size.height)]; 
    CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); 
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 2.0); 
    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.0, 0.0, 0.0, 1.0); 
    CGContextBeginPath(UIGraphicsGetCurrentContext()); 
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); 
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y); 
    CGContextStrokePath(UIGraphicsGetCurrentContext()); 

    signatureImageView.image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    lastPoint = currentPoint; 
} 

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 

    UITouch *touch = [touches anyObject]; 

    //Clear Signature on Double Tap 
    if ([touch tapCount] == 2) { 
     signatureImageView.image = nil; 
     return; 
    } 

    if(!mouseSwiped) { 
     UIGraphicsBeginImageContext(signatureImageView.frame.size); 
     [signatureImageView.image drawInRect:CGRectMake(0, 0, signatureImageView.frame.size.width, signatureImageView.frame.size.height)]; 
     CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); 
     CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 2.0); 
     CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.0, 0.0, 0.0, 0.0); 
     CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); 
     CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); 
     CGContextStrokePath(UIGraphicsGetCurrentContext()); 
     CGContextFlush(UIGraphicsGetCurrentContext()); 
     signatureImageView.image = UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext(); 
    } 
} 
+0

Это кажется замечательным. Мне бы хотелось увидеть полный .h и немного поработать над тем, как реально интегрировать это через конструктор интерфейса. – radven