0

我有一个 iOS 6.1.3 应用程序,它使用 UIGraphicsBeginPDFContextToData 将一堆属性文本(以及可选的图像)放在一个 NSData 中。然后使用 MFMailComposeViewController 通过电子邮件发送数据,然后

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

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

我正在创建的 PDF 确实涉及添加加密,尽管即使没有实际输入密码(即 PDF 实际上没有加密),问题仍然存在。我也尝试过没有任何加密代码(将 nil 作为最后一个参数传递给 UIGraphicsBeginPDFContextToData),但这没有任何区别。

肯定有办法生成兼容 Adob​​e Acrobat 的 PDF 并从 iOS 发送电子邮件?

4

1 回答 1

0

问题解决了。

正在使用 NSMutableData dataWithLength: 而不是 NSMutableData dataWithCapacity 创建一个 NSMutableData 对象:

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

于 2013-08-01T17:17:27.460 回答