2013-12-16 166 views
0

我使用PSPDFKit for iOS。自動檢測來自PDF的圖像

PSPDFViewController女巫符合PSPDFViewControllerDelegate我覆蓋 - (BOOL)pdfViewController didTapOnPageView: atPoint:(CGPoint)viewPoint,我需要檢查是否有任何圖像[pageView.textParser.images]被點擊。

如何將我的點[viewPoint]的座標與圖像的座標相匹配?

總之,我想實現一個圖像自動檢測pdf。

回答

1

UPDATE: 我找到了答案在PSPDFKIT例子,

- (void)pdfViewController:(PSPDFViewController *)pdfController didLoadPageView:(PSPDFPageView *)pageView { 
    // Iterate over all images and add button overlays on top. 
    // Accessing the text parser will block the thread, so it'll be better to access the in a background thread and than use the result on the main thread (but then you'll have to check if the pageView still points at the same page which would add too much complexity for this simple example.) 
    for (PSPDFImageInfo *imageInfo in [pageView.document textParserForPage:pageView.page].images) { 
     // Create the view 
     PSCAutoResizeButton *resizeButton = [PSCAutoResizeButton new]; 
     resizeButton.targetPDFRect = [imageInfo boundingBox]; 
     resizeButton.imageInfo = imageInfo; 
     resizeButton.showsTouchWhenHighlighted = NO; 
     resizeButton.layer.borderColor = [UIColor redColor].CGColor; 
     resizeButton.layer.borderWidth = 0.f; 
     resizeButton.backgroundColor = [UIColor colorWithWhite:0.f alpha:0.2f]; 
     [resizeButton addTarget:self action:@selector(imageButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; 
     // Add to container view. Only here views will get notified on changes via PSPDFAnnotationViewProtocol. 
     // The container view will be purged when the page is prepared for reusage. 
     [pageView.annotationContainerView addSubview:resizeButton]; 
    } } 

私人

- (void)imageButtonPressed:(PSCAutoResizeButton *)button { 
    NSParameterAssert([button isKindOfClass:PSCAutoResizeButton.class]); 

    PSPDFImageInfo *imageInfo = button.imageInfo; 
    UIImage *image = [imageInfo imageWithError:NULL]; 

    // Show view controller 
    if (image) { 
     UIViewController *imagePreviewController = [[UIViewController alloc] initWithNibName:nil bundle:nil]; 
     imagePreviewController.title = imageInfo.imageID; 
     UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 
     imageView.contentMode = UIViewContentModeScaleAspectFit; 
     imageView.backgroundColor = UIColor.blackColor; 
     imagePreviewController.view = imageView; 
     [self presentModalOrInPopover:imagePreviewController embeddedInNavigationController:YES withCloseButton:YES animated:YES sender:button options:@{PSPDFPresentOptionAlwaysModal : @YES, PSPDFPresentOptionModalPresentationStyle : @(UIModalPresentationFormSheet)}]; 
    } }