嗨,我正在创建一个可以读取 pdf/doc/docx/xls/ppt 等文件并将其显示给用户的应用程序。我已经读过,如果在 doc 中有一些图像和表格,apache POI 无能为力,因为它无法为表格创建边框。使用 aspose 不是问题,但我应该有充分的理由使用 aspose 而不是开源的 apache POI。
谁能建议我应该选择哪一个?Apache POI 和 Aspose 的局限性是什么?
嗨,我正在创建一个可以读取 pdf/doc/docx/xls/ppt 等文件并将其显示给用户的应用程序。我已经读过,如果在 doc 中有一些图像和表格,apache POI 无能为力,因为它无法为表格创建边框。使用 aspose 不是问题,但我应该有充分的理由使用 aspose 而不是开源的 apache POI。
谁能建议我应该选择哪一个?Apache POI 和 Aspose 的局限性是什么?
我们评估了这两种工具并提出了评论,主要是关于 Aspose.Words,因为它更适合我们的需求。但我们也写了关于 Apache POI 的文章。我将评论粘贴在这里供您参考。
我们是一家开发在线文字处理器的公司。一大挑战是将 Microsoft Word DOC、DOCX 和 RTF 内容与我们的专有数据模型相互转换。由于瘦客户端的限制和 Microsoft Word 文档的复杂性,我们必须在服务器端处理转换。
我们的服务器端技术是 java/spring/hibernate。我们意识到在处理 DOC(X) 处理的 Java 空间中没有多少选择。我们只寻找经过验证和成熟的产品。我们已经在公共领域评估了 Apache POI。我们发现 Apache POI 的一个主要问题是在底层有许多看似独立的组件,我们必须使用两个不同的组件来处理 DOC 和 DOCX。处理 DOCX 的 POI 组件相当新,还没有很多功能。就 RTF 而言,Apache POI 根本不支持它。
知道 Apache POI 不是我们的应用程序的好选择,我们检查了 Aspose.Words for java。事实上,就我们的搜索而言,它只是该领域的商业产品。评价很顺利。我们轻松地为 Aspose 库创建了一个 Maven 工件,并将该库集成到我们的后端 Web 应用程序中。根据我们的经验,我们相信 Aspose.Words for java 是该领域的顶级产品,实际上远优于任何其他解决方案。由于篇幅限制,我们只能从技术角度与您分享对我们最有价值的两个主要功能。
首先,Aspose.Words 使用一致、直观且文档完善的 DOM 模型作为底层文档结构。这个 DOM 模型直截了当且易于理解,并且非常具有表现力和强大的功能。这种 DOM 模型实际上不同于 OOXML 的 DOM 模型。我们更喜欢 Aspose 的 DOM 模型。它提醒我们 JDOM 和 XML 的 W3C 模型之间的区别,其中 JDom 的模型更简单、更直观,但功能强大,足以处理业务应用程序所需的大多数操作。令我们惊讶的是,Aspose.Words 支持的所有格式都使用了一个单一的 DOM 模型,包括但不限于 DOC、DOCX 和 RTF。Aspose 的这种特殊设计/功能。Words 大大降低了我们这边的工作量,因为我们只需要开发一个代码库来处理我们的应用程序当前需要的所有三种格式,以及将来可能需要的其他格式(例如 PostScript)。除了丰富的功能和 API 之外,我们发现这种设计/架构是 Aspose.Words 的关键技术优势。
其次,Aspose.Words 能够在其打开/关闭往返过程中保留原始 Word 文档中的所有 OLE 组件。即:让 Apose.Words 将现有的 Word 文档加载到其内存中的 DOM 模型中,并立即将 DOM 模型导出回 Word 文档。与原始文件相比,Aspose.Words 将生成文档的无损副本。此功能对我们的应用程序至关重要,据我们所知,没有其他产品(商业或公共领域)声称提供该功能。
我们想分享两张截图来结束这篇评论。一张截图 ( http://s26.postimg.org/lfc1skz8n/screenshot_rtf.jpg ) 是由 Aspose.Words 为我们生成的复杂表格。另一个(http://s26.postimg.org/5v4o21p47/screenshot_converted.jpg)是我们在线编辑器中显示的一些内容(由 Aspose.Words 从 Word 文档转换而来)。
谁能建议我应该选择哪一个?Apache POI 和 Aspose 的局限性是什么?
这是一个非常困难和笼统的问题,只能有非常笼统的答案。
每个软件项目都有不同的要求和功能。每个项目使用第 3 方组件的可行性也很可能不同。在不同的第 3 方之间进行选择很困难,因为您需要做更多或更少的
有关 Aspose 与 Apache POI 和其他替代方案的比较,请参见以下链接:
总体而言,很难找到限制并比较流行文件格式组件的功能。为什么?由于 MS Office 和 Adobe PDF 都是非常古老、成熟和稳定的产品,您可以在这些文件中放置各种各样的内容。
一个技巧是尝试获取最复杂和最大的文件(pdf、doc、xls 等)并使用 Aspose 和 Apache POI 加载。测试你最坏的情况。
PS。我是 Aspose 的开发人员布道师。
因此,针对特定问题评估这两个框架的最佳方法是针对您提到的特定问题对它们进行测试(“无法为表格创建边框”,这是在 Aspose 4 Slides 中修复的恕我直言。请参阅:http:// www.aspose.com/community/forums/thread/320218/borders-are-not-shown-in-aspose.slides-2.6.0.aspx)。
只需获得“Aspose Slides 4 Java”的演示许可证,下载最新版本并实施解决您的问题的解决方案。在你的情况下,这只需要几行。
之后你对 POI(或像 Gagravarr 提到的 Tika)做同样的事情。之后,您至少知道“Aspose slides 4 java”是否可以解决您的问题,然后您可以决定将钱花在 Aspose 上或免费获取 POI lib。
我们使用“Aspose Sliedes 4 Java”已经 3 年了。有很多错误,但是当我们将它们发布到论坛中时,它们都已修复。在我们购买 Aspose 之前,我们还用 POI 做了所有这些 Powerpoint 的事情。我想说这两个框架在功能性、稳定性和可靠性方面几乎是相同的。
Aspose 唯一的大缺点是您必须对所有内容进行两次编码。旧 PowerPoint 格式 (PP 97-2003) 的一个特定代码和新 PPTX 格式的一个特定代码。当您必须为所有格式编码时,这确实会让您感到紧张。
如果您的唯一目的是导入和导出 Excel/OO 文件,请使用 Apache POI。如果您需要处理文件、处理、显示等,请使用 Aspose。