0

UIGraphicsBeginPDFContextToData を使用して、多数の属性付きテキスト (およびオプションで画像) を NSData にまとめる iOS 6.1.3 アプリがあります。データは、MFMailComposeViewController を使用して電子メールで送信され、

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

PDF が送信され、結果の PDF が Mac の「プレビュー」アプリケーションで正常に開きます。ただし、PDF は Adob​​e Acrobat では開きません。生成された PDF を Firefox にドラッグすると、PDF が開きますが、警告が表示されます。それらを Safari にドラッグすると、「ファイルが '%PDF-' で始まっていません」という警告が表示されます。BBEdit で PDF を見て、「非表示を表示」すると、ファイルの先頭、%PDF の前に実際に多数の非印刷文字があることがわかります。これらの非印刷文字を削除すると、その後、PDF は Acrobat と Safari で正常に開きますが、PDF のコンテンツは表示されず、空白のページが表示されます。

私が行っている PDF の作成には暗号化の追加が含まれますが、パスワードが実際に入力されていなくても問題はあります (つまり、PDF は実際には暗号化されていません)。また、暗号化コードなしで試してみました (nil を最後のパラメーターとして UIGraphicsBeginPDFContextToData に渡します) が、違いはありませんでした。

Adobe Acrobat と互換性のある PDF を作成し、iOS から電子メールで送信する方法があるに違いありません。

4

1 に答える 1

0

問題が解決しました。

NSMutableData dataWithLength: の代わりに NSMutableData dataWithCapacity: を使用して NSMutableData オブジェクトを作成していました。

そのため、おそらく最初は未使用のデータスペースがありました。おっとっと。

于 2013-08-01T17:17:27.460 に答える