diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2016-11-15 16:10:03 +0100 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2016-11-16 12:09:20 +0100 |
commit | fa9cd67527ab9994fec917f0f88fc16abb9926a6 (patch) | |
tree | 9f533a52350e32b0d778c158fbb4eafbe0d0d12e /source | |
parent | 5ed7e6c29233874a68733cdf075260fe261caa40 (diff) | |
download | mupdf-fa9cd67527ab9994fec917f0f88fc16abb9926a6.tar.xz |
pdf: Add 'compressed/raw' flag to pdf_add_stream.
Also expose the argument to JS and JNI.
Diffstat (limited to 'source')
-rw-r--r-- | source/pdf/pdf-page.c | 2 | ||||
-rw-r--r-- | source/pdf/pdf-xref.c | 4 | ||||
-rw-r--r-- | source/tools/murun.c | 17 |
3 files changed, 17 insertions, 6 deletions
diff --git a/source/pdf/pdf-page.c b/source/pdf/pdf-page.c index 3a26445c..2112040a 100644 --- a/source/pdf/pdf-page.c +++ b/source/pdf/pdf-page.c @@ -673,7 +673,7 @@ pdf_add_page(fz_context *ctx, pdf_document *doc, const fz_rect *mediabox, int ro pdf_dict_put_drop(ctx, page_obj, PDF_NAME_MediaBox, pdf_new_rect(ctx, doc, mediabox)); pdf_dict_put_drop(ctx, page_obj, PDF_NAME_Rotate, pdf_new_int(ctx, doc, rotate)); pdf_dict_put_drop(ctx, page_obj, PDF_NAME_Resources, pdf_add_object(ctx, doc, resources)); - pdf_dict_put_drop(ctx, page_obj, PDF_NAME_Contents, pdf_add_stream(ctx, doc, contents, NULL)); + pdf_dict_put_drop(ctx, page_obj, PDF_NAME_Contents, pdf_add_stream(ctx, doc, contents, NULL, 0)); } fz_catch(ctx) { diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c index df3c3254..ccbe4cf6 100644 --- a/source/pdf/pdf-xref.c +++ b/source/pdf/pdf-xref.c @@ -2624,7 +2624,7 @@ pdf_add_object_drop(fz_context *ctx, pdf_document *doc, pdf_obj *obj) } pdf_obj * -pdf_add_stream(fz_context *ctx, pdf_document *doc, fz_buffer *buf, pdf_obj *obj) +pdf_add_stream(fz_context *ctx, pdf_document *doc, fz_buffer *buf, pdf_obj *obj, int compressed) { pdf_obj *ind; if (!obj) @@ -2632,7 +2632,7 @@ pdf_add_stream(fz_context *ctx, pdf_document *doc, fz_buffer *buf, pdf_obj *obj) else ind = pdf_add_object(ctx, doc, obj); fz_try(ctx) - pdf_update_stream(ctx, doc, ind, buf, 0); + pdf_update_stream(ctx, doc, ind, buf, compressed); fz_catch(ctx) { pdf_drop_obj(ctx, ind); diff --git a/source/tools/murun.c b/source/tools/murun.c index 7d26c49c..8ba003b6 100644 --- a/source/tools/murun.c +++ b/source/tools/murun.c @@ -3055,7 +3055,7 @@ static void ffi_PDFDocument_addObject(js_State *J) ffi_pushobj(J, ind); } -static void ffi_PDFDocument_addStream(js_State *J) +static void ffi_PDFDocument_addStream_imp(js_State *J, int compressed) { fz_context *ctx = js_getcontext(J); pdf_document *pdf = js_touserdata(J, 0, "pdf_document"); @@ -3064,7 +3064,7 @@ static void ffi_PDFDocument_addStream(js_State *J) pdf_obj *ind; fz_try(ctx) - ind = pdf_add_stream(ctx, pdf, buf, obj); + ind = pdf_add_stream(ctx, pdf, buf, obj, compressed); fz_always(ctx) { fz_drop_buffer(ctx, buf); pdf_drop_obj(ctx, obj); @@ -3074,6 +3074,16 @@ static void ffi_PDFDocument_addStream(js_State *J) ffi_pushobj(J, ind); } +static void ffi_PDFDocument_addStream(js_State *J) +{ + ffi_PDFDocument_addStream_imp(J, 0); +} + +static void ffi_PDFDocument_addRawStream(js_State *J) +{ + ffi_PDFDocument_addStream_imp(J, 1); +} + static void ffi_PDFDocument_addImage(js_State *J) { fz_context *ctx = js_getcontext(J); @@ -4358,7 +4368,8 @@ int murun_main(int argc, char **argv) jsB_propfun(J, "PDFDocument.createObject", ffi_PDFDocument_createObject, 0); jsB_propfun(J, "PDFDocument.deleteObject", ffi_PDFDocument_deleteObject, 1); jsB_propfun(J, "PDFDocument.addObject", ffi_PDFDocument_addObject, 1); - jsB_propfun(J, "PDFDocument.addStream", ffi_PDFDocument_addStream, 1); + jsB_propfun(J, "PDFDocument.addStream", ffi_PDFDocument_addStream, 2); + jsB_propfun(J, "PDFDocument.addRawStream", ffi_PDFDocument_addRawStream, 2); jsB_propfun(J, "PDFDocument.addSimpleFont", ffi_PDFDocument_addSimpleFont, 1); jsB_propfun(J, "PDFDocument.addFont", ffi_PDFDocument_addFont, 1); jsB_propfun(J, "PDFDocument.addImage", ffi_PDFDocument_addImage, 1); |