使用 poppler 提取注释。 g_free() / get_color() 问题

Using poppler to extract annotations. g_free() / get_color() issue

我借用了这个 python 代码 here(enno groper 的第一个答案)来自动从 pdf 中提取注释。

我想对代码做一些修改。尝试使用 annot_mapping.annot.get_color() 我 运行 获取注释的颜色到第一期。命令 returns 是像这个 <PopplerColor at 0x1a85180> 这样的对象,而不是 rgb 值 (promised here)。

根据poppler docs poppler_annot_get_color() returns "a new allocated PopplerColor with the color values of poppler_annot , or NULL. It must be freed with g_free() when done".

这是否正确?如果是,我如何在 python 中实现?

annot_mapping.annot.get_color() 为您提供一个 PopplerColor,它是一个具有三个成员(类型为 guint16)的结构:红色、绿色和蓝色。例如:

PopplerColor *color = poppler_annot_get_color (annot);
g_printf ("%d\n", color->red);

给你注解的红色值annot,gb值同样可以得到

在 python 中,这是通过 annot_mapping.annot.get_color().red 实现的,假设您有 import poppler