2012-03-29 14 views
0

私はコアデータグラフから出力されたデータを使ってオンザフライでPDFドキュメントを生成していますが、これは非常に難しいことが分かります。コアデータからPDFにCGRectでUIImageを描画

私は次のように使用してコアデータグラフのうち、画像のファイルパスを取得するにはassetlibraryを使用しています:

NSURL *url = [[NSURL alloc] initWithString:bird.photo]; 
     ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init]; 

     [library assetForURL:url resultBlock:^(ALAsset *asset) { 

        _pdfBirdmage = [UIImage imageWithCGImage:[[asset defaultRepresentation] fullResolutionImage]]; 


       } failureBlock:^(NSError *error) { 

        NSLog(@"Couldn't load asset %@ => %@", error, [error localizedDescription]); 

       }]; 

そして、これは以下の通り画像であることを示している:

[_pdfBirdImage drawInRect:CGRectMake((pageSize.width - _pdfBirdImage.size.width/2)/2, 350, _pdfBirdImage.size.width/2, _pdfBirdImage.size.height/2)]; 
birdphotoview = <UIImage: 0x1caac0> 

もちろん、私は次のコードを使用して、PDFドキュメントにそれを書くために、このようなPNGまたはJPGとして、これは画像形式になりたいです

しかし、これはpdfには何も印刷されません。

どのようなヘルプも素晴らしいでしょう。

+0

画像は正しいですか?それをイメージビューで表示しようとしましたか?また、あなたのPDF図面のコンテキストは右ですか? – cocoakomali

+0

はい、はいとはい。もっと深刻なことに、私はUIImageが.png画像でなければならないと思います。基本的に私は私の.pngに変換する必要があります – jcrowson

+0

変換を実行するには、NSDataオブジェクトを返すUIImagePNGRepresentation(UIImage * image)関数を使用します。それをファイルに書き込んでイメージを使用します。 – cocoakomali

答えて

0

CGPDFベースのルーチンを使用していますか?私はY次元がその時とは逆のものだと思う。私は前にPDFを表示し、上にデータをオーバーレイしました(そしてその後、画面全体をディスクに戻してイメージとして表示しました)。そのような場合は、まず既存のPDFを変換する必要がありました。あなたの問題のようには聞こえませんが、ここで参照されているPDFコードはありません。いずれにしても、次のようなものがありました:

UIGraphicsBeginImageContext(pdfPageRectScaled.size); 
CGContextRef context = UIGraphicsGetCurrentContext(); 

// First fill the background with white. 
CGContextSetRGBFillColor(context, 1.0f, 1.0f, 1.0f, 1.0f); 
CGContextFillRect(context, pdfPageRectScaled); 

CGContextSaveGState(context); 
// Flip the context so that the PDF page is rendered 
// right side up. 
CGContextTranslateCTM(context, 0.0f, pdfPageRectScaled.size.height); 
CGContextScaleCTM(context, 1.0f, -1.0f); 

// Scale the context so that the PDF page is rendered 
// at the correct size for the zoom level. 
CGContextScaleCTM(context, pdfScale, pdfScale); 
CGContextDrawPDFPage(context, page); 
CGContextRestoreGState(context); 
関連する問題