[dev-python/python-poppler] fix with poppler 0.18.1, bug 2956

This commit is contained in:
Sławomir Nizio
2012-01-13 19:38:29 +01:00
parent 37c7f4665c
commit 7403ef772d
7 changed files with 381 additions and 0 deletions
@@ -0,0 +1,73 @@
--- poppler.defs
+++ poppler.defs
@@ -1642,6 +1642,7 @@
(of-object "PopplerPage")
(c-name "poppler_page_render_to_pixbuf")
(return-type "none")
+ (unblock-threads #t)
(parameters
'("int" "src_x")
'("int" "src_y")
@@ -1657,6 +1658,7 @@
(of-object "PopplerPage")
(c-name "poppler_page_render_to_pixbuf_for_printing")
(return-type "none")
+ (unblock-threads #t)
(parameters
'("int" "src_x")
'("int" "src_y")
@@ -1672,12 +1674,14 @@
(of-object "PopplerPage")
(c-name "poppler_page_get_thumbnail_pixbuf")
(return-type "GdkPixbuf*")
+ (unblock-threads #t)
)
(define-method render_selection_to_pixbuf
(of-object "PopplerPage")
(c-name "poppler_page_render_selection_to_pixbuf")
(return-type "none")
+ (unblock-threads #t)
(parameters
'("gdouble" "scale")
'("int" "rotation")
@@ -1694,6 +1698,7 @@
(of-object "PopplerPage")
(c-name "poppler_page_render")
(return-type "none")
+ (unblock-threads #t)
(parameters
'("cairo_t*" "cairo")
)
@@ -1703,6 +1708,7 @@
(of-object "PopplerPage")
(c-name "poppler_page_render_for_printing")
(return-type "none")
+ (unblock-threads #t)
(parameters
'("cairo_t*" "cairo")
)
@@ -1712,12 +1718,14 @@
(of-object "PopplerPage")
(c-name "poppler_page_get_thumbnail")
(return-type "cairo_surface_t*")
+ (unblock-threads #t)
)
(define-method render_selection
(of-object "PopplerPage")
(c-name "poppler_page_render_selection")
(return-type "none")
+ (unblock-threads #t)
(parameters
'("cairo_t*" "cairo")
'("PopplerRectangle*" "selection")
@@ -1779,6 +1787,7 @@
(of-object "PopplerPage")
(c-name "poppler_page_render_to_ps")
(return-type "none")
+ (unblock-threads #t)
(parameters
'("PopplerPSFile*" "ps_file")
)
@@ -0,0 +1,66 @@
--- poppler.override
+++ poppler.override
@@ -600,3 +600,62 @@
return PycairoSurface_FromSurface(surface, NULL, NULL);
#endif
}
+%%
+override poppler_page_render_to_pixbuf kwargs
+static PyObject *
+_wrap_poppler_page_render_to_pixbuf(PyGObject *self,
+ PyObject *args,
+ PyObject *kwargs)
+{
+ static char *kwlist[] = { "src_x", "src_y", "src_width",
+ "src_height", "scale", "rotation", NULL };
+ int src_x, src_y, src_width, src_height, rotation;
+ double scale;
+ GdkPixbuf *pixbuf = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "iiiidi:Poppler.Page.render_to_pixbuf",
+ kwlist, &src_x, &src_y, &src_width,
+ &src_height, &scale, &rotation))
+ return NULL;
+
+ pyg_begin_allow_threads;
+
+ poppler_page_render_to_pixbuf(POPPLER_PAGE(self->obj), src_x, src_y,
+ src_width, src_height, scale,
+ rotation, pixbuf);
+
+ pyg_end_allow_threads;
+
+ return pygobject_new((GObject *)pixbuf);
+}
+%%
+override poppler_page_render_to_pixbuf_for_printing kwargs
+static PyObject *
+_wrap_poppler_page_render_to_pixbuf_for_printing(PyGObject *self,
+ PyObject *args,
+ PyObject *kwargs)
+{
+ static char *kwlist[] = { "src_x", "src_y", "src_width",
+ "src_height", "scale", "rotation", NULL };
+ int src_x, src_y, src_width, src_height, rotation;
+ double scale;
+ GdkPixbuf *pixbuf = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "iiiidi:Poppler.Page.render_to_pixbuf_for_printing",
+ kwlist, &src_x, &src_y, &src_width,
+ &src_height, &scale, &rotation))
+ return NULL;
+
+ pyg_begin_allow_threads;
+
+ poppler_page_render_to_pixbuf_for_printing(POPPLER_PAGE(self->obj),
+ src_x, src_y, src_width,
+ src_height, scale,
+ rotation, pixbuf);
+
+ pyg_end_allow_threads;
+
+ return pygobject_new((GObject *)pixbuf);
+}
@@ -0,0 +1,52 @@
--- poppler.override
+++ poppler.override
@@ -266,6 +266,12 @@
import gobject.GObject as PyGObject_Type
import gtk.gdk.Pixbuf as PyGdkPixbuf_Type
%%
+ignore
+poppler_page_free_link_mapping
+poppler_page_free_image_mapping
+poppler_page_free_form_field_mapping
+poppler_page_free_annot_mapping
+%%
ignore-glob
*_get_type
_*
@@ -359,7 +365,7 @@
item_list = poppler_page_get_link_mapping(POPPLER_PAGE(self->obj));
ret = _glist_to_pylist_boxed(item_list, POPPLER_TYPE_LINK_MAPPING);
- g_list_free(item_list);
+ poppler_page_free_link_mapping(item_list);
return ret;
}
%%
@@ -372,7 +378,7 @@
item_list = poppler_page_get_image_mapping(POPPLER_PAGE(self->obj));
ret = _glist_to_pylist_boxed(item_list, POPPLER_TYPE_IMAGE_MAPPING);
- g_list_free(item_list);
+ poppler_page_free_image_mapping(item_list);
return ret;
}
%%
@@ -385,7 +391,7 @@
item_list = poppler_page_get_form_field_mapping(POPPLER_PAGE(self->obj));
ret = _glist_to_pylist_boxed(item_list, POPPLER_TYPE_FORM_FIELD_MAPPING);
- g_list_free(item_list);
+ poppler_page_free_form_field_mapping(item_list);
return ret;
}
%%
@@ -398,7 +404,7 @@
item_list = poppler_page_get_annot_mapping(POPPLER_PAGE(self->obj));
ret = _glist_to_pylist_boxed(item_list, POPPLER_TYPE_ANNOT_MAPPING);
- g_list_free(item_list);
+ poppler_page_free_annot_mapping(item_list);
return ret;
}
%%
@@ -0,0 +1,65 @@
--- pypoppler-0.12.1/poppler.defs 2011-10-24 11:57:35.000000000 +0200
+++ pypoppler-0.12.1/poppler.defs 2011-10-24 12:01:28.000000000 +0200
@@ -1646,62 +1646,6 @@
(return-type "GType")
)
-(define-method render_to_pixbuf
- (of-object "PopplerPage")
- (c-name "poppler_page_render_to_pixbuf")
- (return-type "none")
- (unblock-threads #t)
- (parameters
- '("int" "src_x")
- '("int" "src_y")
- '("int" "src_width")
- '("int" "src_height")
- '("double" "scale")
- '("int" "rotation")
- '("GdkPixbuf*" "pixbuf")
- )
-)
-
-(define-method render_to_pixbuf_for_printing
- (of-object "PopplerPage")
- (c-name "poppler_page_render_to_pixbuf_for_printing")
- (return-type "none")
- (unblock-threads #t)
- (parameters
- '("int" "src_x")
- '("int" "src_y")
- '("int" "src_width")
- '("int" "src_height")
- '("double" "scale")
- '("int" "rotation")
- '("GdkPixbuf*" "pixbuf")
- )
-)
-
-(define-method get_thumbnail_pixbuf
- (of-object "PopplerPage")
- (c-name "poppler_page_get_thumbnail_pixbuf")
- (return-type "GdkPixbuf*")
- (unblock-threads #t)
-)
-
-(define-method render_selection_to_pixbuf
- (of-object "PopplerPage")
- (c-name "poppler_page_render_selection_to_pixbuf")
- (return-type "none")
- (unblock-threads #t)
- (parameters
- '("gdouble" "scale")
- '("int" "rotation")
- '("GdkPixbuf*" "pixbuf")
- '("PopplerRectangle*" "selection")
- '("PopplerRectangle*" "old_selection")
- '("PopplerSelectionStyle" "style")
- '("GdkColor*" "glyph_color")
- '("GdkColor*" "background_color")
- )
-)
-
(define-method render
(of-object "PopplerPage")
(c-name "poppler_page_render")
@@ -0,0 +1,66 @@
--- poppler.defs
+++ poppler.defs
@@ -1760,6 +1760,12 @@
(return-type "int")
)
+(define-method get_label
+ (of-object "PopplerPage")
+ (c-name "poppler_page_get_label")
+ (return-type "gchar*")
+)
+
(define-method get_duration
(of-object "PopplerPage")
(c-name "poppler_page_get_duration")
@@ -1805,9 +1811,15 @@
(of-object "PopplerPage")
(c-name "poppler_page_get_text")
(return-type "char*")
+)
+
+(define-method get_selected_text
+ (of-object "PopplerPage")
+ (c-name "poppler_page_get_selected_text")
+ (return-type "char*")
(parameters
'("PopplerSelectionStyle" "style")
- '("PopplerRectangle*" "rect")
+ '("PopplerRectangle*" "selection")
)
)
@@ -1895,6 +1907,16 @@
)
)
+(define-function poppler_page_add_annot
+ (of-object "PopplerPage")
+ (c-name "poppler_page_add_annot")
+ (return-type "none")
+ (parameters
+ '("PopplerAnnot*" "annot")
+ '("GList*" "list")
+ )
+)
+
(define-method get_crop_box
(of-object "PopplerPage")
(c-name "poppler_page_get_crop_box")
@@ -1904,6 +1926,16 @@
)
)
+(define-method get_text_layout
+ (of-object "PopplerPage")
+ (c-name "poppler_page_get_text_layout")
+ (return-type "gboolean")
+ (parameters
+ '("PopplerRectangle**" "rectangles")
+ '("guint*" "n_rectangles")
+ )
+)
+
(define-function poppler_rectangle_get_type
(c-name "poppler_rectangle_get_type")
(return-type "GType")