PDF注释实用程序

pdfannot的Python项目详细描述


pdfannot

这个包的目的是在带注释的pdf和excel数据框架之间创建一个双向链接。

它允许您:

  • 创建一个数据框,其中包含在列“annot_text”中对pdf进行注释的每个字符串,以及在列“label”中对其进行注释的字符串,以及坐标、页面等信息。
  • 在给定上述表单的数据框架的情况下对pdf进行注释。

它对于自动生成带注释的pdf文档非常有用,nlp模型能够 从数据帧中的原始文本推断注释。

先决条件

  • 熊猫
  • 菲茨

(pip安装pymupdf)

安装

pip安装pdfannot

示例

您的数据框必须包含有关在PDF上批注内容的信息:

import pdfannot
import pandas as pd

# adf stands for annotation dataframe
adf = pd.DataFrame([
{'x': 40, 'y': 60, 'w': 300, 'h': 50}, 
{'text': 'APPEAL relating to Cancellation Proceedings No 399', 'type': 'Highlight'},
{'text': 'ication for a declaration of i', 'type': 'Highlight', 'label': 'label 1'},
{'x': 100, 'y': 600, 'w': 300, 'h': 50, 'page': 1, 'label': 'label 2'}, 
 ])

# pdfannot.exple_pdf is a test pdf shipped with pdf annot package / debug is set to True for some verbose
pdfannot.annotate_pdf(adf, pdfannot.exple_pdf, '/tmp/test.pdf', debug=True)

您的注释数据框应该已经有了列“x”、“y”、“h”、“w”(坐标表示正方形)或列“text”(文本表示注释)。

annotate_pdf(DataFrame, orig_pdfpath, dest_pdfpath)

将使用数据帧和传入的pdf参数的目录对其进行注释,并将其存储在dest_pdfpath。

函数还考虑可选列“label”来标记批注,并考虑“type”来指定是否需要 “正方形”或“突出显示”。

默认值为label:“”和type:“square”。

最后,使用列“page”指定批注的页面可以加快算法的速度。”“页面”对于1页PDF是可选的

内部

但是,如果数据帧的每个批注标签都有一个文本列(警告:每个文本列都必须命名为annot{label{u name}),则可以使用:

annot_utils.dlf2adf(DataFrame)

通过注释pdf使其可接受执行后:

annotate_pdf(DataFrame, orig_pdfpath, dest_pdfpath)

为pdf添加注释(此方法只允许突出显示)

作者

亚瑟·雷诺,安托万·马鲁拉兹-->;斯塔卡多克

有什么建议/问题吗?-->;contact@stackadoc.com

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

推荐PyPI第三方库


热门话题
java为什么程序显示空结果?   java应用程序在测试设备上调试时工作正常,但在发布版apk中没有,它没有获得post。来自firebase的类变量   java Android:从主活动按钮确定在listview中选中哪个复选框   在Spring中添加@OneToOne注释时启动ApplicationContext时发生java错误   用JAVA Android实现矩阵计算的最快方法   SpringJava语义有没有更好的编写方法?   java从hashmap中减去两个值后返回最小差值的键?   Java中的静态初始化顺序:Netty 4.0.7的例外   java如何检查用户输入是否为字符串   循环Java计数单词索引   java如何使用以下代码将视频流传输到Android异步Http服务器?   java如何在jtable的所有行中循环   java如何使用maven将unicode插入mysql   java使用安卓加速远程数据检索   java试图模拟麦克风(javax.sound.sampled)   swing SwingWorker从不归还任何东西?(爪哇)   首次在Android Studio上未加载java LibGDX文件   java如何在多个Mysql服务器上设置限制和偏移?   如何防止从java连接到mongodb时登录控制台?