从PDF中提取表格数据的Web界面。

excalibur-p的Python项目详细描述


excalibur:从pdf中提取表格数据的web界面

Documentation StatusimageimageimageGitter chat

excalibur是一个从pdf中提取表格数据的web界面,用python 3编写!它由Camelot提供动力。

注意:excalibur仅适用于基于文本的pdf,而不适用于扫描的文档。(如表格explains,“如果您可以单击并拖动以在pdf查看器中选择表中的文本,则pdf是基于文本的”。

使用excalibur

注意:在前进之前需要install ghostscript

installing Excalibur with pip之后,您需要使用:

$ excalibur initdb

然后使用:

$ excalibur webserver

就这样!现在您可以转到http://localhost:5000并开始从PDF中提取表格数据。

  1. upload一个pdf文件,并输入要从中提取表的页码。

  2. 转到每页并通过在其周围画一个框来选择表。(您可以选择跳过此步骤,因为excalibur可以自己自动检测表。单击“autodetect tables”查看excalibur看到的内容。)

  3. 从“advanced”中选择口味(晶格或流)。

    a.lattice:用于由行组成的表。

    b.stream:用于由空白组成的表。

  4. 单击“view并下载数据”以查看提取的表。

  5. 选择您喜欢的格式(csv/excel/json/html)并单击“下载”“!

注意:您还可以从releases page下载Windows和Linux的可执行文件并直接运行它们!

usage.gif

为什么是埃克斯卡利伯?

  • 从pdf中提取表是困难的。简单地从pdf复制粘贴到excel并不能保留表结构。excalibur通过自动检测pdf中的表并将它们保存到csv和excel文件中,使pdf表提取变得非常容易。
  • excalibur在引擎盖下使用Camelot,这为您提供了额外的设置来调整表提取并获得最佳结果。您可以看到它的性能如何优于其他开源工具和库in this comparison
  • 您可以为pdf保存一次表提取settings(类似于表区域),并将它们应用于新的pdf以提取具有类似结构的表。
  • 你可以完全控制你的数据。所有文件存储和处理都在您自己的本地或远程计算机上进行。
  • excalibur可以配置mysql和celeriy以实现并行和分布式工作负载。默认情况下,sqlite和多处理用于顺序工作负载。

安装

使用pip

在安装了camelot的要求之一ghostscript(参见install instructions)之后,您只需使用pip安装excalibur即可:

$ pip install excalibur-py

从源代码

安装ghostscript后,使用以下命令克隆repo:

$ git clone https://www.github.com/camelot-dev/excalibur

并使用pip安装excalibur:

$ cd excalibur
$ pip install .

文档

精彩的文档可以在http://excalibur-py.readthedocs.io/找到。

开发

Contributor's Guide包含有关贡献代码、文档、测试等的详细信息。我们在自述文件中包含了一些基本信息。

源代码

您可以使用以下网址查看最新的来源:

$ git clone https://www.github.com/camelot-dev/excalibur

建立一个开发环境

使用pip:

$ pip install excalibur-py[dev]

测试(即将)

安装后,您可以使用以下命令运行测试:

$ python setup.py test

版本控制

excalibur使用Semantic Versioning。有关可用版本,请参阅此存储库上的标记。对于变更日志,您可以签出HISTORY.md

许可证

此项目是在mit许可下授权的,有关详细信息,请参见LICENSE文件。

支持开发

你可以用一次或每月的捐款来支持我们关于excalibur的工作。使用excalibur的组织还可以赞助项目,以获得对our official site和本自述文件的确认。

特别感谢所有支持excalibur的用户和组织!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Oracle将休眠为ISO 8601日期格式   当有线程时,swing计时器不会停止。睡在Java里面   如何使用swing在java中清空密码字段值(字符串)   如何在编辑文本字段上设置单词java(安卓)   单独类中的java OkHttp请求   java Tomcat配置文件/上下文xml似乎已经崩溃了。请确保它是可分析和有效的。有关详细信息,请参阅服务器日志   java在科尔多瓦的ActivityResult上传递   java如何在映射中保持插入顺序。工厂?   “DataOutputStream”和“ObjectOutputStream”之间的java差异   java从FTP文件列表中获取项目的时间戳   java如何在spring security中为每个人忽略一些资源/URL?   模板类嵌套时新的Java泛型类构造函数问题   java读取并查找文件大小为1GB的行   java如何使用字符串say“stop”停止整数格式的while循环   java是否可以在应用程序启动之间将JVM保留在内存中?   java Springboot出现“出现意外错误(类型=内部服务器错误,状态=500)”的问题