poppler 1.0.3-x86-mingw32 → 1.1.0-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ext/poppler/rbpoppler-action.c +27 -23
- data/ext/poppler/rbpoppler-annotation.c +38 -271
- data/ext/poppler/rbpoppler-annotationcalloutline.c +130 -0
- data/ext/poppler/rbpoppler-annotationfreetext.c +47 -0
- data/ext/poppler/rbpoppler-annotationmapping.c +75 -0
- data/ext/poppler/rbpoppler-annotationmarkup.c +97 -0
- data/ext/poppler/rbpoppler-annotationtext.c +58 -0
- data/ext/poppler/rbpoppler-attachment.c +41 -31
- data/ext/poppler/rbpoppler-buttonfield.c +58 -0
- data/ext/poppler/rbpoppler-choicefield.c +133 -0
- data/ext/poppler/rbpoppler-color.c +122 -0
- data/ext/poppler/rbpoppler-document.c +74 -340
- data/ext/poppler/rbpoppler-fontinfo.c +66 -0
- data/ext/poppler/rbpoppler-fontsiter.c +130 -0
- data/ext/poppler/rbpoppler-form-field.c +43 -234
- data/ext/poppler/rbpoppler-formfieldmapping.c +47 -0
- data/ext/poppler/rbpoppler-imagemapping.c +55 -0
- data/ext/poppler/rbpoppler-indexiter.c +130 -0
- data/ext/poppler/rbpoppler-linkmapping.c +50 -0
- data/ext/poppler/rbpoppler-page.c +106 -454
- data/ext/poppler/rbpoppler-pagetransition.c +62 -0
- data/ext/poppler/rbpoppler-private.h +31 -6
- data/ext/poppler/rbpoppler-psfile.c +69 -0
- data/ext/poppler/rbpoppler-rectangle.c +94 -0
- data/ext/poppler/rbpoppler-textfield.c +93 -0
- data/ext/poppler/rbpoppler.c +74 -45
- data/ext/poppler/rbpoppler.h +22 -15
- data/ext/poppler/rbpopplerconversions.h +105 -0
- data/lib/1.8/poppler.so +0 -0
- data/lib/1.9/poppler.so +0 -0
- metadata +28 -10
- data/ChangeLog +0 -424
@@ -0,0 +1,47 @@
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2006-2008 Ruby-GNOME2 Project Team
|
5
|
+
*
|
6
|
+
* This library is free software; you can redistribute it and/or
|
7
|
+
* modify it under the terms of the GNU Lesser General Public
|
8
|
+
* License as published by the Free Software Foundation; either
|
9
|
+
* version 2.1 of the License, or (at your option) any later version.
|
10
|
+
*
|
11
|
+
* This library is distributed in the hope that it will be useful,
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14
|
+
* Lesser General Public License for more details.
|
15
|
+
*
|
16
|
+
* You should have received a copy of the GNU Lesser General Public
|
17
|
+
* License along with this library; if not, write to the Free Software
|
18
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
19
|
+
* MA 02110-1301 USA
|
20
|
+
*/
|
21
|
+
|
22
|
+
#include "rbpoppler-private.h"
|
23
|
+
|
24
|
+
#define RG_TARGET_NAMESPACE cFormFieldMapping
|
25
|
+
|
26
|
+
DEF_ACCESSOR_WITH_SETTER(form_field_mapping, area,
|
27
|
+
RVAL2POPPLERFORMFIELDMAPPING, RECT_ENTITY2RVAL, RECT_ENTITY_SET)
|
28
|
+
DEF_ACCESSOR(form_field_mapping, field, RVAL2POPPLERFORMFIELDMAPPING,
|
29
|
+
POPPLERFORMFIELD2RVAL, RVAL2POPPLERFORMFIELD)
|
30
|
+
|
31
|
+
void
|
32
|
+
Init_poppler_formfieldmapping(VALUE mPoppler)
|
33
|
+
{
|
34
|
+
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_FORM_FIELD_MAPPING,
|
35
|
+
"FormFieldMapping", mPoppler);
|
36
|
+
|
37
|
+
rb_define_method(RG_TARGET_NAMESPACE, "area", form_field_mapping_get_area, 0);
|
38
|
+
rb_define_method(RG_TARGET_NAMESPACE, "field", form_field_mapping_get_field,
|
39
|
+
0);
|
40
|
+
|
41
|
+
rb_define_method(RG_TARGET_NAMESPACE, "set_area",
|
42
|
+
form_field_mapping_set_area, 1);
|
43
|
+
rb_define_method(RG_TARGET_NAMESPACE, "set_field",
|
44
|
+
form_field_mapping_set_field, 1);
|
45
|
+
|
46
|
+
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
|
47
|
+
}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2006-2008 Ruby-GNOME2 Project Team
|
5
|
+
*
|
6
|
+
* This library is free software; you can redistribute it and/or
|
7
|
+
* modify it under the terms of the GNU Lesser General Public
|
8
|
+
* License as published by the Free Software Foundation; either
|
9
|
+
* version 2.1 of the License, or (at your option) any later version.
|
10
|
+
*
|
11
|
+
* This library is distributed in the hope that it will be useful,
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14
|
+
* Lesser General Public License for more details.
|
15
|
+
*
|
16
|
+
* You should have received a copy of the GNU Lesser General Public
|
17
|
+
* License along with this library; if not, write to the Free Software
|
18
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
19
|
+
* MA 02110-1301 USA
|
20
|
+
*/
|
21
|
+
|
22
|
+
#include "rbpoppler-private.h"
|
23
|
+
|
24
|
+
#define RG_TARGET_NAMESPACE cImageMapping
|
25
|
+
|
26
|
+
DEF_ACCESSOR_WITH_SETTER(image_mapping, area,
|
27
|
+
RVAL2POPPLERIMAGEMAPPING, RECT_ENTITY2RVAL, RECT_ENTITY_SET)
|
28
|
+
DEF_ACCESSOR(image_mapping, image_id, RVAL2POPPLERIMAGEMAPPING, INT2NUM, NUM2INT)
|
29
|
+
#ifdef RB_POPPLER_CAIRO_AVAILABLE
|
30
|
+
static VALUE
|
31
|
+
rg_image(VALUE self)
|
32
|
+
{
|
33
|
+
return rb_funcall(rb_iv_get(self, "@page"), rb_intern("get_image"),
|
34
|
+
1, INT2NUM(RVAL2POPPLERIMAGEMAPPING(self)->image_id));
|
35
|
+
}
|
36
|
+
#endif
|
37
|
+
|
38
|
+
void
|
39
|
+
Init_poppler_imagemapping(VALUE mPoppler)
|
40
|
+
{
|
41
|
+
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_IMAGE_MAPPING,
|
42
|
+
"ImageMapping", mPoppler);
|
43
|
+
|
44
|
+
rb_define_method(RG_TARGET_NAMESPACE, "area", image_mapping_get_area, 0);
|
45
|
+
rb_define_method(RG_TARGET_NAMESPACE, "image_id", image_mapping_get_image_id, 0);
|
46
|
+
#ifdef RB_POPPLER_CAIRO_AVAILABLE
|
47
|
+
RG_DEF_METHOD(image, 0);
|
48
|
+
#endif
|
49
|
+
|
50
|
+
rb_define_method(RG_TARGET_NAMESPACE, "set_area", image_mapping_set_area, 1);
|
51
|
+
rb_define_method(RG_TARGET_NAMESPACE, "set_image_id",
|
52
|
+
image_mapping_set_image_id, 1);
|
53
|
+
|
54
|
+
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
|
55
|
+
}
|
@@ -0,0 +1,130 @@
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2006 Ruby-GNOME2 Project Team
|
5
|
+
*
|
6
|
+
* This library is free software; you can redistribute it and/or
|
7
|
+
* modify it under the terms of the GNU Lesser General Public
|
8
|
+
* License as published by the Free Software Foundation; either
|
9
|
+
* version 2.1 of the License, or (at your option) any later version.
|
10
|
+
*
|
11
|
+
* This library is distributed in the hope that it will be useful,
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14
|
+
* Lesser General Public License for more details.
|
15
|
+
*
|
16
|
+
* You should have received a copy of the GNU Lesser General Public
|
17
|
+
* License along with this library; if not, write to the Free Software
|
18
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
19
|
+
* MA 02110-1301 USA
|
20
|
+
*/
|
21
|
+
|
22
|
+
#include "rbpoppler-private.h"
|
23
|
+
|
24
|
+
#define RG_TARGET_NAMESPACE cIndexIter
|
25
|
+
|
26
|
+
static VALUE RG_TARGET_NAMESPACE;
|
27
|
+
|
28
|
+
static ID id_valid;
|
29
|
+
|
30
|
+
/* Interface for getting the Index of a poppler_document */
|
31
|
+
#define CHECK_IITER_IS_VALID(iter) do { \
|
32
|
+
if (!RVAL2CBOOL(rg_valid_p(iter))) \
|
33
|
+
return Qnil; \
|
34
|
+
} while (0)
|
35
|
+
|
36
|
+
static VALUE
|
37
|
+
rg_valid_p(VALUE self)
|
38
|
+
{
|
39
|
+
return rb_ivar_get(self, id_valid);
|
40
|
+
}
|
41
|
+
|
42
|
+
static VALUE
|
43
|
+
rg_initialize(VALUE self, VALUE document)
|
44
|
+
{
|
45
|
+
PopplerIndexIter *iter;
|
46
|
+
iter = poppler_index_iter_new(RVAL2POPPLERDOCUMENT(document));
|
47
|
+
G_INITIALIZE(self, iter);
|
48
|
+
poppler_index_iter_free(iter);
|
49
|
+
rb_ivar_set(self, id_valid, CBOOL2RVAL(iter));
|
50
|
+
return Qnil;
|
51
|
+
}
|
52
|
+
|
53
|
+
static VALUE
|
54
|
+
rg_child(VALUE self)
|
55
|
+
{
|
56
|
+
PopplerIndexIter *child;
|
57
|
+
VALUE rb_child;
|
58
|
+
|
59
|
+
CHECK_IITER_IS_VALID(self);
|
60
|
+
child = poppler_index_iter_get_child(RVAL2POPPLERINDEXITER(self));
|
61
|
+
rb_child = POPPLERINDEXITER2RVAL(child);
|
62
|
+
poppler_index_iter_free(child);
|
63
|
+
return rb_child;
|
64
|
+
}
|
65
|
+
|
66
|
+
static VALUE
|
67
|
+
rg_open_p(VALUE self)
|
68
|
+
{
|
69
|
+
CHECK_IITER_IS_VALID(self);
|
70
|
+
return CBOOL2RVAL(poppler_index_iter_is_open(RVAL2POPPLERINDEXITER(self)));
|
71
|
+
}
|
72
|
+
|
73
|
+
#ifndef HAVE_TYPE_POPPLERACTIONANY
|
74
|
+
static VALUE
|
75
|
+
rg_action(VALUE self)
|
76
|
+
{
|
77
|
+
CHECK_IITER_IS_VALID(self);
|
78
|
+
return POPPLERACTION2RVAL(poppler_index_iter_get_action(RVAL2POPPLERINDEXITER(self)));
|
79
|
+
}
|
80
|
+
#endif
|
81
|
+
|
82
|
+
static VALUE
|
83
|
+
rg_next(VALUE self)
|
84
|
+
{
|
85
|
+
if (poppler_index_iter_next(RVAL2POPPLERINDEXITER(self))) {
|
86
|
+
return Qtrue;
|
87
|
+
} else {
|
88
|
+
rb_ivar_set(self, id_valid, Qfalse);
|
89
|
+
return Qfalse;
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
93
|
+
static VALUE
|
94
|
+
rg_each(VALUE self)
|
95
|
+
{
|
96
|
+
PopplerIndexIter *iter;
|
97
|
+
|
98
|
+
CHECK_IITER_IS_VALID(self);
|
99
|
+
iter = RVAL2POPPLERINDEXITER(self);
|
100
|
+
do {
|
101
|
+
rb_yield(self);
|
102
|
+
} while (poppler_index_iter_next(iter));
|
103
|
+
rb_ivar_set(self, id_valid, Qfalse);
|
104
|
+
|
105
|
+
return self;
|
106
|
+
}
|
107
|
+
|
108
|
+
void
|
109
|
+
Init_poppler_indexiter(VALUE mPoppler)
|
110
|
+
{
|
111
|
+
id_valid = rb_intern("valid?");
|
112
|
+
|
113
|
+
RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_INDEX_ITER, "IndexIter", mPoppler);
|
114
|
+
|
115
|
+
/* Interface for getting the Index of a poppler_document */
|
116
|
+
rb_include_module(RG_TARGET_NAMESPACE, rb_mEnumerable);
|
117
|
+
|
118
|
+
RG_DEF_METHOD(initialize, 1);
|
119
|
+
RG_DEF_METHOD(child, 0);
|
120
|
+
RG_DEF_METHOD_P(open, 0);
|
121
|
+
#ifndef HAVE_TYPE_POPPLERACTIONANY
|
122
|
+
RG_DEF_METHOD(action, 0);
|
123
|
+
#endif
|
124
|
+
RG_DEF_METHOD(next, 0);
|
125
|
+
|
126
|
+
RG_DEF_METHOD_P(valid, 0);
|
127
|
+
RG_DEF_METHOD(each, 0);
|
128
|
+
|
129
|
+
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
|
130
|
+
}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2006-2008 Ruby-GNOME2 Project Team
|
5
|
+
*
|
6
|
+
* This library is free software; you can redistribute it and/or
|
7
|
+
* modify it under the terms of the GNU Lesser General Public
|
8
|
+
* License as published by the Free Software Foundation; either
|
9
|
+
* version 2.1 of the License, or (at your option) any later version.
|
10
|
+
*
|
11
|
+
* This library is distributed in the hope that it will be useful,
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14
|
+
* Lesser General Public License for more details.
|
15
|
+
*
|
16
|
+
* You should have received a copy of the GNU Lesser General Public
|
17
|
+
* License along with this library; if not, write to the Free Software
|
18
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
19
|
+
* MA 02110-1301 USA
|
20
|
+
*/
|
21
|
+
|
22
|
+
#include "rbpoppler-private.h"
|
23
|
+
|
24
|
+
#define RG_TARGET_NAMESPACE cLinkMapping
|
25
|
+
|
26
|
+
void
|
27
|
+
rectangle_set(PopplerRectangle *rect, VALUE rb_rect)
|
28
|
+
{
|
29
|
+
*rect = *(RVAL2POPPLERRECTANGLE(rb_rect));
|
30
|
+
}
|
31
|
+
|
32
|
+
DEF_ACCESSOR_WITH_SETTER(link_mapping, area,
|
33
|
+
RVAL2POPPLERLINKMAPPING, RECT_ENTITY2RVAL, RECT_ENTITY_SET)
|
34
|
+
DEF_ACCESSOR(link_mapping, action, RVAL2POPPLERLINKMAPPING,
|
35
|
+
POPPLERACTION2RVAL, RVAL2POPPLERACTION)
|
36
|
+
|
37
|
+
void
|
38
|
+
Init_poppler_linkmapping(VALUE mPoppler)
|
39
|
+
{
|
40
|
+
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_LINK_MAPPING, "LinkMapping",
|
41
|
+
mPoppler);
|
42
|
+
|
43
|
+
rb_define_method(RG_TARGET_NAMESPACE, "area", link_mapping_get_area, 0);
|
44
|
+
rb_define_method(RG_TARGET_NAMESPACE, "action", link_mapping_get_action, 0);
|
45
|
+
|
46
|
+
rb_define_method(RG_TARGET_NAMESPACE, "set_area", link_mapping_set_area, 1);
|
47
|
+
rb_define_method(RG_TARGET_NAMESPACE, "set_action", link_mapping_set_action, 1);
|
48
|
+
|
49
|
+
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
|
50
|
+
}
|
@@ -1,76 +1,36 @@
|
|
1
|
-
/* -*- c-file-style: "ruby" -*- */
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2006-2008 Ruby-GNOME2 Project Team
|
5
|
+
*
|
6
|
+
* This library is free software; you can redistribute it and/or
|
7
|
+
* modify it under the terms of the GNU Lesser General Public
|
8
|
+
* License as published by the Free Software Foundation; either
|
9
|
+
* version 2.1 of the License, or (at your option) any later version.
|
10
|
+
*
|
11
|
+
* This library is distributed in the hope that it will be useful,
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14
|
+
* Lesser General Public License for more details.
|
15
|
+
*
|
16
|
+
* You should have received a copy of the GNU Lesser General Public
|
17
|
+
* License along with this library; if not, write to the Free Software
|
18
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
19
|
+
* MA 02110-1301 USA
|
20
|
+
*/
|
9
21
|
|
10
22
|
#include "rbpoppler-private.h"
|
11
23
|
|
12
|
-
#define
|
24
|
+
#define RG_TARGET_NAMESPACE cPage
|
25
|
+
#define SELF(self) (RVAL2POPPLERPAGE(self))
|
13
26
|
|
14
27
|
#ifndef GDK_TYPE_REGION
|
15
28
|
extern GType gdk_region_get_type(void);
|
16
29
|
# define GDK_TYPE_REGION (gdk_region_get_type())
|
17
30
|
#endif
|
18
31
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
#define SEL_STYLE2RVAL(obj) (GENUM2RVAL(obj, POPPLER_TYPE_SELECTION_STYLE))
|
24
|
-
#define RVAL2SEL_STYLE(obj) (RVAL2GENUM(obj, POPPLER_TYPE_SELECTION_STYLE))
|
25
|
-
|
26
|
-
#define RVAL2TRANS(obj) ((PopplerPageTransition *)RVAL2BOXED(obj, POPPLER_TYPE_PAGE_TRANSITION))
|
27
|
-
#define TRANS2RVAL(obj) (BOXED2RVAL(obj, POPPLER_TYPE_PAGE_TRANSITION))
|
28
|
-
#define RVAL2LM(obj) ((PopplerLinkMapping *)RVAL2BOXED(obj, POPPLER_TYPE_LINK_MAPPING))
|
29
|
-
#define RVAL2IM(obj) ((PopplerImageMapping *)RVAL2BOXED(obj, POPPLER_TYPE_IMAGE_MAPPING))
|
30
|
-
#define RVAL2FFM(obj) ((PopplerFormFieldMapping *)RVAL2BOXED(obj, POPPLER_TYPE_FORM_FIELD_MAPPING))
|
31
|
-
#define RVAL2AM(obj) ((PopplerAnnotMapping *)RVAL2BOXED(obj, POPPLER_TYPE_ANNOT_MAPPING))
|
32
|
-
|
33
|
-
#define TT2RVAL(obj) (GENUM2RVAL(obj, POPPLER_TYPE_PAGE_TRANSITION_TYPE))
|
34
|
-
#define RVAL2TT(obj) (RVAL2GENUM(obj, POPPLER_TYPE_PAGE_TRANSITION_TYPE))
|
35
|
-
#define TA2RVAL(obj) (GENUM2RVAL(obj, POPPLER_TYPE_PAGE_TRANSITION_ALIGNMENT))
|
36
|
-
#define RVAL2TA(obj) (RVAL2GENUM(obj, POPPLER_TYPE_PAGE_TRANSITION_ALIGNMENT))
|
37
|
-
#define TD2RVAL(obj) (GENUM2RVAL(obj, POPPLER_TYPE_PAGE_TRANSITION_DIRECTION))
|
38
|
-
#define RVAL2TD(obj) (RVAL2GENUM(obj, POPPLER_TYPE_PAGE_TRANSITION_DIRECTION))
|
39
|
-
|
40
|
-
static VALUE cPSFile, cRectangle;
|
41
|
-
|
42
|
-
#ifdef POPPLER_TYPE_COLOR
|
43
|
-
VALUE rb_cPopplerColor;
|
44
|
-
|
45
|
-
PopplerColor *
|
46
|
-
rb_poppler_ruby_object_to_color(VALUE color)
|
47
|
-
{
|
48
|
-
#ifdef POPPLER_WITH_GDK
|
49
|
-
if (RTEST(rb_obj_is_kind_of(color, rb_cGdkColor))) {
|
50
|
-
GdkColor *gdk_color;
|
51
|
-
|
52
|
-
gdk_color = RVAL2GDKCOLOR(color);
|
53
|
-
color = rb_funcall(rb_cPopplerColor, rb_intern("new"),
|
54
|
-
3,
|
55
|
-
UINT2NUM(gdk_color->red),
|
56
|
-
UINT2NUM(gdk_color->green),
|
57
|
-
UINT2NUM(gdk_color->blue));
|
58
|
-
}
|
59
|
-
#endif
|
60
|
-
|
61
|
-
return RVAL2BOXED(color, POPPLER_TYPE_COLOR);
|
62
|
-
}
|
63
|
-
|
64
|
-
VALUE
|
65
|
-
rb_poppler_ruby_object_from_color_with_free(PopplerColor *color)
|
66
|
-
{
|
67
|
-
VALUE rb_color;
|
68
|
-
|
69
|
-
rb_color = POPPLER_COLOR2RVAL(color);
|
70
|
-
g_free(color);
|
71
|
-
return rb_color;
|
72
|
-
}
|
73
|
-
#endif
|
32
|
+
static VALUE cRectangle;
|
33
|
+
static VALUE cPSFile;
|
74
34
|
|
75
35
|
#ifdef POPPLER_WITH_GDK
|
76
36
|
static VALUE
|
@@ -81,7 +41,7 @@ page_render_to_pixbuf(VALUE self, VALUE src_x, VALUE src_y, VALUE src_width,
|
|
81
41
|
poppler_page_render_to_pixbuf(SELF(self), NUM2INT(src_x),
|
82
42
|
NUM2INT(src_y), NUM2INT(src_width),
|
83
43
|
NUM2INT(src_height), NUM2DBL(scale),
|
84
|
-
NUM2INT(rotation),
|
44
|
+
NUM2INT(rotation), RVAL2GDKPIXBUF(pixbuf));
|
85
45
|
return Qnil;
|
86
46
|
}
|
87
47
|
#endif
|
@@ -98,12 +58,12 @@ page_render(VALUE self, VALUE cairo)
|
|
98
58
|
static VALUE
|
99
59
|
page_render_to_ps(VALUE self, VALUE ps_file)
|
100
60
|
{
|
101
|
-
poppler_page_render_to_ps(SELF(self),
|
61
|
+
poppler_page_render_to_ps(SELF(self), RVAL2POPPLERPSFILE(ps_file));
|
102
62
|
return Qnil;
|
103
63
|
}
|
104
64
|
|
105
65
|
static VALUE
|
106
|
-
|
66
|
+
rg_render(int argc, VALUE *argv, VALUE self)
|
107
67
|
{
|
108
68
|
if (argc == 1) {
|
109
69
|
if (RVAL2CBOOL(rb_obj_is_kind_of(argv[0], cPSFile))) {
|
@@ -120,28 +80,28 @@ page_render_generic(int argc, VALUE *argv, VALUE self)
|
|
120
80
|
return page_render_to_pixbuf(self, argv[0], argv[1], argv[2], argv[3],
|
121
81
|
argv[4], argv[5], argv[6]);
|
122
82
|
#else
|
123
|
-
|
83
|
+
rb_raise(rb_eArgError, "GDK is not available");
|
124
84
|
#endif
|
125
85
|
} else {
|
126
86
|
rb_raise(rb_eArgError,
|
127
87
|
"wrong number of arguments (%d for 1 or 7)",
|
128
|
-
|
88
|
+
argc);
|
129
89
|
}
|
130
90
|
}
|
131
91
|
|
132
92
|
#ifdef POPPLER_WITH_GDK
|
133
93
|
static VALUE
|
134
94
|
page_render_to_pixbuf_for_printing(VALUE self, VALUE src_x, VALUE src_y,
|
135
|
-
|
136
|
-
|
95
|
+
VALUE src_width, VALUE src_height,
|
96
|
+
VALUE scale, VALUE rotation, VALUE pixbuf)
|
137
97
|
{
|
138
98
|
poppler_page_render_to_pixbuf_for_printing(SELF(self), NUM2INT(src_x),
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
99
|
+
NUM2INT(src_y),
|
100
|
+
NUM2INT(src_width),
|
101
|
+
NUM2INT(src_height),
|
102
|
+
NUM2DBL(scale),
|
103
|
+
NUM2INT(rotation),
|
104
|
+
RVAL2GDKPIXBUF(pixbuf));
|
145
105
|
return Qnil;
|
146
106
|
}
|
147
107
|
#endif
|
@@ -156,21 +116,21 @@ page_render_for_printing(VALUE self, VALUE cairo)
|
|
156
116
|
#endif
|
157
117
|
|
158
118
|
static VALUE
|
159
|
-
|
119
|
+
rg_render_for_printing(int argc, VALUE *argv, VALUE self)
|
160
120
|
{
|
161
121
|
if (argc == 1) {
|
162
122
|
#ifdef RB_POPPLER_CAIRO_AVAILABLE
|
163
|
-
|
123
|
+
return page_render_for_printing(self, argv[0]);
|
164
124
|
#else
|
165
|
-
|
125
|
+
rb_raise(rb_eArgError, "cairo is not available");
|
166
126
|
#endif
|
167
127
|
} else if (argc == 7) {
|
168
128
|
#ifdef POPPLER_WITH_GDK
|
169
129
|
return page_render_to_pixbuf_for_printing(self, argv[0], argv[1],
|
170
|
-
|
171
|
-
|
130
|
+
argv[2], argv[3],
|
131
|
+
argv[4], argv[5], argv[6]);
|
172
132
|
#else
|
173
|
-
|
133
|
+
rb_raise(rb_eArgError, "GDK is not available");
|
174
134
|
#endif
|
175
135
|
} else {
|
176
136
|
rb_raise(rb_eArgError,
|
@@ -187,13 +147,13 @@ page_render_selection(VALUE self, VALUE cairo,
|
|
187
147
|
PopplerRectangle *old_selection = NULL;
|
188
148
|
|
189
149
|
if (!NIL_P(rb_old_selection))
|
190
|
-
old_selection =
|
150
|
+
old_selection = RVAL2POPPLERRECTANGLE(rb_old_selection);
|
191
151
|
poppler_page_render_selection(SELF(self), RVAL2CRCONTEXT(cairo),
|
192
|
-
|
152
|
+
RVAL2POPPLERRECTANGLE(selection),
|
193
153
|
old_selection,
|
194
|
-
|
195
|
-
|
196
|
-
|
154
|
+
RVAL2POPPLERSELECTIONSTYLE(style),
|
155
|
+
RVAL2POPPLERCOLOR(glyph_color),
|
156
|
+
RVAL2POPPLERCOLOR(background_color));
|
197
157
|
return Qnil;
|
198
158
|
}
|
199
159
|
#endif
|
@@ -209,14 +169,14 @@ page_render_selection_to_pixbuf(VALUE self, VALUE scale, VALUE rotation,
|
|
209
169
|
PopplerRectangle *old_selection = NULL;
|
210
170
|
|
211
171
|
if (!NIL_P(rb_old_selection))
|
212
|
-
old_selection =
|
172
|
+
old_selection = RVAL2POPPLERRECTANGLE(rb_old_selection);
|
213
173
|
poppler_page_render_selection_to_pixbuf(SELF(self),
|
214
174
|
NUM2DBL(scale),
|
215
175
|
NUM2INT(rotation),
|
216
|
-
|
217
|
-
|
176
|
+
RVAL2GDKPIXBUF(pixbuf),
|
177
|
+
RVAL2POPPLERRECTANGLE(selection),
|
218
178
|
old_selection,
|
219
|
-
|
179
|
+
RVAL2POPPLERSELECTIONSTYLE(style),
|
220
180
|
RVAL2GDKCOLOR(glyph_color),
|
221
181
|
RVAL2GDKCOLOR(background_color));
|
222
182
|
return Qnil;
|
@@ -224,7 +184,7 @@ page_render_selection_to_pixbuf(VALUE self, VALUE scale, VALUE rotation,
|
|
224
184
|
#endif
|
225
185
|
|
226
186
|
static VALUE
|
227
|
-
|
187
|
+
rg_render_selection(int argc, VALUE *argv, VALUE self)
|
228
188
|
{
|
229
189
|
if (argc == 6) {
|
230
190
|
#ifdef RB_POPPLER_CAIRO_AVAILABLE
|
@@ -248,7 +208,7 @@ page_render_selection_generic(int argc, VALUE *argv, VALUE self)
|
|
248
208
|
}
|
249
209
|
|
250
210
|
static VALUE
|
251
|
-
|
211
|
+
rg_size(VALUE self)
|
252
212
|
{
|
253
213
|
double width, height;
|
254
214
|
poppler_page_get_size(SELF(self), &width, &height);
|
@@ -256,26 +216,26 @@ page_get_size(VALUE self)
|
|
256
216
|
}
|
257
217
|
|
258
218
|
static VALUE
|
259
|
-
|
219
|
+
rg_index(VALUE self)
|
260
220
|
{
|
261
221
|
return INT2NUM(poppler_page_get_index(SELF(self)));
|
262
222
|
}
|
263
223
|
|
264
224
|
static VALUE
|
265
|
-
|
225
|
+
rg_duration(VALUE self)
|
266
226
|
{
|
267
227
|
return rb_float_new(poppler_page_get_duration(SELF(self)));
|
268
228
|
}
|
269
229
|
|
270
230
|
static VALUE
|
271
|
-
|
231
|
+
rg_transition(VALUE self)
|
272
232
|
{
|
273
|
-
return
|
233
|
+
return POPPLERPAGETRANSITION2RVAL(poppler_page_get_transition(SELF(self)));
|
274
234
|
}
|
275
235
|
|
276
236
|
#if RB_POPPLER_CAIRO_AVAILABLE
|
277
237
|
static VALUE
|
278
|
-
|
238
|
+
rg_thumbnail(VALUE self)
|
279
239
|
{
|
280
240
|
return CRSURFACE2RVAL(poppler_page_get_thumbnail(SELF(self)));
|
281
241
|
}
|
@@ -283,14 +243,14 @@ page_get_thumbnail(VALUE self)
|
|
283
243
|
|
284
244
|
#ifdef POPPLER_WITH_GDK
|
285
245
|
static VALUE
|
286
|
-
|
246
|
+
rg_thumbnail_pixbuf(VALUE self)
|
287
247
|
{
|
288
248
|
return GOBJ2RVAL(poppler_page_get_thumbnail_pixbuf(SELF(self)));
|
289
249
|
}
|
290
250
|
#endif
|
291
251
|
|
292
252
|
static VALUE
|
293
|
-
|
253
|
+
rg_thumbnail_size(VALUE self)
|
294
254
|
{
|
295
255
|
int width, height;
|
296
256
|
|
@@ -301,14 +261,14 @@ page_get_thumbnail_size(VALUE self)
|
|
301
261
|
}
|
302
262
|
|
303
263
|
static VALUE
|
304
|
-
|
264
|
+
rg_find_text(VALUE self, VALUE text)
|
305
265
|
{
|
306
266
|
return GLIST2ARY2F(poppler_page_find_text(SELF(self), RVAL2CSTR(text)),
|
307
267
|
POPPLER_TYPE_RECTANGLE);
|
308
268
|
}
|
309
269
|
|
310
270
|
static VALUE
|
311
|
-
|
271
|
+
rg_get_text(int argc, VALUE *argv, VALUE self)
|
312
272
|
{
|
313
273
|
gchar *text;
|
314
274
|
PopplerSelectionStyle style = POPPLER_SELECTION_GLYPH;
|
@@ -326,7 +286,7 @@ page_get_text(int argc, VALUE *argv, VALUE self)
|
|
326
286
|
} else {
|
327
287
|
rb_rect = Qnil;
|
328
288
|
if (!NIL_P(arg2)) {
|
329
|
-
style =
|
289
|
+
style = RVAL2POPPLERSELECTIONSTYLE(arg2);
|
330
290
|
}
|
331
291
|
}
|
332
292
|
}
|
@@ -350,7 +310,7 @@ page_get_text(int argc, VALUE *argv, VALUE self)
|
|
350
310
|
} else {
|
351
311
|
PopplerRectangle *rect;
|
352
312
|
|
353
|
-
|
313
|
+
rect = RVAL2POPPLERRECTANGLE(rb_rect);
|
354
314
|
#if POPPLER_CHECK_VERSION(0, 15, 0)
|
355
315
|
text = poppler_page_get_selected_text(page, style, rect);
|
356
316
|
#else
|
@@ -364,24 +324,24 @@ page_get_text(int argc, VALUE *argv, VALUE self)
|
|
364
324
|
}
|
365
325
|
|
366
326
|
static VALUE
|
367
|
-
|
327
|
+
rg_get_selection_region(VALUE self, VALUE scale, VALUE style, VALUE selection)
|
368
328
|
{
|
369
329
|
return GLIST2ARY2F(poppler_page_get_selection_region(SELF(self),
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
330
|
+
NUM2DBL(scale),
|
331
|
+
RVAL2POPPLERSELECTIONSTYLE(style),
|
332
|
+
RVAL2POPPLERRECTANGLE(selection)),
|
333
|
+
POPPLER_TYPE_RECTANGLE);
|
374
334
|
}
|
375
335
|
|
376
336
|
static VALUE
|
377
|
-
|
337
|
+
rg_link_mapping(VALUE self)
|
378
338
|
{
|
379
339
|
return GLIST2ARY2F(poppler_page_get_link_mapping(SELF(self)),
|
380
340
|
POPPLER_TYPE_LINK_MAPPING);
|
381
341
|
}
|
382
342
|
|
383
343
|
static VALUE
|
384
|
-
|
344
|
+
rg_image_mapping(VALUE self)
|
385
345
|
{
|
386
346
|
VALUE mappings;
|
387
347
|
GList *image_mapping, *node;
|
@@ -389,15 +349,15 @@ page_get_image_mapping(VALUE self)
|
|
389
349
|
mappings = rb_ary_new();
|
390
350
|
image_mapping = poppler_page_get_image_mapping(SELF(self));
|
391
351
|
for (node = image_mapping; node; node = g_list_next(node)) {
|
392
|
-
|
393
|
-
|
352
|
+
PopplerImageMapping *image_mapping;
|
353
|
+
VALUE mapping;
|
394
354
|
|
395
|
-
|
396
|
-
|
355
|
+
image_mapping = node->data;
|
356
|
+
mapping = POPPLERIMAGEMAPPING2RVAL(image_mapping);
|
397
357
|
#ifdef RB_POPPLER_CAIRO_AVAILABLE
|
398
|
-
|
358
|
+
rb_iv_set(mapping, "@page", self);
|
399
359
|
#endif
|
400
|
-
|
360
|
+
rb_ary_push(mappings, mapping);
|
401
361
|
}
|
402
362
|
poppler_page_free_image_mapping(image_mapping);
|
403
363
|
|
@@ -406,377 +366,69 @@ page_get_image_mapping(VALUE self)
|
|
406
366
|
|
407
367
|
#ifdef RB_POPPLER_CAIRO_AVAILABLE
|
408
368
|
static VALUE
|
409
|
-
|
369
|
+
rg_get_image(VALUE self, VALUE image_id)
|
410
370
|
{
|
411
|
-
return CRSURFACE2RVAL(poppler_page_get_image(SELF(self), image_id));
|
412
|
-
}
|
413
|
-
|
414
|
-
static VALUE
|
415
|
-
page_get_image(VALUE self, VALUE image_id)
|
416
|
-
{
|
417
|
-
return _page_get_image(self, NUM2INT(image_id));
|
371
|
+
return CRSURFACE2RVAL(poppler_page_get_image(SELF(self), NUM2INT(image_id)));
|
418
372
|
}
|
419
373
|
#endif
|
420
374
|
|
421
375
|
static VALUE
|
422
|
-
|
376
|
+
rg_form_field_mapping(VALUE self)
|
423
377
|
{
|
424
378
|
return GLIST2ARY2F(poppler_page_get_form_field_mapping(SELF(self)),
|
425
379
|
POPPLER_TYPE_FORM_FIELD_MAPPING);
|
426
380
|
}
|
427
381
|
|
428
382
|
static VALUE
|
429
|
-
|
383
|
+
rg_annotation_mapping(VALUE self)
|
430
384
|
{
|
431
385
|
return GLIST2ARY2F(poppler_page_get_annot_mapping(SELF(self)),
|
432
386
|
POPPLER_TYPE_ANNOT_MAPPING);
|
433
387
|
}
|
434
388
|
|
435
389
|
static VALUE
|
436
|
-
|
390
|
+
rg_crop_box(VALUE self)
|
437
391
|
{
|
438
392
|
PopplerRectangle rect;
|
439
393
|
|
440
394
|
poppler_page_get_crop_box(SELF(self), &rect);
|
441
|
-
return
|
442
|
-
}
|
443
|
-
|
444
|
-
|
445
|
-
/* A rectangle on a page, with coordinates in PDF points. */
|
446
|
-
static VALUE
|
447
|
-
rectangle_initialize(VALUE self, VALUE x1, VALUE y1, VALUE x2, VALUE y2)
|
448
|
-
{
|
449
|
-
PopplerRectangle rectangle;
|
450
|
-
|
451
|
-
rectangle.x1 = NUM2DBL(x1);
|
452
|
-
rectangle.y1 = NUM2DBL(y1);
|
453
|
-
rectangle.x2 = NUM2DBL(x2);
|
454
|
-
rectangle.y2 = NUM2DBL(y2);
|
455
|
-
|
456
|
-
G_INITIALIZE(self, &rectangle);
|
457
|
-
return Qnil;
|
458
|
-
}
|
459
|
-
|
460
|
-
DEF_ACCESSOR(rectangle, x1, RVAL2POPPLER_RECT, rb_float_new, NUM2DBL)
|
461
|
-
DEF_ACCESSOR(rectangle, y1, RVAL2POPPLER_RECT, rb_float_new, NUM2DBL)
|
462
|
-
DEF_ACCESSOR(rectangle, x2, RVAL2POPPLER_RECT, rb_float_new, NUM2DBL)
|
463
|
-
DEF_ACCESSOR(rectangle, y2, RVAL2POPPLER_RECT, rb_float_new, NUM2DBL)
|
464
|
-
|
465
|
-
static VALUE
|
466
|
-
rectangle_to_a(VALUE self)
|
467
|
-
{
|
468
|
-
PopplerRectangle *rectangle = RVAL2POPPLER_RECT(self);
|
469
|
-
return rb_ary_new3(4,
|
470
|
-
rb_float_new(rectangle->x1),
|
471
|
-
rb_float_new(rectangle->y1),
|
472
|
-
rb_float_new(rectangle->x2),
|
473
|
-
rb_float_new(rectangle->y2));
|
474
|
-
}
|
475
|
-
|
476
|
-
static VALUE
|
477
|
-
rectangle_inspect(VALUE self)
|
478
|
-
{
|
479
|
-
VALUE inspected;
|
480
|
-
gchar *points;
|
481
|
-
PopplerRectangle *rectangle;
|
482
|
-
|
483
|
-
rectangle = RVAL2POPPLER_RECT(self);
|
484
|
-
inspected = rb_call_super(0, NULL);
|
485
|
-
rb_str_resize(inspected, RSTRING_LEN(inspected) - 1);
|
486
|
-
points = g_strdup_printf(": [%g, %g, %g, %g]>",
|
487
|
-
rectangle->x1, rectangle->y1,
|
488
|
-
rectangle->x2, rectangle->y2);
|
489
|
-
rb_str_cat2(inspected, points);
|
490
|
-
g_free(points);
|
491
|
-
return inspected;
|
492
|
-
}
|
493
|
-
|
494
|
-
|
495
|
-
#ifdef POPPLER_TYPE_COLOR
|
496
|
-
/* A color in RGB */
|
497
|
-
static VALUE
|
498
|
-
color_initialize(VALUE self, VALUE red, VALUE green, VALUE blue)
|
499
|
-
{
|
500
|
-
PopplerColor color;
|
501
|
-
|
502
|
-
color.red = NUM2UINT(red);
|
503
|
-
color.green = NUM2UINT(green);
|
504
|
-
color.blue = NUM2UINT(blue);
|
505
|
-
|
506
|
-
G_INITIALIZE(self, &color);
|
507
|
-
return Qnil;
|
508
|
-
}
|
509
|
-
|
510
|
-
DEF_ACCESSOR(color, red, RVAL2POPPLER_COLOR, UINT2NUM, NUM2UINT)
|
511
|
-
DEF_ACCESSOR(color, green, RVAL2POPPLER_COLOR, UINT2NUM, NUM2UINT)
|
512
|
-
DEF_ACCESSOR(color, blue, RVAL2POPPLER_COLOR, UINT2NUM, NUM2UINT)
|
513
|
-
|
514
|
-
static VALUE
|
515
|
-
color_to_a(VALUE self)
|
516
|
-
{
|
517
|
-
PopplerColor *color;
|
518
|
-
color = RVAL2POPPLER_COLOR(self);
|
519
|
-
return rb_ary_new3(3,
|
520
|
-
UINT2NUM(color->red),
|
521
|
-
UINT2NUM(color->green),
|
522
|
-
UINT2NUM(color->blue));
|
523
|
-
}
|
524
|
-
|
525
|
-
static VALUE
|
526
|
-
color_inspect(VALUE self)
|
527
|
-
{
|
528
|
-
VALUE inspected;
|
529
|
-
gchar *rgb;
|
530
|
-
PopplerColor *color;
|
531
|
-
|
532
|
-
color = RVAL2POPPLER_COLOR(self);
|
533
|
-
inspected = rb_call_super(0, NULL);
|
534
|
-
rb_str_resize(inspected, RSTRING_LEN(inspected) - 1);
|
535
|
-
rgb = g_strdup_printf(": [%u, %u, %u]>",
|
536
|
-
color->red, color->green, color->blue);
|
537
|
-
rb_str_cat2(inspected, rgb);
|
538
|
-
g_free(rgb);
|
539
|
-
return inspected;
|
540
|
-
}
|
541
|
-
#endif
|
542
|
-
|
543
|
-
|
544
|
-
/* Mapping between areas on the current page and PopplerActions */
|
545
|
-
#define RECT_ENTITY2RVAL(rect) POPPLER_RECT2RVAL(&(rect))
|
546
|
-
#define RECT_ENTITY_SET(rect, rb_rect) rectangle_set(&(rect), rb_rect)
|
547
|
-
static void
|
548
|
-
rectangle_set(PopplerRectangle *rect, VALUE rb_rect)
|
549
|
-
{
|
550
|
-
*rect = *(RVAL2POPPLER_RECT(rb_rect));
|
551
|
-
}
|
552
|
-
|
553
|
-
DEF_ACCESSOR_WITH_SETTER(link_mapping, area,
|
554
|
-
RVAL2LM, RECT_ENTITY2RVAL, RECT_ENTITY_SET)
|
555
|
-
DEF_ACCESSOR(link_mapping, action, RVAL2LM,
|
556
|
-
POPPLER_ACTION2RVAL, RVAL2POPPLER_ACTION)
|
557
|
-
|
558
|
-
|
559
|
-
/* Page Transition */
|
560
|
-
DEF_ACCESSOR(page_trans, type, RVAL2TRANS, RVAL2TT, TT2RVAL)
|
561
|
-
DEF_ACCESSOR(page_trans, alignment, RVAL2TRANS, RVAL2TA, TA2RVAL)
|
562
|
-
DEF_ACCESSOR(page_trans, direction, RVAL2TRANS, RVAL2TD, TD2RVAL)
|
563
|
-
DEF_ACCESSOR(page_trans, duration, RVAL2TRANS, NUM2INT, INT2NUM)
|
564
|
-
DEF_ACCESSOR(page_trans, angle, RVAL2TRANS, NUM2INT, INT2NUM)
|
565
|
-
DEF_ACCESSOR(page_trans, scale, RVAL2TRANS, NUM2DBL, rb_float_new)
|
566
|
-
DEF_ACCESSOR(page_trans, rectangular, RVAL2TRANS, RVAL2CBOOL, CBOOL2RVAL)
|
567
|
-
|
568
|
-
|
569
|
-
/* Mapping between areas on the current page and images */
|
570
|
-
DEF_ACCESSOR_WITH_SETTER(image_mapping, area,
|
571
|
-
RVAL2IM, RECT_ENTITY2RVAL, RECT_ENTITY_SET)
|
572
|
-
DEF_ACCESSOR(image_mapping, image_id, RVAL2IM, INT2NUM, NUM2INT)
|
573
|
-
#ifdef RB_POPPLER_CAIRO_AVAILABLE
|
574
|
-
static VALUE
|
575
|
-
image_mapping_get_image(VALUE self)
|
576
|
-
{
|
577
|
-
return _page_get_image(rb_iv_get(self, "@page"), RVAL2IM(self)->image_id);
|
578
|
-
}
|
579
|
-
#endif
|
580
|
-
|
581
|
-
|
582
|
-
/* Mapping between areas on the current page and form fields */
|
583
|
-
DEF_ACCESSOR_WITH_SETTER(form_field_mapping, area,
|
584
|
-
RVAL2FFM, RECT_ENTITY2RVAL, RECT_ENTITY_SET)
|
585
|
-
DEF_ACCESSOR(form_field_mapping, field, RVAL2FFM,
|
586
|
-
POPPLER_FORM_FIELD2RVAL, RVAL2POPPLER_FORM_FIELD)
|
587
|
-
|
588
|
-
static VALUE
|
589
|
-
annot_mapping_initialize(int argc, VALUE *argv, VALUE self)
|
590
|
-
{
|
591
|
-
VALUE area, annotation;
|
592
|
-
PopplerAnnotMapping *mapping;
|
593
|
-
|
594
|
-
rb_scan_args(argc, argv, "02", &area, &annotation);
|
595
|
-
|
596
|
-
mapping = poppler_annot_mapping_new();
|
597
|
-
mapping->area = *RVAL2POPPLER_RECT(area);
|
598
|
-
mapping->annot = RVAL2POPPLER_ANNOT(annotation);
|
599
|
-
G_INITIALIZE(self, mapping);
|
600
|
-
|
601
|
-
return Qnil;
|
602
|
-
}
|
603
|
-
|
604
|
-
DEF_ACCESSOR_WITH_SETTER(annot_mapping, area,
|
605
|
-
RVAL2AM, RECT_ENTITY2RVAL, RECT_ENTITY_SET)
|
606
|
-
DEF_READER(annot_mapping, annotation, annot, RVAL2AM, POPPLER_ANNOT2RVAL)
|
607
|
-
|
608
|
-
static VALUE
|
609
|
-
annot_mapping_set_annotation(VALUE self, VALUE annotation)
|
610
|
-
{
|
611
|
-
PopplerAnnotMapping *mapping;
|
612
|
-
|
613
|
-
mapping = RVAL2AM(self);
|
614
|
-
if (mapping->annot)
|
615
|
-
g_object_unref(mapping->annot);
|
616
|
-
|
617
|
-
mapping->annot = RVAL2POPPLER_ANNOT(annotation);
|
618
|
-
return Qnil;
|
395
|
+
return POPPLERRECTANGLE2RVAL(&rect);
|
619
396
|
}
|
620
397
|
|
621
398
|
void
|
622
399
|
Init_poppler_page(VALUE mPoppler)
|
623
400
|
{
|
624
|
-
VALUE
|
625
|
-
|
626
|
-
VALUE cAnnotationMapping;
|
627
|
-
|
628
|
-
cPage = G_DEF_CLASS(POPPLER_TYPE_PAGE, "Page", mPoppler);
|
629
|
-
cRectangle = G_DEF_CLASS(POPPLER_TYPE_RECTANGLE, "Rectangle", mPoppler);
|
630
|
-
#ifdef POPPLER_TYPE_COLOR
|
631
|
-
rb_cPopplerColor = G_DEF_CLASS(POPPLER_TYPE_COLOR, "Color", mPoppler);
|
632
|
-
#endif
|
633
|
-
cLinkMapping = G_DEF_CLASS(POPPLER_TYPE_LINK_MAPPING, "LinkMapping",
|
634
|
-
mPoppler);
|
635
|
-
cPageTransition = G_DEF_CLASS(POPPLER_TYPE_PAGE_TRANSITION,
|
636
|
-
"PageTransition", mPoppler);
|
637
|
-
cImageMapping = G_DEF_CLASS(POPPLER_TYPE_IMAGE_MAPPING,
|
638
|
-
"ImageMapping", mPoppler);
|
639
|
-
cFormFieldMapping = G_DEF_CLASS(POPPLER_TYPE_FORM_FIELD_MAPPING,
|
640
|
-
"FormFieldMapping", mPoppler);
|
641
|
-
cAnnotationMapping = G_DEF_CLASS(POPPLER_TYPE_ANNOT_MAPPING,
|
642
|
-
"AnnotationMapping", mPoppler);
|
401
|
+
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_PAGE, "Page", mPoppler);
|
402
|
+
cRectangle = rb_const_get(mPoppler, rb_intern("Rectangle"));
|
643
403
|
cPSFile = rb_const_get(mPoppler, rb_intern("PSFile"));
|
644
404
|
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
rb_define_method(cPage, "transition", page_get_transition, 0);
|
405
|
+
RG_DEF_METHOD(render, -1);
|
406
|
+
RG_DEF_METHOD(render_for_printing, -1);
|
407
|
+
RG_DEF_METHOD(size, 0);
|
408
|
+
RG_DEF_METHOD(index, 0);
|
409
|
+
RG_DEF_METHOD(duration, 0);
|
410
|
+
RG_DEF_METHOD(transition, 0);
|
652
411
|
|
653
412
|
#if RB_POPPLER_CAIRO_AVAILABLE
|
654
|
-
|
413
|
+
RG_DEF_METHOD(thumbnail, 0);
|
655
414
|
#endif
|
656
415
|
#if POPPLER_WITH_GDK
|
657
|
-
|
416
|
+
RG_DEF_METHOD(thumbnail_pixbuf, 0);
|
658
417
|
#endif
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
rb_define_method(cPage, "image_mapping", page_get_image_mapping, 0);
|
418
|
+
RG_DEF_METHOD(thumbnail_size, 0);
|
419
|
+
RG_DEF_METHOD(find_text, 1);
|
420
|
+
RG_DEF_METHOD(get_text, -1);
|
421
|
+
RG_DEF_METHOD(get_selection_region, 3);
|
422
|
+
RG_DEF_METHOD(link_mapping, 0);
|
423
|
+
RG_DEF_METHOD(image_mapping, 0);
|
666
424
|
#if RB_POPPLER_CAIRO_AVAILABLE
|
667
|
-
|
425
|
+
RG_DEF_METHOD(get_image, 1);
|
668
426
|
#endif
|
669
427
|
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
rb_define_method(cPage, "render_selection",
|
675
|
-
page_render_selection_generic, -1);
|
676
|
-
rb_define_method(cPage, "crop_box", page_get_crop_box, 0);
|
677
|
-
|
678
|
-
G_DEF_SETTERS(cPage);
|
679
|
-
|
680
|
-
/* A rectangle on a page, with coordinates in PDF points. */
|
681
|
-
rb_define_method(cRectangle, "initialize", rectangle_initialize, 4);
|
682
|
-
rb_define_method(cRectangle, "x1", rectangle_get_x1, 0);
|
683
|
-
rb_define_method(cRectangle, "y1", rectangle_get_y1, 0);
|
684
|
-
rb_define_method(cRectangle, "x2", rectangle_get_x2, 0);
|
685
|
-
rb_define_method(cRectangle, "y2", rectangle_get_y2, 0);
|
686
|
-
rb_define_method(cRectangle, "set_x1", rectangle_set_x1, 1);
|
687
|
-
rb_define_method(cRectangle, "set_y1", rectangle_set_y1, 1);
|
688
|
-
rb_define_method(cRectangle, "set_x2", rectangle_set_x2, 1);
|
689
|
-
rb_define_method(cRectangle, "set_y2", rectangle_set_y2, 1);
|
690
|
-
rb_define_method(cRectangle, "to_a", rectangle_to_a, 0);
|
691
|
-
rb_define_method(cRectangle, "inspect", rectangle_inspect, 0);
|
692
|
-
|
693
|
-
G_DEF_SETTERS(cRectangle);
|
694
|
-
|
695
|
-
#ifdef POPPLER_TYPE_COLOR
|
696
|
-
/* A color in RGB */
|
697
|
-
rb_define_method(rb_cPopplerColor, "initialize", color_initialize, 3);
|
698
|
-
rb_define_method(rb_cPopplerColor, "red", color_get_red, 0);
|
699
|
-
rb_define_method(rb_cPopplerColor, "green", color_get_green, 0);
|
700
|
-
rb_define_method(rb_cPopplerColor, "blue", color_get_blue, 0);
|
701
|
-
rb_define_method(rb_cPopplerColor, "set_red", color_set_red, 1);
|
702
|
-
rb_define_method(rb_cPopplerColor, "set_green", color_set_green, 1);
|
703
|
-
rb_define_method(rb_cPopplerColor, "set_blue", color_set_blue, 1);
|
704
|
-
rb_define_method(rb_cPopplerColor, "to_a", color_to_a, 0);
|
705
|
-
rb_define_method(rb_cPopplerColor, "inspect", color_inspect, 0);
|
706
|
-
|
707
|
-
G_DEF_SETTERS(rb_cPopplerColor);
|
708
|
-
#endif
|
709
|
-
|
710
|
-
/* Mapping between areas on the current page and PopplerActions */
|
711
|
-
rb_define_method(cLinkMapping, "area", link_mapping_get_area, 0);
|
712
|
-
rb_define_method(cLinkMapping, "action", link_mapping_get_action, 0);
|
713
|
-
|
714
|
-
rb_define_method(cLinkMapping, "set_area", link_mapping_set_area, 1);
|
715
|
-
rb_define_method(cLinkMapping, "set_action", link_mapping_set_action, 1);
|
716
|
-
|
717
|
-
G_DEF_SETTERS(cLinkMapping);
|
718
|
-
|
719
|
-
/* Page Transition */
|
720
|
-
rb_define_method(cPageTransition, "type", page_trans_get_type, 0);
|
721
|
-
rb_define_method(cPageTransition, "alignment", page_trans_get_alignment, 0);
|
722
|
-
rb_define_method(cPageTransition, "direction", page_trans_get_direction, 0);
|
723
|
-
rb_define_method(cPageTransition, "duration", page_trans_get_duration, 0);
|
724
|
-
rb_define_method(cPageTransition, "angle", page_trans_get_angle, 0);
|
725
|
-
rb_define_method(cPageTransition, "scale", page_trans_get_scale, 0);
|
726
|
-
rb_define_method(cPageTransition, "rectangular",
|
727
|
-
page_trans_get_rectangular, 0);
|
728
|
-
|
729
|
-
rb_define_method(cPageTransition, "set_type", page_trans_set_type, 1);
|
730
|
-
rb_define_method(cPageTransition, "set_alignment",
|
731
|
-
page_trans_set_alignment, 1);
|
732
|
-
rb_define_method(cPageTransition, "set_direction",
|
733
|
-
page_trans_set_direction, 1);
|
734
|
-
rb_define_method(cPageTransition, "set_duration",
|
735
|
-
page_trans_set_duration, 1);
|
736
|
-
rb_define_method(cPageTransition, "set_angle", page_trans_set_angle, 1);
|
737
|
-
rb_define_method(cPageTransition, "set_scale", page_trans_set_scale, 1);
|
738
|
-
rb_define_method(cPageTransition, "set_rectangular",
|
739
|
-
page_trans_set_rectangular, 1);
|
740
|
-
|
741
|
-
G_DEF_SETTERS(cPageTransition);
|
742
|
-
|
743
|
-
|
744
|
-
/* Mapping between areas on the current page and images */
|
745
|
-
rb_define_method(cImageMapping, "area", image_mapping_get_area, 0);
|
746
|
-
rb_define_method(cImageMapping, "image_id", image_mapping_get_image_id, 0);
|
747
|
-
#ifdef RB_POPPLER_CAIRO_AVAILABLE
|
748
|
-
rb_define_method(cImageMapping, "image", image_mapping_get_image, 0);
|
749
|
-
#endif
|
750
|
-
|
751
|
-
rb_define_method(cImageMapping, "set_area", image_mapping_set_area, 1);
|
752
|
-
rb_define_method(cImageMapping, "set_image_id",
|
753
|
-
image_mapping_set_image_id, 1);
|
754
|
-
|
755
|
-
G_DEF_SETTERS(cImageMapping);
|
756
|
-
|
757
|
-
|
758
|
-
/* Mapping between areas on the current page and form fields */
|
759
|
-
rb_define_method(cFormFieldMapping, "area", form_field_mapping_get_area, 0);
|
760
|
-
rb_define_method(cFormFieldMapping, "field", form_field_mapping_get_field,
|
761
|
-
0);
|
762
|
-
|
763
|
-
rb_define_method(cFormFieldMapping, "set_area",
|
764
|
-
form_field_mapping_set_area, 1);
|
765
|
-
rb_define_method(cFormFieldMapping, "set_field",
|
766
|
-
form_field_mapping_set_field, 1);
|
767
|
-
|
768
|
-
G_DEF_SETTERS(cFormFieldMapping);
|
769
|
-
|
770
|
-
rb_define_method(cAnnotationMapping, "initialize",
|
771
|
-
annot_mapping_initialize, -1);
|
772
|
-
|
773
|
-
rb_define_method(cAnnotationMapping, "area", annot_mapping_get_area, 0);
|
774
|
-
rb_define_method(cAnnotationMapping, "annotation",
|
775
|
-
annot_mapping_get_annotation, 0);
|
776
|
-
|
777
|
-
rb_define_method(cAnnotationMapping, "set_area", annot_mapping_set_area, 1);
|
778
|
-
rb_define_method(cAnnotationMapping, "set_annotation",
|
779
|
-
annot_mapping_set_annotation, 1);
|
428
|
+
RG_DEF_METHOD(form_field_mapping, 0);
|
429
|
+
RG_DEF_METHOD(annotation_mapping, 0);
|
430
|
+
RG_DEF_METHOD(render_selection, -1);
|
431
|
+
RG_DEF_METHOD(crop_box, 0);
|
780
432
|
|
781
|
-
G_DEF_SETTERS(
|
433
|
+
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
|
782
434
|
}
|