ios - PDF 和 MFMailComposeViewController

标签 ios pdf mime-types mfmailcomposeviewcontroller email-attachments

编写允许用户生成 pdf 并发送的应用程序部分。似乎工作正常。发送的 PDF 在 MAC 上可以正常打开,但在 iPhone 上它只会一直加载而永远不会打开。在 Ray Wenderlich 教程的帮助下创建了一个 pdf 文档,并通过带有 MFMailComposeViewController 实例的模态视图 Controller 将其发送出去。 WTF 我做错了吗?

更新:PDF 在 Ipad 上也能正常打开。问题可能出在创建 PDF 的代码中吗?我也有点不清楚我是否真的在创建一个持续存在的 PDF,然后在同名文件的每个新版本之后被替换,或者我是否以某种方式欺骗编译器认为文档正在存储以便我可以发送它用尽可能少的代码输出。

如有任何想法,我们将不胜感激。

查看代码:

if ([MFMailComposeViewController canSendMail])

{
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;

[picker setSubject:@"mail test"];

NSString* fileName = @"Invoice.PDF";
NSArray *arrayPaths =
NSSearchPathForDirectoriesInDomains(
                                    NSDocumentDirectory,
                                    NSUserDomainMask,
                                    YES);
NSString *path = [arrayPaths objectAtIndex:0];
NSString* pdfFileName = [path stringByAppendingPathComponent:fileName];
NSData *myData = [NSData dataWithContentsOfFile:pdfFileName];

[picker addAttachmentData:myData mimeType:@"application/pdf" fileName:@"the PDF"];
[self presentModalViewController:picker animated:YES];

最佳答案

试试这个

 [picker addAttachmentData:myData mimeType:@"application/pdf" fileName:@"thePDF.pdf"]; 

顺便说一句,如果您是在发送之前生成 PDF 内容,则无需保存到真正的 pdf 文件,只需发送 PDF 数据即可

关于ios - PDF 和 MFMailComposeViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12119524/

相关文章:

javascript - 使用 JavaScript 滚动 PDF

php - file->getMimeType() 始终使用 Zend Framework 返回 application/octet-stream

asp.net - 在 SDL Tridion 2011 中上传 JSON 文件作为多媒体组件

ios - Testflight:此版本与此设备不兼容

java - iText 5.5.3 PDFPCell : long text doesn't fit corrctly in cell (wrap text incorrectly)

jquery - 使用jquery在新选项卡中打开pdf文件

asp.net - 下载文件/另存为.Net 不工作

ios - 如何在 objective-c 中使用来自本地主机的 json 数据?

ios - 错误域=kCLErrorDomain 代码=2 "The operation couldn’ t 完成。 (kCLErrorDomain 错误 2。)”

ios - 如何使用 swift 以编程方式转换到不同 Storyboard 中存在的不同 View Controller ?