summaryrefslogtreecommitdiff
path: root/pdf
diff options
context:
space:
mode:
authorPaul Gardiner <paulg.artifex@glidos.net>2013-02-26 16:13:51 +0000
committerRobin Watts <robin.watts@artifex.com>2013-02-26 19:02:01 +0000
commit5bf497485a597a866bb5c149ef02f2b10b74e1ea (patch)
tree3fbe1e53eba034f300e718db52c31ad06abf5d9f /pdf
parentdf1f7eb75709a95fdf3838976ebdf49a46430c3b (diff)
downloadmupdf-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.h1
-rw-r--r--pdf/pdf_annot.c25
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;