Ali Imran
Ali Imran

Reputation: 179

Creating PDF from UIView in iphone app gives exception

I am creating pdf from iphone app using following code but when i call this method it gives exception.I have got this code from site.

here is the code

    -(void)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename
    {


// Creates a mutable data object for updating with binary data, like a byte array
NSMutableData *pdfData = [NSMutableData data];

// Points the pdf converter to the mutable data object and to the UIView to be converted
UIGraphicsBeginPDFContextToData(pdfData, aView.bounds, nil);
UIGraphicsBeginPDFPage();
CGContextRef pdfContext = UIGraphicsGetCurrentContext();


// draws rect to the view and thus this is captured by UIGraphicsBeginPDFContextToData

[aView.layer renderInContext:pdfContext];

// remove PDF rendering context
UIGraphicsEndPDFContext();

// Retrieves the document directories from the iOS device
NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);

NSString* documentDirectory = [documentDirectories objectAtIndex:0];
NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:aFilename];

// instructs the mutable data object to write its context to a file on disk
[pdfData writeToFile:documentDirectoryFilename atomically:YES];
NSLog(@"documentDirectoryFileName: %@",documentDirectoryFilename);


 }

I am calling this method here

    [self createPDFfromUIView:self.view];

i think problem is in parameter passing while calling method. thanks

here is the exception Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MainViewController createPDFfromUIView:]: unrecognized selector sent to instance 0x613a950'

Upvotes: 0

Views: 234

Answers (1)

Deepesh Gairola
Deepesh Gairola

Reputation: 1242

Your implementation says it all

-(void)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename

Expects 2 parameters ad you have specified only 1, so instead of

[self createPDFfromUIView:self.view];

Try

[self createPDFfromUIView:self.view saveToDocumentsWithFileName:@"Name of the file"]

Upvotes: 2

Related Questions