http://www.binpress.com/blog/2014/07/28/comparing-ios-pdf-libraries/
Displaying PDFs on iOS devices is pretty straightforward, but things get trickier for more advanced usage, such as embedding media, adding annotations, performing text search with support for multiple languages and more.
In this post we compare the most popular libraries and SDKs for rendering PDFs on iOS, including our own PDFTouch SDK, and highlight what you should pay attention to when picking (or paying for) a PDF rendering library.
The roundup
Source Code | YES | NO | NO | NO | YES |
Includes Support | YES | YES | YES | YES | NO |
Per-app License | YES | Quote Required | Quote Required | YES | MIT License |
Unlimited App License | YES | Quote Required | Quote Required | YES | MIT License |
Text Search | YES | YES | YES | YES | NO |
Multimedia Overlays | YES | YES | NO | YES | NO |
Annotations | YES | YES | YES | YES | NO |
Maintained | Actively | Actively | Actively | Actively | Sporadically |
Price (for features listed) | Starts at $749 | Quote Required | Quote Required | Free w/Splash Screen, €2,990 without | Free |
Source-code included
One of the main things to consider when integrating a third-party library on iOS is whether the actual source is included or not. In many case, the library is provided in binary format with header files only. This is still useful for adding functionality in your app, but not as useful as having the complete source available.
With the full source code, you can see how things are implemented, fix bugs or make modifications if necessary. This can be critically important if a feature you need is missing, or something doesn’t work as intended with a specific configuration.
Out of the lineup above, only PDFTouch and PDF Reader Core make their source code available.
Text Search
Searching inside documents is a feature users have become accustomed to, and one they’d expect to have in your app. Every SDK on our list — except for PDF Reader Core — provides text search capabilities, which means you don’t need to deal with character encoding and multi-language support to include this feature.
Annotations
Adding annotations to PDF documents is also a common feature, especially for productivity apps. Adding annotations means that you need to be able to edit and save PDF documents – which goes far beyond simply rendering it. You’ll also have to decide what kind of markup you’ll allow: different kinds of pens and brushes, text, shapes or otherwise.
All the libraries but PDF Reader Core support annotations.
Media Overlays
Simple text PDFs are easy to render, but many documents and eBooks today contain different types of media as well. Overlaying videos, images, audio and other content makes for engaging and interactive books, brochures and more.
Foxit Embedded PDF and PDF Reader Core are the only two SDKs from our roundup that lack multimedia overlays.
Performance
Viewing a PDF isn’t usually a very intensive task, but we tested every SDK with a roughly 1,000-page behemoth to see how they’d perform. Each solution ran quickly when it came to flipping through the document, but we can’t say the same for text search. Foxit’s offering was significantly slower when finding search results, while its competition swiftly scoured the file.
Cost
Cost is always a factor when picking a library. It’s great when there’s a free and open-source solution that meets your needs, but if you can’t find one you’ll need to weigh the value of paid options, and whether they fit within your budget.
PDF Reader Core is free and open source, but doesn’t support most advanced features.
Of the other four libraries, PDFTouch SDK and FastPdfKit provide their pricing upfront, while PSPDFKit and Foxit Embedded PDF require a quote. Requesting one usually means enterprise pricing, which — in general — magically eats up all your available budget (with even the cheapest license being expensive).
Conclusion
As impartial as we tried to be, we probably wouldn’t have written this comparison if we didn’t believe we could make a good case for the product that uses Binpress, PDFTouch SDK for iOS. Still, we think it stands on its own merits.
If you need advanced PDF rendering features on iOS, see the value in having the complete source available and are cost conscious, PDFTouch SDK makes perfect sense. If you’d rather go with a brand name, because that’s how it goes sometimes in corporate decision making (Nobody ever got fired for picking IBM), you should pick PSPDFKit or FastPDFKit – both of which have a long list of amazing clients to showcase.
If you know of other worthy libraries, or have other requirements we didn’t cover – let us know in the comments!
相关推荐
CAN FD 传统CAN之比较 CAN-FD比CAN总线的带宽更高,具有与CAN总线相似的控制器接口,这种相似性使ECU供应商不需要对ECU的软件部分做大规模修改,降低了开发难度和成本。CAN-FD是CAN总线的升级换代设计,它继承了CAN...
- 1.9 使用if语句比较Objective-C中的值(Comparing Values in Objective-C with an if Statement) - if语句是条件控制的基础,本节将介绍如何在Objective-C中使用if语句进行逻辑判断。 - 1.10 实现... #### ...
Technical+Presentation+Comparing+Citrix+XenApp+to+ThinApp.pdf
English | 2019 | ISBN: 1484248676 | 360 Pages | True PDF Stay motivated and overcome obstacles while learning to use Swift Playgrounds and Xcode 10.2 to become a great iOS developer. This book, fully...
### Java Web框架对比分析 #### 引言 随着互联网技术的发展与成熟,Java Web开发框架在软件工程领域扮演着越来越重要的角色。不同的框架各有特点,适用于不同类型的项目需求。本文档将详细介绍并对比六种主流Java ...
“Analyzing and Comparing Montgomery Multiplication Algorithms”(分析与比较蒙哥马利模乘算法)这篇文章旨在深入探讨并对比不同的蒙哥马利模乘算法实现方法。蒙哥马利模乘算法是一种在计算机科学中广泛应用的...
在`Comparing Java objects with equals and hashcode.pdf`文档中,可能会详细讨论这些方法的实现细节、最佳实践和潜在陷阱,例如: - 如果重写了`equals()`,也应该重写`hashCode()`,以遵循合同约定。 - 当`...
### 操作系统对比分析:Solaris与Red Hat Enterprise Linux及AIX 在当前技术环境中,随着Oracle收购Sun Microsystems带来的变化,对于那些长期依赖Solaris的操作系统管理员而言,这是一个充满挑战的时代。...
Comparing Values in Objective-C with an If Statement (Page 29) - **If Statement Syntax**: The `if` statement is used to execute code based on a condition. The basic syntax is `if (condition) { /* ...
在当今的数据挖掘领域,监督式机器学习算法已经成为主流方法。利用健康数据进行疾病预测是这些方法的潜在应用场景之一。本文的目的是识别不同种类的监督式机器学习算法之间在疾病风险预测上的关键趋势、性能和使用...
- **1.8 Comparing Values in Objective-C with an If Statement**(使用if语句比较Objective-C中的值) - 学习条件语句的基础知识,如何使用if语句进行逻辑判断。 - 掌握如何结合布尔表达式来构造复杂的条件判断...
在讨论低功耗无线技术时,本文将对比包括Bluetooth低功耗(BLE)、ANT、ANT+、ZigBee、ZigBee RF4CE、Wi-Fi、Nike+、IrDA和近场通信(NFC)标准在内的多种无线技术。首先,我们将详细解析每种技术的特性、优点以及在...
此软件介绍webwork and struts and jsf的区别
在内容部分中,提到的文章“Characterizing and Comparing Phylogenies from their Laplacian Spectrum”发表在系统生物学杂志(Systematic Biology)上,卷号为65,期号为3,页码范围495-507。文章是通过拉普拉斯谱...
### 比较布尔模型与概率模型在信息检索系统中的应用 #### 摘要 本文探讨了在信息检索(IR)领域内两种主要的方法——布尔模型与概率模型的比较研究。作者通过实验模拟和分析技术来评估这两种方法在不同查询和学科...
标题 "JDBC_sorting_Comparing_" 暗示了这个主题是关于在Java环境中使用JDBC(Java Database Connectivity)进行数据排序,并且涉及到对象的`equals`和`hashCode`方法的重写。`equals`和`hashCode`方法是Java中的...
本文《Attention Flows:Analyzing and Comparing Attention Mechanisms in Language Models》是一篇研究论文,主要关注于深度学习领域内语言模型的注意力机制。随着自然语言处理(NLP)技术的发展,基于注意力机制...
Comparing Realism and Idealism as Classic Schools of Thought
在预测方面,文档可能涉及了生成预测(Generating projections)、比较预测(Comparing projections)、递归关系(Recurrence relations)以及常微分方程(Differential equations)。文档也提到了使用Wolfram Alpha...