//--------------------------------------------------------------------------------------- // Copyright (c) 2001-2012 by PDFTron Systems Inc. All Rights Reserved. // Consult legal.txt regarding legal and license information. //--------------------------------------------------------------------------------------- #import #import void ProcessElements(ElementReader *reader) { Element *element; for (element=[reader Next]; element != NULL; element = [reader Next]) // Read page contents { switch ([element GetType]) { case e_path: // Process path data... { PathData *data = [element GetPathData]; NSArray *points = [data GetPoints]; } break; case e_text_obj: // Process text strings... { NSData* nsdata = [element GetTextData]; unsigned char* data = (unsigned char*)[nsdata bytes]; printf("%s \n", data); } break; case e_form: // Process form XObjects { [reader FormBegin]; ProcessElements(reader); [reader End]; } break; } } } int main(int argc, char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; int ret = 0; [PDFNet Initialize: 0]; @try // Extract text data from all pages in the document { NSLog(@"__________________________________________________"); NSLog(@"Sample 1 - Extract text data from all pages in the document."); NSLog(@"Opening the input pdf..."); PDFDoc *doc = [[[PDFDoc alloc] initWithFilepath: @"../../TestFiles/newsletter.pdf"] autorelease]; [doc InitSecurityHandler]; PageIterator *itr; ElementReader *page_reader = [[[ElementReader alloc] init] autorelease]; for (itr = [doc GetPageIterator: 1]; [itr HasNext]; [itr Next]) // Read every page { [page_reader Begin: [itr Current]]; ProcessElements(page_reader); [page_reader End]; } NSLog(@"Done."); } @catch(NSException *e) { NSLog(@"%@", [e reason]); ret = 1; } [pool release]; return ret; }