2011-08-10 3 views
1

UIViewをクロップしてからPDFファイルに変換しようとしています。 UIViewは、xコンポーネント、幅、高さが正しく切り抜かれています。しかし、それは同じy成分、すなわちレンダリングのために0を取っています。私は上から110ポイントの画像をトリミングしたいと思います。これは、あなたがあなたのコードのあなたの最初の部分では非常に間違って何かをやっている私のコードレイヤーのrenderInContextで使用中に、UIViews、view.bounds.origin.yを設定する際に問題が発生しました。

UIView *tempV; 
    tempV=self.view; 
    CGRect fram= tempV.bounds; 
    fram.origin.x=537; 
    fram.origin.y=110; 
    fram.size.width=404; 
    fram.size.height=772; 
    tempV.bounds=fram; 
    NSLog(@"Mail"); 
    NSLog(@"%f,%f,%f,%f",tempV.bounds.origin.x,tempV.bounds.origin.y,tempV.bounds.size.width,tempV.bounds.size.height); 
    NSMutableData *pdfData=[NSMutableData data]; 
    UIGraphicsBeginPDFContextToData(pdfData, tempV.bounds, nil); 
    UIGraphicsBeginPDFPage(); 
    CGContextRef pdfContext= UIGraphicsGetCurrentContext(); 
    [tempV.layer renderInContext:pdfContext]; 
    UIGraphicsEndPDFContext(); 
    MFMailComposeViewController *mailComposer=[[[MFMailComposeViewController alloc]init] autorelease]; 
    mailComposer.mailComposeDelegate=self; 
    [mailComposer addAttachmentData: pdfData mimeType: @"application/pdf" fileName: @"Dudel creation.pdf"]; 
    [pdfData writeToFile:@"Dudel creation.pdf" atomically:YES]; 
    [self presentModalViewController: mailComposer animated: YES]; 

答えて

2

です...私もそこに行きたいが、私はいくつかのことを打破することはできません。

1)UIGraphicsBeginPDFContextToData第2パラメータはCGRectです。

2)わかっていることから、あなたの画面上に表示されているものは非常に特定の矩形で、中心はビューコントローラのビューとはまったく異なります(起点とサイズの両方を変更しようとしています)。だから、なぜあなたのビューコントローラのビューの境界に依存関係を作成するのですか? (境界と中心が常に手をとっていることを思い出してください)。

3)なぜちょうどあなたのコードの最初の部分を取り除くと、これを実行されませ:

CGRect fram = CGRectMake (537, 110, 404, 772); // A rectangle with no other dependency, since you want one very specific. 

NSMutableData *pdfData=[NSMutableData data]; 
UIGraphicsBeginPDFContextToData(pdfData, fram, nil); // Passing the newly created rectangle as the second parameter to the function. 
UIGraphicsBeginPDFPage(); 
CGContextRef pdfContext= UIGraphicsGetCurrentContext(); 
[tempV.layer renderInContext:pdfContext]; 
UIGraphicsEndPDFContext(); 
MFMailComposeViewController *mailComposer=[[[MFMailComposeViewController alloc]init] autorelease]; 
mailComposer.mailComposeDelegate=self; 
[mailComposer addAttachmentData: pdfData mimeType: @"application/pdf" fileName: @"Dudel creation.pdf"]; 
[pdfData writeToFile:@"Dudel creation.pdf" atomically:YES]; 
[self presentModalViewController: mailComposer animated: YES]; 
+0

がmiamkありがとう、私はこのの閉鎖で境界を再構築されたすべてが、私の問題を解決しましたあなたが上で述べた問題が解決されたので、ある程度拡張されました。しかし、それはもちろん悪いコードでした。私が直面していた問題は、私が思ったように、点(537,110)から矩形を始めることができなかったことですが、コードに(537、-110)を渡して得ました。もう一度ありがとうございます。 – Lena

関連する問題