2013-08-01 47 views
0

我有一个iOS 6.1.3应用程序,它使用UIGraphicsBeginPDFContextToData将一组属性文本(和可选图像)放到一个NSData中。该数据然后通过电子邮件发送MFMailComposeViewController和iOS创建的PDF不会在Adobe Acrobat中打开

[picker addAttachmentData:pdfData mimeType:@"application/pdf" fileName:@"AppData.pdf"]; 

的PDF发送和生成的PDF打开在我的Mac上的“预览”应用程序的罚款。 PDF不会在Adobe Acrobat中打开。如果我将生成的PDF拖放到Firefox,它们会打开,但会显示警告。如果将它们拖放到Safari,我会收到警告“文件不以'%PDF-'开头”。在BBEdit中查看PDF并“显示不可见”,我发现在文件的起始处确实存在大量非打印字符,在%PDF之前 - 如果删除那些非打印字符, PDF在Acrobat和Safari中可以正常打开 - 但PDF的内容不会显示,只是一个空白页面。

我正在做的PDF创建确实涉及到加密,即使没有输入密码(即PDF实际上并未加密),问题仍然存在。我也尝试过没有任何加密代码(通过零作为UIGraphicsBeginPDFContextToData的最后一个参数),但没有任何区别。

当然,必须有一种方法来生成兼容Adobe Acrobat的PDF并从iOS向其发送电子邮件?

+0

首先,您需要确定文件在哪个步骤中受损。如果在发送电子邮件之前保存文件,出于调试目的,保存的副本是否正确显示? –

回答

0

问题解决。

当时createing与NSMutableData dataWithLength一个NSMutableData对象:不是NSMutableData dataWithCapacity:

所以我可能不得不在一开始一些未使用的数据空间。哎呀。

相关问题