在iphone应用程序中调用Create PDF方法不起作用

时间:2012-06-11 07:24:27

标签: iphone xcode uiview

我想从视图创建pdf我正在使用以下代码我从网上获得了这个但是如何调用此方法以及在何处提供文件名以创建保存在文档文件夹中的pdf。

当我调用此方法时,它会发送异常无法识别的选择器。

  [self createPDFfromUIView:someView saveToDcumentsWithFileName:@"my_pdf.pdf"];



 -(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);
 }

2 个答案:

答案 0 :(得分:0)

如果您在类中实现了该方法,并且从同一个类中调用它。你会这样做:

[self createPDFfromUIView:someView saveToDcumentsWithFileName:@"my_pdf.pdf"];

这会将您的UIView PDF格式保存在Documents目录中,文件名为my_pdf.pdf

希望这有帮助。

答案 1 :(得分:0)

这是工作代码....别忘了添加QuartzCore.h

 #include <QuartzCore/QuartzCore.h>

 - (void)viewDidLoad
 {
   [super viewDidLoad];


     [self createPDFfromUIView:self.view saveToDocumentsWithFileName:@"abc.pdf"];

  }
  -(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);

}