diff options
author | Paul Gardiner <paulg.artifex@glidos.net> | 2013-02-26 16:13:51 +0000 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2013-02-26 19:02:01 +0000 |
commit | 5bf497485a597a866bb5c149ef02f2b10b74e1ea (patch) | |
tree | 3fbe1e53eba034f300e718db52c31ad06abf5d9f /pdf | |
parent | df1f7eb75709a95fdf3838976ebdf49a46430c3b (diff) | |
download | mupdf-5bf497485a597a866bb5c149ef02f2b10b74e1ea.tar.xz |
Include required quadPoints entry in created markup annotations.
Also change the way we pass the text rectangles so that
non-axis-aligned ones can be permitted, and relocate the code that
calculates the strike-out lines from the bounding boxes
Diffstat (limited to 'pdf')
-rw-r--r-- | pdf/mupdf-internal.h | 1 | ||||
-rw-r--r-- | pdf/pdf_annot.c | 25 |
2 files changed, 26 insertions, 0 deletions
diff --git a/pdf/mupdf-internal.h b/pdf/mupdf-internal.h index 4b58f911..a4e34a8f 100644 --- a/pdf/mupdf-internal.h +++ b/pdf/mupdf-internal.h @@ -590,6 +590,7 @@ void pdf_choice_widget_set_value(pdf_document *doc, fz_widget *tw, int n, char * pdf_annot *pdf_create_annot(pdf_document *doc, pdf_page *page, fz_annot_type type); void pdf_delete_annot(pdf_document *doc, pdf_page *page, pdf_annot *annot); void pdf_set_annot_appearance(pdf_document *doc, pdf_annot *annot, fz_display_list *disp_list); +void pdf_set_markup_annot_quadpoints(pdf_document *doc, pdf_annot *annot, fz_point *qp, int n); void pdf_set_doc_event_callback(pdf_document *doc, fz_doc_event_cb *event_cb, void *data); void pdf_event_issue_alert(pdf_document *doc, fz_alert_event *event); diff --git a/pdf/pdf_annot.c b/pdf/pdf_annot.c index aa56e056..ccc7c24c 100644 --- a/pdf/pdf_annot.c +++ b/pdf/pdf_annot.c @@ -741,6 +741,31 @@ pdf_delete_annot(pdf_document *doc, pdf_page *page, pdf_annot *annot) } void +pdf_set_markup_annot_quadpoints(pdf_document *doc, pdf_annot *annot, fz_point *qp, int n) +{ + fz_context *ctx = doc->ctx; + fz_matrix ctm; + pdf_obj *arr = pdf_new_array(ctx, n*2); + int i; + + fz_invert_matrix(&ctm, &annot->page->ctm); + + pdf_dict_puts_drop(annot->obj, "QuadPoints", arr); + + for (i = 0; i < n; i++) + { + fz_point pt = qp[i]; + pdf_obj *r; + + fz_transform_point(&pt, &ctm); + r = pdf_new_real(ctx, pt.x); + pdf_array_push_drop(arr, r); + r = pdf_new_real(ctx, pt.y); + pdf_array_push_drop(arr, r); + } +} + +void pdf_set_annot_appearance(pdf_document *doc, pdf_annot *annot, fz_display_list *disp_list) { fz_context *ctx = doc->ctx; |