2013-03-05 125 views
0

在我的应用程序中,我必须生成PDF并使用mfmail撰写控制器发送该附件。要生成pdf,我已经使用CALayer类将uiview呈现为PDF。生成的pdf需要作为附件发送给相应的用户。现在的问题是,在接收器端附件是可见的,并且只接收来自iphone的邮件而不是来自ipad。同时发送完全显示的邮件,但不显示邮件(从Ipad发送邮件时)。指导我解决这个问题。这是我生成PDF的代码。PDF附件未通过邮件接收,而通过IPad发送邮件

NSMutableData *pdfData = [NSMutableData data]; 
   UIGraphicsBeginPDFContextToData(pdfData, pdfView.bounds, nil); 
   UIGraphicsBeginPDFPage(); 
   CGContextRef pdfContext = UIGraphicsGetCurrentContext(); 
    
  [pdfView.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:[NSString stringWithFormat:@"%@.pdf",[receivedSelectedDict valueForKey:@"reportID"]]]; 
   NSLog(@"while creating %@",documentDirectoryFilename); 
   // instructs the mutable data object to write its context to a file on disk 
   [pdfData writeToFile:documentDirectoryFilename atomically:YES]; 

代码附加了PDF作为一个作曲家附件:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
           NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *file = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.pdf",[receivedSelectedDict valueForKey:@"reportID"]]]; 
           NSLog(@"while fetching %@",file); 
           NSMutableData *data=[NSMutableData dataWithContentsOfFile:file]; 
           [mailViewController addAttachmentData:data mimeType:@"application/pdf" fileName:[receivedSelectedDict valueForKey:@"reportID"]]; 

回答

0

的UIView你渲染为PDF高度(pdfView)需要比iPad上查看时要多。 如果它小于ipad视图,它将作为内联附件附加。内联附件不会被mozila看到,因此您可以更好地查看safari中的内联附件。而不是内联附件,如果您想要查看单个附件,则必须增加pdf视图的高度。

0

尝试将mimeType:@"application/pdf"更改为mimeType:@"text/pdf",当我遇到同样的问题时,它对我有效。