iPhoneでレターサイズのレポートを作成しようとしています。そのために、大きな nib ファイルを作成し、そこに必要なすべてのレポート ウィジェットを配置しました。
今、ビューを PDF に変換しようとしています。これが私のコードですが、画面に表示されているビューの一部のみを描画します。
テストした iPhone3GS で、viewWillAppear が呼び出されるまでに 640x960 ビューのフレームが 320x460 になるという問題を絞り込みました。ビューを PDF として保存する前にフレームを 640x960 にリセットすると、ファイルは正しく表示されます。ビューのフレームが表示されている長方形のサイズにカットされる原因は何ですか? iPhone 3GS のビュー スケール ファクターは 1 であることはわかっているので、スケーリングの問題ではありません。
+(NSMutableData *)createPDFDatafromUIView:(UIView*)aView
{
// Creates a mutable data object for updating with binary data, like a byte array
NSMutableData *pdfData = [NSMutableData data];
// Points the pdf converter to the mutable data object and to the UIView to be converted
UIGraphicsBeginPDFContextToData(pdfData, aView.frame, nil);
UIGraphicsBeginPDFPage();
CGContextRef pdfContext = UIGraphicsGetCurrentContext();
// draws rect to the view and thus this is captured by UIGraphicsBeginPDFContextToData
[aView.layer renderInContext:pdfContext];
// remove PDF rendering context
UIGraphicsEndPDFContext();
return pdfData;
}
ありがとうございました!