From 5bf497485a597a866bb5c149ef02f2b10b74e1ea Mon Sep 17 00:00:00 2001 From: Paul Gardiner Date: Tue, 26 Feb 2013 16:13:51 +0000 Subject: 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 --- pdf/mupdf-internal.h | 1 + pdf/pdf_annot.c | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) (limited to 'pdf') 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 @@ -740,6 +740,31 @@ pdf_delete_annot(pdf_document *doc, pdf_page *page, pdf_annot *annot) doc->dirty = 1; } +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) { -- cgit v1.2.3