summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/mutool/run.html2
-rw-r--r--source/tools/murun.c14
2 files changed, 16 insertions, 0 deletions
diff --git a/docs/mutool/run.html b/docs/mutool/run.html
index 8460f2f8..0b8e86d1 100644
--- a/docs/mutool/run.html
+++ b/docs/mutool/run.html
@@ -513,6 +513,8 @@ Some dictionaries in PDF also have attached binary data. These are called stream
<dt>PDFDocument#createObject()
<dd>Allocate a new numbered object in the PDF, and return an indirect reference to it.
The object itself is uninitialized.
+<dt>PDFDocument#deleteObject(obj)
+<dd>Delete the object referred to by the indirect reference.
</dl>
<p>
diff --git a/source/tools/murun.c b/source/tools/murun.c
index b5726770..88d429cc 100644
--- a/source/tools/murun.c
+++ b/source/tools/murun.c
@@ -2341,6 +2341,19 @@ static void ffi_PDFDocument_createObject(js_State *J)
ffi_pushobj(J, ind);
}
+static void ffi_PDFDocument_deleteObject(js_State *J)
+{
+ fz_context *ctx = js_getcontext(J);
+ pdf_document *pdf = js_touserdata(J, 0, "pdf_document");
+ pdf_obj *ind = js_isuserdata(J, 1, "pdf_obj") ? js_touserdata(J, 1, "pdf_obj") : NULL;
+ int num = ind ? pdf_to_num(ctx, ind) : js_tonumber(J, 1);
+
+ fz_try(ctx)
+ pdf_delete_object(ctx, pdf, num);
+ fz_catch(ctx)
+ rethrow(J);
+}
+
static void ffi_PDFDocument_addObject(js_State *J)
{
fz_context *ctx = js_getcontext(J);
@@ -3101,6 +3114,7 @@ int murun_main(int argc, char **argv)
jsB_propfun(J, "PDFDocument.getTrailer", ffi_PDFDocument_getTrailer, 0);
jsB_propfun(J, "PDFDocument.countObjects", ffi_PDFDocument_countObjects, 0);
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.addSimpleFont", ffi_PDFDocument_addSimpleFont, 1);