iPhone开发之将pdf以图片形式显示

转载 2012年03月22日 16:49:29

当iPhone程序请求服务器并动态显示pdf的时候,如果需要将pdf首页设为此pdf的封面,则以图片形式显示pdf首页是一个不错的选择。

核心代码如下:

- (void)viewDidLoad {
	NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"test.pdf"];
	CFStringRef path = CFStringCreateWithCString(NULL, [filePath UTF8String], kCFStringEncodingUTF8);
	CFURLRef url = CFURLCreateWithFileSystemPath(NULL, path, kCFURLPOSIXPathStyle, NO);
	CFRelease(path);
	CGPDFDocumentRef myDocumentRef=CGPDFDocumentCreateWithURL(url);
	myPageRef=CGPDFDocumentGetPage(myDocumentRef, 1);
	CGRect pageRect = CGRectIntegral(CGPDFPageGetBoxRect(myPageRef, kCGPDFCropBox));
	CATiledLayer *tiledLayer = [CATiledLayer layer];
	tiledLayer.delegate = self;
	tiledLayer.tileSize = CGSizeMake(320.0, 460.0);
	tiledLayer.frame = pageRect;
	UIView *tempview = [[UIView alloc] init];
	[tempview setFrame:pageRect];
	[tempview.layer addSublayer:tiledLayer];
	[self.imgview setImage:[self imageFromView:tempview]];
	[tempview release];
    [super viewDidLoad];
}

- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx{
    CGContextSetRGBFillColor(ctx, 1.0, 1.0, 1.0, 1.0);
    CGContextFillRect(ctx, CGContextGetClipBoundingBox(ctx));
    CGContextTranslateCTM(ctx, 0.0, layer.bounds.size.height);
    CGContextScaleCTM(ctx, 1.0, -1.0);
    CGContextConcatCTM(ctx, CGPDFPageGetDrawingTransform(myPageRef, kCGPDFCropBox, layer.bounds, 0, true));
    CGContextDrawPDFPage(ctx, myPageRef);
}

- (UIImage*)imageFromView:(UIView*)view{
	UIGraphicsBeginImageContext([view bounds].size);
	BOOL hidden = [view isHidden];
	[view setHidden:NO];
	[view.layer renderInContext:UIGraphicsGetCurrentContext()];
	UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
	UIGraphicsEndImageContext();
	[view setHidden:hidden];
	return image;
}



点击打开链接 demo地址


http://download.csdn.net/detail/ydj213/4163636


本站原创,转载请标明:来自追梦博客(http://www.wuleilei.com/)

本文地址:http://www.wuleilei.com/Blog/240


相关文章推荐

iphone-pdf以图片形式显示

  • 2012年03月22日 16:48
  • 105KB
  • 下载

[教程] 《iPhone开发基础教程》《object c中文教程》(PDF) [复制链接]

看清楚了哦,《iPhone开发基础教程》是预览版,首先说明一下,我没有这本书的完整PDF版.前几天在论坛看到一个贴,《iPhone开发基础教程》(PDF电子版),我在17号留的邮箱,今天都没有收到,不...

iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址(2014年2月19日更新版)

iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址(2014年2月19日更新版) //转载请注明出处--本文永久链接:http://www.cnblogs....

iPhone开发:可拉伸的图片

还记得在Windows下用MFC或WTL写用户界面程序的时候,为了给可改变大小的对话框加上背景图案,需要对设计师提供的图片进行裁剪。把图片切成九块,其中四个角是不拉伸的,四条棱边可以在一个方向上拉伸,...

iPhone开发【十三】动画效果之最简单的动画——动态加载图片

转载请注明出处,原文网址:http://blog.csdn.net/m_changgong/article/details/8213792作者:张燕广 从本篇开始不再详细介绍每一步操作,而只介绍...

iPhone开发中自定义图标或图片的设计准则

Phone界面如此精美,作为一名设计师,要充分利用iPhone已有的界面元素,根据iPhone OS图标设计准则去设计自定义图标或者图片,比如每个程序的图标、启动图片和呈现在iPhone OS Spo...
  • sjzsp
  • sjzsp
  • 2011年04月17日 12:32
  • 2895

iPhone开发应用UIImage图片对象操作

iPhone开发应用UIImage图片对象操作是本文要介绍的内容,主要来学习UIImage图片对象操作,内容不多,主要是以代码实现图片对象的操作。 1、根据给定得图片,从其指定区域截取一张新得图...

谢伟-基于iPhone开发实践 pdf

  • 2012年03月06日 17:56
  • 2.66MB
  • 下载

iPhone开发教程pdf

  • 2012年10月27日 00:11
  • 424KB
  • 下载

Objective-C ,ios,iphone开发基础:快速实现一个简单的图片查看器

新建一个single view 工程: 关闭ARC , 在.xib视图文件上拖放一个UIImageView  两个UIButton ,一个UISlider ,布局如图。   并为他们连线, ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iPhone开发之将pdf以图片形式显示
举报原因:
原因补充:

(最多只允许输入30个字)