| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
MODULE = PDF::Make PACKAGE = PDF::Make::Page |
|
2
|
|
|
|
|
|
|
PROTOTYPES: ENABLE |
|
3
|
|
|
|
|
|
|
|
|
4
|
|
|
|
|
|
|
int |
|
5
|
|
|
|
|
|
|
add_font(self, name, base_font) |
|
6
|
|
|
|
|
|
|
pdfmake_page_t *self |
|
7
|
|
|
|
|
|
|
const char *name |
|
8
|
|
|
|
|
|
|
const char *base_font |
|
9
|
|
|
|
|
|
|
CODE: |
|
10
|
0
|
|
|
|
|
|
RETVAL = pdfmake_page_add_font(self, name, base_font); |
|
11
|
0
|
0
|
|
|
|
|
if (RETVAL < 0) |
|
12
|
0
|
|
|
|
|
|
croak("PDF::Make::Page::add_font: failed to add font %s", name); |
|
13
|
|
|
|
|
|
|
OUTPUT: |
|
14
|
|
|
|
|
|
|
RETVAL |
|
15
|
|
|
|
|
|
|
|
|
16
|
|
|
|
|
|
|
int |
|
17
|
|
|
|
|
|
|
add_std14_font(self, name, font_id) |
|
18
|
|
|
|
|
|
|
pdfmake_page_t *self |
|
19
|
|
|
|
|
|
|
const char *name |
|
20
|
|
|
|
|
|
|
int font_id |
|
21
|
|
|
|
|
|
|
CODE: |
|
22
|
237
|
|
|
|
|
|
RETVAL = pdfmake_page_add_std14_font(self, name, (pdfmake_std14_font_t)font_id); |
|
23
|
237
|
50
|
|
|
|
|
if (RETVAL < 0) |
|
24
|
0
|
|
|
|
|
|
croak("PDF::Make::Page::add_std14_font: failed to add standard font"); |
|
25
|
|
|
|
|
|
|
OUTPUT: |
|
26
|
|
|
|
|
|
|
RETVAL |
|
27
|
|
|
|
|
|
|
|
|
28
|
|
|
|
|
|
|
void |
|
29
|
|
|
|
|
|
|
set_content(self, content) |
|
30
|
|
|
|
|
|
|
pdfmake_page_t *self |
|
31
|
|
|
|
|
|
|
SV *content |
|
32
|
|
|
|
|
|
|
PREINIT: |
|
33
|
|
|
|
|
|
|
STRLEN len; |
|
34
|
|
|
|
|
|
|
const char *data; |
|
35
|
|
|
|
|
|
|
CODE: |
|
36
|
183
|
|
|
|
|
|
data = SvPV(content, len); |
|
37
|
183
|
50
|
|
|
|
|
if (pdfmake_page_set_content(self, (const uint8_t*)data, len) != PDFMAKE_OK) |
|
38
|
0
|
|
|
|
|
|
croak("PDF::Make::Page::set_content: failed to set content"); |
|
39
|
|
|
|
|
|
|
|
|
40
|
|
|
|
|
|
|
void |
|
41
|
|
|
|
|
|
|
append_content(self, content) |
|
42
|
|
|
|
|
|
|
pdfmake_page_t *self |
|
43
|
|
|
|
|
|
|
SV *content |
|
44
|
|
|
|
|
|
|
PREINIT: |
|
45
|
|
|
|
|
|
|
STRLEN len; |
|
46
|
|
|
|
|
|
|
const char *data; |
|
47
|
|
|
|
|
|
|
CODE: |
|
48
|
0
|
|
|
|
|
|
data = SvPV(content, len); |
|
49
|
0
|
0
|
|
|
|
|
if (pdfmake_page_append_content(self, (const uint8_t*)data, len) != PDFMAKE_OK) |
|
50
|
0
|
|
|
|
|
|
croak("PDF::Make::Page::append_content: failed"); |
|
51
|
|
|
|
|
|
|
|
|
52
|
|
|
|
|
|
|
int |
|
53
|
|
|
|
|
|
|
add_image(self, name, img_obj_num) |
|
54
|
|
|
|
|
|
|
pdfmake_page_t *self |
|
55
|
|
|
|
|
|
|
const char *name |
|
56
|
|
|
|
|
|
|
UV img_obj_num |
|
57
|
|
|
|
|
|
|
CODE: |
|
58
|
17
|
|
|
|
|
|
RETVAL = pdfmake_page_add_image(self, name, (uint32_t)img_obj_num); |
|
59
|
17
|
50
|
|
|
|
|
if (RETVAL < 0) |
|
60
|
0
|
|
|
|
|
|
croak("PDF::Make::Page::add_image: failed to add image %s", name); |
|
61
|
|
|
|
|
|
|
OUTPUT: |
|
62
|
|
|
|
|
|
|
RETVAL |
|
63
|
|
|
|
|
|
|
|
|
64
|
|
|
|
|
|
|
void |
|
65
|
|
|
|
|
|
|
add_annot(self, annot_obj_num) |
|
66
|
|
|
|
|
|
|
pdfmake_page_t *self |
|
67
|
|
|
|
|
|
|
UV annot_obj_num |
|
68
|
|
|
|
|
|
|
CODE: |
|
69
|
30
|
50
|
|
|
|
|
if (pdfmake_page_add_annot(self, (uint32_t)annot_obj_num) != PDFMAKE_OK) |
|
70
|
0
|
|
|
|
|
|
croak("PDF::Make::Page::add_annot: failed to add annotation %u", (unsigned)annot_obj_num); |
|
71
|
|
|
|
|
|
|
|
|
72
|
|
|
|
|
|
|
double |
|
73
|
|
|
|
|
|
|
width(self) |
|
74
|
|
|
|
|
|
|
pdfmake_page_t *self |
|
75
|
|
|
|
|
|
|
CODE: |
|
76
|
45
|
100
|
|
|
|
|
RETVAL = self->width; |
|
77
|
|
|
|
|
|
|
OUTPUT: |
|
78
|
|
|
|
|
|
|
RETVAL |
|
79
|
|
|
|
|
|
|
|
|
80
|
|
|
|
|
|
|
double |
|
81
|
|
|
|
|
|
|
height(self) |
|
82
|
|
|
|
|
|
|
pdfmake_page_t *self |
|
83
|
|
|
|
|
|
|
CODE: |
|
84
|
45
|
100
|
|
|
|
|
RETVAL = self->height; |
|
85
|
|
|
|
|
|
|
OUTPUT: |
|
86
|
|
|
|
|
|
|
RETVAL |
|
87
|
|
|
|
|
|
|
|
|
88
|
|
|
|
|
|
|
void |
|
89
|
|
|
|
|
|
|
DESTROY(self) |
|
90
|
|
|
|
|
|
|
pdfmake_page_t *self |
|
91
|
|
|
|
|
|
|
CODE: |
|
92
|
|
|
|
|
|
|
/* Page is owned by document, freed when document is freed */ |
|
93
|
|
|
|
|
|
|
PERL_UNUSED_VAR(self); |
|
94
|
|
|
|
|
|
|
|
|
95
|
|
|
|
|
|
|
int |
|
96
|
|
|
|
|
|
|
add_ocg(self, name, ocg_obj_num) |
|
97
|
|
|
|
|
|
|
pdfmake_page_t *self |
|
98
|
|
|
|
|
|
|
const char *name |
|
99
|
|
|
|
|
|
|
UV ocg_obj_num |
|
100
|
|
|
|
|
|
|
CODE: |
|
101
|
10
|
|
|
|
|
|
RETVAL = pdfmake_page_add_ocg(self, name, (uint32_t)ocg_obj_num); |
|
102
|
10
|
50
|
|
|
|
|
if (RETVAL < 0) |
|
103
|
0
|
|
|
|
|
|
croak("PDF::Make::Page::add_ocg: failed to add OCG %s", name); |
|
104
|
|
|
|
|
|
|
OUTPUT: |
|
105
|
|
|
|
|
|
|
RETVAL |
|
106
|
|
|
|
|
|
|
|
|
107
|
|
|
|
|
|
|
BOOT: |
|
108
|
|
|
|
|
|
|
{ |
|
109
|
90
|
|
|
|
|
|
HV *stash = gv_stashpv("PDF::Make::Page", GV_ADD); |
|
110
|
90
|
50
|
|
|
|
|
PDFMAKE_REGISTER_GETTER(stash, "width", pdfmake_page_t, width, PDFMAKE_FIELD_DOUBLE); |
|
|
|
50
|
|
|
|
|
|
|
111
|
90
|
50
|
|
|
|
|
PDFMAKE_REGISTER_GETTER(stash, "height", pdfmake_page_t, height, PDFMAKE_FIELD_DOUBLE); |
|
|
|
50
|
|
|
|
|
|
|
112
|
|
|
|
|
|
|
|
|
113
|
|
|
|
|
|
|
/* Page method dispatch (returns int, not self) */ |
|
114
|
|
|
|
|
|
|
enum { POP_ADD_FONT, POP_ADD_STD14, POP_ADD_IMAGE, POP_ADD_OCG, POP_COUNT }; |
|
115
|
|
|
|
|
|
|
static pdfmake_chain_entry_t page_dispatch[POP_COUNT] = { |
|
116
|
|
|
|
|
|
|
[POP_ADD_FONT] = { (void*)pdfmake_page_add_font, 2, {PDFMAKE_ARG_STRING, PDFMAKE_ARG_STRING}, .ret_mode=1 }, |
|
117
|
|
|
|
|
|
|
[POP_ADD_STD14] = { (void*)pdfmake_page_add_std14_font, 2, {PDFMAKE_ARG_STRING, PDFMAKE_ARG_INT}, 1 }, |
|
118
|
|
|
|
|
|
|
[POP_ADD_IMAGE] = { (void*)pdfmake_page_add_image, 2, {PDFMAKE_ARG_STRING, PDFMAKE_ARG_INT}, 1 }, |
|
119
|
|
|
|
|
|
|
[POP_ADD_OCG] = { (void*)pdfmake_page_add_ocg, 2, {PDFMAKE_ARG_STRING, PDFMAKE_ARG_INT}, 1 }, |
|
120
|
|
|
|
|
|
|
}; |
|
121
|
90
|
|
|
|
|
|
int page_table_id = pdfmake_chain_table_count++; |
|
122
|
90
|
|
|
|
|
|
pdfmake_chain_tables[page_table_id] = page_dispatch; |
|
123
|
|
|
|
|
|
|
|
|
124
|
90
|
50
|
|
|
|
|
PDFMAKE_REGISTER_CHAIN(stash, "add_font", page_table_id, POP_ADD_FONT); |
|
|
|
50
|
|
|
|
|
|
|
125
|
90
|
50
|
|
|
|
|
PDFMAKE_REGISTER_CHAIN(stash, "add_std14_font", page_table_id, POP_ADD_STD14); |
|
|
|
50
|
|
|
|
|
|
|
126
|
90
|
50
|
|
|
|
|
PDFMAKE_REGISTER_CHAIN(stash, "add_image", page_table_id, POP_ADD_IMAGE); |
|
|
|
50
|
|
|
|
|
|
|
127
|
90
|
50
|
|
|
|
|
PDFMAKE_REGISTER_CHAIN(stash, "add_ocg", page_table_id, POP_ADD_OCG); |
|
|
|
50
|
|
|
|
|
|
|
128
|
|
|
|
|
|
|
} |