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如何在windows上向doclet添加多个sourcepath?   java谷歌地图应用程序   java为以下场景创建正则表达式   Java文件通道异常   Java集合如何将文件对象列表转换为路径对象列表?   多线程生产者/消费者模型使用Java(同步),但始终运行同一线程   java如何为存储在ArrayList中的特定属性设置值?   java一次不能加载多个osm文件   使用java 8将map<String,map<Long,customeObject>>转换为list<customeObject>   java JDK包含哪些脚本语言解释器?   java为什么eclipse在这里生成语法错误?   多线程Javasocket异常:socket已关闭且值为空   java我想在Android活动中创建一个带有图像的可滚动文本列表。我应该用什么?   java实现编译时警告   java根据安卓 SQLite数据库中前一行的相同值递增特定值   java移动迭代器语句使代码可编译   java JVM终身/旧代已达到限制&服务器挂起   为什么我们不能在映射上使用迭代器(Java)?   xml如何映射JAXB中已有的JavaBean