在iPhone中可以很方便的预览文档文件,如:pdf、word等等,这篇文章将以PDF为例。介绍三种预览PDF的方式,又分别从本地pdf文档和网络上的pdf文档进行对比。

预览本地PDF文档:

1、使用UIWebView控件

UIWebView是iPhone开发中最常用的控件之一,类似.net中的webBrowser控件。使用它预览PDF文件相当的方便和简单。

在UIWebView中预览PDF文档的关键代码如下:

效果:

2、使用CLPreviewController

CLPreviewController是比较新的一个功能,它能快速预览文档,可以一边加载一边预览,也就是说不需要将文档全部加载到内存中。

使用CLPreviewController预览pdf文件,需要实现一个委托:QLPreviewControllerDataSource。关键代码如下:

其中prevoewController返回预览文件的地址。

这种方式不仅快,而且还提供了一个在iphone中打印文档的功能,如下图。

3、绘制pdf文档

apple有个官方的例子是绘制pdf的。这种方式可以很方便的控制pdf的展现细节,但是效率不高。

预览网络上的PDF文档:

1、使用UIWebView去预览网络上的PDF文档,先是将要预览的文档下载iPhone内存中,然后预览,对很大的pdf文档,效率不高,用户体验也不好。

2、对于使用prevoewController,因为它是分步加载的,不会一次性加载所有的pdf文档,用户体验还不错,但是在4.0中多出了一个打印按钮,一点击这个打印按钮,程序就挂了,真是杯具。

3、绘制的方式也是需要一次性加载到内存,绘制效率不高,对于大文档,不应当使用这种方式。

网络大文档预览的解决方案:对于网络上的pdf文档,比如:电子书(一些电子书是比较大的),建议先下载到本地,然后使用第二种方式去预览。

总结:本文介绍了三种预览pdf文档的方式,对于非pdf文档也是类似。由于本人接触iPhone开发不长,写的不对的地方,欢迎大家指正。

本文代码:http://files.cnblogs.com/zhuqil/PDFView.zip

作者:朱祁林
出处:http://zhuqil.cnblogs.com 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

IOS 预览pdf,word文档的集中方式的更多相关文章

  1. 秒级接入、效果满分的文档预览方案——COS文档预览

    一.导语 ​ 说起 Microsoft Office 办公三件套,想必大家都不会陌生,社畜日常的工作或者生活中,多多少少遇到过这种情况: 本地创建的文档换一台电脑打开,就出现了字体丢失.排版混乱的情况 ...

  2. IOS 预览word文档的集中方式

    在iPhone中可以很方便的预览文档文件,如:pdf.word等等,这篇文章将以PDF为例.介绍三种预览PDF的方式,又分别从本地pdf文档和网络上的pdf文档进行对比. 预览本地PDF文档: 1.使 ...

  3. 统计 Word 文档字数的方式

    描述 欲统计某文档的字数,有两种方式. "审阅"选项卡--"校对"组--字符统计 点击左下角字数统计 审阅查看字数 此步骤较为复杂,在审阅选项卡中可以查询文档的 ...

  4. 通过c#操作word文档的其他方式

    如果不嫌麻烦可以选择MS的word组件,因为过于庞大复杂.一般都是在无法满足要求的情况下才采用此种方式 参考链接:http://blog.csdn.net/lu930124/article/detai ...

  5. JSP实现word文档的上传,在线预览,下载

    前两天帮同学实现在线预览word文档中的内容,而且需要提供可以下载的链接!在网上找了好久,都没有什么可行的方法,只得用最笨的方法来实现了.希望得到各位大神的指教.下面我就具体谈谈自己的实现过程,总结一 ...

  6. word文档在线预览地址

    文档网址 http://www.officeweb365.com/Default/Docview 对接 http://ow365.cn/?i=19604&furl=http:://www.ba ...

  7. 前端实现在线预览pdf、word、xls、ppt等文件

    最近在做一个公司的资源管理系统,一些知识小记一下. 1.前端实现pdf文件在线预览功能 方式一.pdf文件理论上可以在浏览器直接打开预览但是需要打开新页面.在仅仅是预览pdf文件且UI要求不高的情况下 ...

  8. iOS Document Interaction(预览和打开文档) 编程指南

    原文:http://developer.apple.com/library/ios/#documentation/FileManagement/Conceptual/DocumentInteracti ...

  9. WEB在线预览PDF

    这是我在博客园发表的第一篇文章.以后会陆续把在线预览其他格式文档的解决方案发表出来. 解决思路:把pdf转换成html显示. 在线预览pdf我暂时了解3种解决方案,欢迎大家补充. 方案一: 利用pdf ...

随机推荐

  1. Error: could not open `C:\Program Files\Java\jre6\lib\i386\jvm.cfg')

    前些日子装了个jdk7试了试,后来做项目需要换成jdk6,安装完jdk6,设置完环境变量后出现问题.运行java -version出现Error: could not open `C:\Program ...

  2. struts2中 jsp:forward 失败原因及解决办法

    问题:在Struts2中<jsp:forward page="xxx.action"></jsp:forward>失效了,不但调转不过去还报404错误.不知 ...

  3. Mongodb - TTL(time to live)特性

    TTL集合支持mongodb对存储的数据进行失效时间设置,经过指定的时间段后.或在指定的时间点过期,集合自动被mongod清除.这一特性有利于对一些只需要保存一定时间的数据信息进行存储,比如机器产生的 ...

  4. 《MVC +EasyUI 》——表单的提交

        之前用AJax给Controller传递參数,然后再调用服务端的方法对数据库进行更改,今天碰到一个新的方法,就是表单的提交.这样能够省去AJax穿參.当表单提交后.我们能够获取表单上控件中的值 ...

  5. 点滴积累【JS】---JS小功能(checkbox实现全选和全取消)

    效果: 代码: <head runat="server"> <title></title> <script type="text ...

  6. atitit.jndi的架构与原理以及资源配置and单元测试实践

    atitit.jndi的架构与原理以及资源配置and单元测试实践 1. jndi架构 1 2. jndi实现原理 3 3. jndi资源配置 3 3.1. resin  <database> ...

  7. WatiN自动化测试

    简介 WatiN - Watir的.NET版: http://watin.sourceforge.net/ Welcome at the WatiN (pronounced as What-in) w ...

  8. Dijkstra普通算法及优先队列优化

    #include<stdio.h> #include<iostream> #define maxv 100 #define inf 0x3fffffff using names ...

  9. C#关键字之Partial详解

    Partial是局部类型的标志.局部类型可以实现将一个类.结构或接口分成几个部分,分别放在在几个不同的.cs文件中(当然也可以放在同一个.cs文件中).在程序进行编译之后,将会合并成一个完整的类.因此 ...

  10. 原生javascript 实现的文本编辑器

    直接来干活上代码.就一个函数execCommand():自己百度一下. 在线预览 <!doctype html> <html> <head> <title&g ...