PDF-Make
view release on metacpan or search on metacpan
xs/bridge.xs view on Meta::CPAN
int
_open(self, path, password = NULL)
SV *self
const char *path
const char *password
CODE:
pdfmake_bridge_t *bridge = BRIDGE_FROM_SV(self);
CHECK_BRIDGE(bridge);
pdfmake_err_t err = pdfmake_bridge_open(bridge, path, password);
if (err != PDFMAKE_OK) {
croak("Failed to open document: %s", pdfmake_err_string(err));
}
RETVAL = 1;
OUTPUT:
RETVAL
int
_save(self, path = NULL)
SV *self
const char *path
CODE:
pdfmake_bridge_t *bridge = BRIDGE_FROM_SV(self);
CHECK_BRIDGE(bridge);
pdfmake_err_t err = pdfmake_bridge_save(bridge, path);
if (err != PDFMAKE_OK) {
croak("Failed to save document: %s", pdfmake_err_string(err));
}
RETVAL = 1;
OUTPUT:
RETVAL
int
_close(self)
SV *self
CODE:
pdfmake_bridge_t *bridge = BRIDGE_FROM_SV(self);
CHECK_BRIDGE(bridge);
pdfmake_err_t err = pdfmake_bridge_close(bridge);
RETVAL = (err == PDFMAKE_OK) ? 1 : 0;
OUTPUT:
RETVAL
#
# Query operations
#
int
_page_count(self)
SV *self
CODE:
pdfmake_bridge_t *bridge = BRIDGE_FROM_SV(self);
CHECK_BRIDGE(bridge);
RETVAL = pdfmake_bridge_page_count(bridge);
OUTPUT:
RETVAL
void
_page_size(self, page)
SV *self
int page
PPCODE:
pdfmake_bridge_t *bridge = BRIDGE_FROM_SV(self);
CHECK_BRIDGE(bridge);
double width, height;
pdfmake_err_t err = pdfmake_bridge_page_size(bridge, page, &width, &height);
if (err != PDFMAKE_OK) {
croak("Failed to get page size: %s", pdfmake_err_string(err));
}
EXTEND(SP, 2);
PUSHs(sv_2mortal(newSVnv(width)));
PUSHs(sv_2mortal(newSVnv(height)));
#
# Page operations
#
int
_add_page(self, width, height, index = -1)
SV *self
double width
double height
int index
CODE:
pdfmake_bridge_t *bridge = BRIDGE_FROM_SV(self);
CHECK_BRIDGE(bridge);
pdfmake_err_t err = pdfmake_bridge_add_page(bridge, width, height, index);
if (err != PDFMAKE_OK) {
croak("Failed to add page: %s", pdfmake_err_string(err));
}
RETVAL = 1;
OUTPUT:
RETVAL
int
_delete_page(self, page)
SV *self
int page
CODE:
pdfmake_bridge_t *bridge = BRIDGE_FROM_SV(self);
CHECK_BRIDGE(bridge);
pdfmake_err_t err = pdfmake_bridge_delete_page(bridge, page);
if (err != PDFMAKE_OK) {
croak("Failed to delete page: %s", pdfmake_err_string(err));
}
RETVAL = 1;
OUTPUT:
RETVAL
#
# Rendering
#
SV *
_render_page(self, page, zoom = 1.0, format = 0)
SV *self
int page
double zoom
int format
CODE:
pdfmake_bridge_t *bridge = BRIDGE_FROM_SV(self);
CHECK_BRIDGE(bridge);
( run in 1.429 second using v1.01-cache-2.11-cpan-4e7a2411597 )