iOS PDF的显示和浏览


方法一:利用webview

 

-(void)loadDocument:(NSString *)documentName inView:(UIWebView *)webView  
{  
    NSString *path = [[NSBundle mainBundle] pathForResource:documentName ofType:nil];  
    NSURL *url = [NSURL fileURLWithPath:path];  
    NSURLRequest *request = [NSURLRequest requestWithURL:url];  
    [webView loadRequest:request];  
}

利:1.实现简单

弊:1.仅能浏览,拿不到任何回调。

      2.固定竖版拖动,不能实现翻页动画效果



方法二:利用CGContextDrawPDFPage


gitHub: https://github.com/marujun/IBooKTurnPagesReader

  

 

CGPDFDocumentRef GetPDFDocumentRef(NSString *filename)  
{  
    CFStringRef path;  
    CFURLRef url;  
    CGPDFDocumentRef document;  
    size_t count; 
  NSString *filePath=[[[NSBundlemainBundle] resourcePath]stringByAppendingPathComponent:filename];
    path = CFStringCreateWithCString (NULL, [filePath UTF8String], kCFStringEncodingUTF8);  
    url = CFURLCreateWithFileSystemPath (NULL, path, kCFURLPOSIXPathStyle, 0);  
      
    CFRelease (path);  
    document = CGPDFDocumentCreateWithURL (url);  
    CFRelease(url);  
    count = CGPDFDocumentGetNumberOfPages (document);  
    if (count == 0) {  
        printf("[%s] needs at least one page!\n", [filename UTF8String]);  
        return NULL;   
    } else {  
        printf("[%ld] pages loaded in this PDF!\n", count);  
    }  
    return document;  
}  
  
void DisplayPDFPage (CGContextRef myContext, size_t pageNumber, NSString *filename)  
{  
    CGPDFDocumentRef document;  
    CGPDFPageRef page;  
      
    document = GetPDFDocumentRef (filename);  
    page = CGPDFDocumentGetPage (document, pageNumber);  
    CGContextDrawPDFPage (myContext, page);  
    CGPDFDocumentRelease (document);  
} 

    这样显示出来的pdf单页是倒立的,Quartz坐标系和UIView坐标系不一样所致,调整坐标系,使pdf正立:

     

    CGContextRef context = UIGraphicsGetCurrentContext();  
    CGContextTranslateCTM(context, 80, self.frame.size.height-60);  
    CGContextScaleCTM(context, 1, -1); 


    转自:http://blog.csdn.net/yiyaaixuexi/article/details/7645725
    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    ### 回答1: 精通iOS开发PDF指的是对iOS平台上的PDF文档处理和显示有深入的了解和掌握。 首先,精通iOS开发PDF,意味着熟悉iOS开发环境和相关的开发工具,如Xcode和Swift/Objective-C等。掌握iOS开发技术,能够开发出高质量的iOS应用程序。 其次,精通iOS开发PDF,意味着熟悉PDF文档的处理和显示。能够使用相关的库和API进行PDF文档的解析、渲染和呈现,实现PDF文件浏览、缩放、翻页等功能。精通者还会处理PDF文档的元数据、书签、书签导航等相关特性,并能够自定义PDF的样式、交互和显示效果。 此外,精通iOS开发PDF还需要了解PDF文档的安全和加密机制,能够进行PDF文档的加密、解密和权限控制。对于PDF文档的搜索、标注、批注、复制等功能也了如指掌。 最后,精通iOS开发PDF还需要对PDF标准有一定的了解,如了解PDF文件结构、对象模型、页面内容描述等。熟悉PDF标准,能够在开发过程中更好地理解和处理PDF文档。 总之,精通iOS开发PDF意味着在iOS平台上能够处理和展示PDF文档的各种需求,能够提供高效、稳定和优质的PDF文档处理功能。 ### 回答2: 精通iOS开发对于开发人员来说是非常重要的,因为iOS平台在移动应用开发领域占据着重要的地位。掌握iOS开发意味着熟悉并掌握了Objective-C或Swift编程语言、Cocoa Touch框架以及Xcode开发工具等。 在iOS开发中,对于PDF的处理也是一个常见的需求。PDF作为一种通用文档格式,被广泛应用于电子书、电子商务、电子文件等场景中。精通iOS开发的人员需要了解如何在应用中实现PDF的创建、显示和编辑等功能。 首先,对于PDF的创建,可以使用Core Graphics框架来进行绘制和生成PDF文件。通过绘制图形、插入文字和图片等操作,可以创建符合需求的PDF文档。 其次,对于PDF显示,可以使用PDFKit框架来进行处理。PDFKit提供了丰富的API,可以加载显示PDF文件,实现对于页面的缩放、翻页以及搜索等功能。 最后,对于PDF的编辑,可以使用第三方开源库或者自己进行二次开发。这些库提供了对于PDF的各种操作,包括页面的增删改,文字和图形的插入和编辑,以及表单的填写等。 在精通iOS开发的过程中,需要深入理解PDF文件的结构和特性,并学习相关的API和工具。同时,也需要具备良好的代码能力和解决问题的能力,以便应对各种PDF处理的需求。 总之,掌握iOS开发并精通PDF的处理,对于开发人员来说是非常重要的技能。可以通过学习相关的知识和实践项目来提升自己的能力,在iOS开发领域中获得更多的机会和发展。

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值