2010-04-20 62 views
1

基本上我想要做的就是将已经呈现的内容(使用CGContextDrawPDFPage()绘制到UIView的图形上下文中的PDF)复制到类似的UIView上,而无需重新渲染PDF。这个想法是,我可以在UIView上执行一个动画转换,然后以更高的精度重新渲染PDF。对于这两个UIViews,我都使用大于屏幕的CATiledLayer,以便在用户放大时更容易重新渲染PDF,如果这样做有任何区别的话。将UIView的上下文的位图内容复制到另一个UIView的位图内容

任何提示?我有点迷失在这里。

+0

一些挖后,代码渲染的PDF页面看起来像我的layer.contents是一个CAImageProvider,它似乎有图像数据(至少它的分辨率看起来是正确的)。我不知道如何使用这个。 – 2010-04-20 11:22:24

回答

1

假设你已经在图形环境中使用类似于以下

CGPDFDocumentRef document = CGPDFDocumentCreateWithURL (filename_url); 
CGPDFPageRef page = CGPDFDocumentGetPage (document, pageNumber); 
CGContextDrawPDFPage (context, page); 
CGPDFDocumentRelease (document); 

此代码将pdfView的内容保存到一个UIImage

UIGraphicsBeginImageContext(pdfView.bounds.size); 
[pdfView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *pdfViewImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
+0

仍然需要重新渲染PDF,除非我始终将其渲染为图像,这应该具有相当大的开销。 – 2010-04-20 19:51:47

+0

假设您已经在当前的图形上下文中呈现PDF,使用类似于我已经添加到上面的帖子的代码,使用较低的代码将不会重新渲染PDF。想象一下,就像拍摄桌面的截图一样。 – adam 2010-04-20 21:24:29

+0

唉,我之前试过,它确实重新渲染PDF。可能是因为我正在使用CATiledLayer? – 2010-04-21 09:14:00

相关问题