2011-06-21 10 views
1

シンプルなPDFがどのように作成され、iPhone上でUIImageに変わったかを基本的に理解しようとしています。私は一緒にこのコードを石畳いますPDF NSDataをUIImageに描画するにはどうすればよいですか?

NSMutableData *pdfData = [[NSMutableData alloc] init]; 
UIGraphicsBeginPDFContextToData(pdfData, CGRectZero, nil); 

CFAttributedStringRef currentText = CFAttributedStringCreate(NULL, (CFStringRef)@"Text", NULL); 
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString(currentText); 
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, 612, 792), nil); 
CGMutablePathRef framePath = CGPathCreateMutable(); 
CGPathAddRect(framePath, NULL, CGRectMake(0, 0, 612, 792)); 
CTFrameRef frame = CTFramesetterCreateFrame(framesetter, 
              CFRangeMake(0, [(NSString *)currentText length]), 
              framePath, 
              NULL); 

CTFrameDraw(frame, UIGraphicsGetCurrentContext()); 
UIGraphicsEndPDFContext(); 
UIImage *pdfImage = [UIImage imageWithData:pdfData] 

私はさておき(UIImageは、PDFデータを読み取ることができないので、間違っている)最後の行から、このコードが正しいことをかなり確信していますので、私はこれを見つけるためにしようとしていますクラス私は私のPDFを送ることができます。

'pdfData'はnilではありません。サイズは約5000バイトです。

あなたのお手伝いをさせていただきます。乾杯。

+0

'UIGraphicsBeginPDFContextToData()'に 'CGRectZero'以外の境界を渡すべきではありませんか? –

+0

この関数にCGRectZeroを与えると、コンテキストに(0、0、612、792)のデフォルト境界が与えられます。 – Dyldo42

答えて

2

UIWebViewを使用して、pdfまたはDocumentPreviewControllerを読み取ることができます。

+0

それは動作します! UIWebViewは正しかった。テキストを正しく表示するために座標を反転する必要がありますが、それは別の話です。 誰かが知りたいのであれば、これは私が初期化した後、自分のPDFをwebviewに入れたコードです: [pdfWebView loadData:pdfData MIMEType:@ "application/pdf" textEncodingName:@ "utf-8 "baseURL:[NSURL URLWithString:@" "]]; – Dyldo42

関連する問題