我有一个iOS 6.1.3应用程序,它使用UIGraphicsBeginPDFContextToData将一堆属性文本(和可选的图像)放在一个NSData中 . 然后使用MFMailComposeViewController通过电子邮件发送数据
[picker addAttachmentData:pdfData mimeType:@"application/pdf" fileName:@"AppData.pdf"];
发送PDF并在Mac的“预览”应用程序中打开生成的PDF . 但是,PDF不会在Adobe Acrobat中打开 . 如果我将生成的PDF拖到Firefox中,它们会打开,但会显示警告 . 如果将它们拖到Safari中,我会收到警告“文件不以'%PDF-'开头” . 在BBEdit中查看PDF并“显示隐形”,我发现文件的最开头确实有大量的非打印字符,在%PDF之前 - 如果我删除那些非打印字符,然后PDF在Acrobat和Safari中打开正常 - 但PDF的内容不会显示,只是一个空白页面 .
我正在做的PDF创建确实涉及添加加密,尽管即使没有实际输入密码也存在问题(即PDF实际上没有加密) . 我也尝试了没有任何加密代码(将nil作为UIGraphicsBeginPDFContextToData的最后一个参数传递),但这没有任何区别 .
当然必须有一种方法来生成Adobe Acrobat兼容的PDF并从iOS发送电子邮件?
1 回答
问题解决了 .
使用NSMutableData dataWithLength创建NSMutableData对象:而不是NSMutableData dataWithCapacity:
所以我可能在开始时有一些未使用的数据空间 . 哎呀 .