diff options
Diffstat (limited to 'source/tools')
-rw-r--r-- | source/tools/murun.c | 30 | ||||
-rw-r--r-- | source/tools/pdfmerge.c | 4 |
2 files changed, 27 insertions, 7 deletions
diff --git a/source/tools/murun.c b/source/tools/murun.c index cbfd2a78..205e8f91 100644 --- a/source/tools/murun.c +++ b/source/tools/murun.c @@ -3425,11 +3425,21 @@ static void ffi_PDFDocument_graftObject(js_State *J) { fz_context *ctx = js_getcontext(J); pdf_document *dst = js_touserdata(J, 0, "pdf_document"); - pdf_document *src = js_touserdata(J, 1, "pdf_document"); - pdf_obj *obj = js_touserdata(J, 2, "pdf_obj"); - pdf_graft_map *map = js_iscoercible(J, 3) ? js_touserdata(J, 3, "pdf_graft_map") : NULL; + pdf_obj *obj = js_touserdata(J, 1, "pdf_obj"); fz_try(ctx) - obj = pdf_graft_object(ctx, dst, src, obj, map); + obj = pdf_graft_object(ctx, dst, obj); + fz_catch(ctx) + rethrow(J); + ffi_pushobj(J, obj); +} + +static void ffi_PDFGraftMap_graftObject(js_State *J) +{ + fz_context *ctx = js_getcontext(J); + pdf_graft_map *map = js_touserdata(J, 0, "pdf_graft_map"); + pdf_obj *obj = js_touserdata(J, 1, "pdf_obj"); + fz_try(ctx) + obj = pdf_graft_mapped_object(ctx, map, obj); fz_catch(ctx) rethrow(J); ffi_pushobj(J, obj); @@ -4493,10 +4503,17 @@ int murun_main(int argc, char **argv) jsB_propfun(J, "PDFDocument.newDictionary", ffi_PDFDocument_newDictionary, 1); jsB_propfun(J, "PDFDocument.newGraftMap", ffi_PDFDocument_newGraftMap, 0); - jsB_propfun(J, "PDFDocument.graftObject", ffi_PDFDocument_graftObject, 3); + jsB_propfun(J, "PDFDocument.graftObject", ffi_PDFDocument_graftObject, 1); } js_setregistry(J, "pdf_document"); + js_getregistry(J, "pdf_graft_map"); + js_newobjectx(J); + { + jsB_propfun(J, "PDFGraftMap.graftObject", ffi_PDFGraftMap_graftObject, 1); + } + js_setregistry(J, "pdf_graft_map"); + js_getregistry(J, "fz_page"); js_newobjectx(J); { @@ -4563,6 +4580,9 @@ int murun_main(int argc, char **argv) js_setregistry(J, "pdf_obj"); js_newobject(J); + { + jsB_propfun(J, "PDFGraftMap.graftObject", ffi_PDFGraftMap_graftObject, 1); + } js_setregistry(J, "pdf_graft_map"); #endif diff --git a/source/tools/pdfmerge.c b/source/tools/pdfmerge.c index 7e38f0e1..14551ecf 100644 --- a/source/tools/pdfmerge.c +++ b/source/tools/pdfmerge.c @@ -56,7 +56,7 @@ static void page_merge(int page_from, int page_to, pdf_graft_map *graft_map) { obj = pdf_dict_get(ctx, page_ref, copy_list[i]); if (obj != NULL) - pdf_dict_put_drop(ctx, page_dict, copy_list[i], pdf_graft_object(ctx, doc_des, doc_src, obj, graft_map)); + pdf_dict_put_drop(ctx, page_dict, copy_list[i], pdf_graft_mapped_object(ctx, graft_map, obj)); } /* Add the page object to the destination document. */ @@ -81,7 +81,7 @@ static void merge_range(const char *range) pdf_graft_map *graft_map; count = pdf_count_pages(ctx, doc_src); - graft_map = pdf_new_graft_map(ctx, doc_src); + graft_map = pdf_new_graft_map(ctx, doc_des); fz_try(ctx) { |