123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- #ifndef MUPDF_PDF_ANNOT_H
- #define MUPDF_PDF_ANNOT_H
- typedef enum
- {
- PDF_ANNOT_TEXT,
- PDF_ANNOT_LINK,
- PDF_ANNOT_FREE_TEXT,
- PDF_ANNOT_LINE,
- PDF_ANNOT_SQUARE,
- PDF_ANNOT_CIRCLE,
- PDF_ANNOT_POLYGON,
- PDF_ANNOT_POLY_LINE,
- PDF_ANNOT_HIGHLIGHT,
- PDF_ANNOT_UNDERLINE,
- PDF_ANNOT_SQUIGGLY,
- PDF_ANNOT_STRIKE_OUT,
- PDF_ANNOT_STAMP,
- PDF_ANNOT_CARET,
- PDF_ANNOT_INK,
- PDF_ANNOT_POPUP,
- PDF_ANNOT_FILE_ATTACHMENT,
- PDF_ANNOT_SOUND,
- PDF_ANNOT_MOVIE,
- PDF_ANNOT_WIDGET,
- PDF_ANNOT_SCREEN,
- PDF_ANNOT_PRINTER_MARK,
- PDF_ANNOT_TRAP_NET,
- PDF_ANNOT_WATERMARK,
- PDF_ANNOT_3D,
- PDF_ANNOT_UNKNOWN = -1
- } fz_annot_type;
- const char *pdf_string_from_annot_type(fz_annot_type type);
- int pdf_annot_type_from_string(const char *subtype);
- enum
- {
- PDF_ANNOT_IS_INVISIBLE = 1 << (1-1),
- PDF_ANNOT_IS_HIDDEN = 1 << (2-1),
- PDF_ANNOT_IS_PRINT = 1 << (3-1),
- PDF_ANNOT_IS_NO_ZOOM = 1 << (4-1),
- PDF_ANNOT_IS_NO_ROTATE = 1 << (5-1),
- PDF_ANNOT_IS_NO_VIEW = 1 << (6-1),
- PDF_ANNOT_IS_READ_ONLY = 1 << (7-1),
- PDF_ANNOT_IS_LOCKED = 1 << (8-1),
- PDF_ANNOT_IS_TOGGLE_NO_VIEW = 1 << (9-1),
- PDF_ANNOT_IS_LOCKED_CONTENTS = 1 << (10-1)
- };
- pdf_annot *pdf_first_annot(fz_context *ctx, pdf_page *page);
- pdf_annot *pdf_next_annot(fz_context *ctx, pdf_annot *annot);
- fz_rect *pdf_bound_annot(fz_context *ctx, pdf_annot *annot, fz_rect *rect);
- int pdf_annot_type(fz_context *ctx, pdf_annot *annot);
- void pdf_run_annot(fz_context *ctx, pdf_annot *annot, fz_device *dev, const fz_matrix *ctm, fz_cookie *cookie);
- struct pdf_annot_s
- {
- fz_annot super;
- pdf_page *page;
- pdf_obj *obj;
- pdf_xobject *ap;
- int ap_iteration;
- int changed;
- pdf_annot *next;
- };
- char *pdf_parse_file_spec(fz_context *ctx, pdf_document *doc, pdf_obj *file_spec, pdf_obj *dest);
- char *pdf_parse_link_dest(fz_context *ctx, pdf_document *doc, pdf_obj *obj);
- char *pdf_parse_link_action(fz_context *ctx, pdf_document *doc, pdf_obj *obj);
- pdf_obj *pdf_lookup_dest(fz_context *ctx, pdf_document *doc, pdf_obj *needle);
- pdf_obj *pdf_lookup_name(fz_context *ctx, pdf_document *doc, pdf_obj *which, pdf_obj *needle);
- pdf_obj *pdf_load_name_tree(fz_context *ctx, pdf_document *doc, pdf_obj *which);
- int pdf_resolve_link(fz_context *ctx, pdf_document *doc, const char *uri, float *xp, float *yp);
- fz_link *pdf_load_link_annots(fz_context *ctx, pdf_document *, pdf_obj *annots, const fz_matrix *page_ctm);
- void pdf_annot_transform(fz_context *ctx, pdf_annot *annot, fz_matrix *annot_ctm);
- void pdf_load_annots(fz_context *ctx, pdf_page *page, pdf_obj *annots);
- void pdf_update_annot(fz_context *ctx, pdf_annot *annot);
- void pdf_drop_annots(fz_context *ctx, pdf_annot *annot_list);
- pdf_annot *pdf_create_annot(fz_context *ctx, pdf_page *page, fz_annot_type type);
- void pdf_delete_annot(fz_context *ctx, pdf_page *page, pdf_annot *annot);
- int pdf_annot_flags(fz_context *ctx, pdf_annot *annot);
- void pdf_annot_rect(fz_context *ctx, pdf_annot *annot, fz_rect *rect);
- float pdf_annot_border(fz_context *ctx, pdf_annot *annot);
- void pdf_annot_color(fz_context *ctx, pdf_annot *annot, int *n, float color[4]);
- void pdf_annot_interior_color(fz_context *ctx, pdf_annot *annot, int *n, float color[4]);
- int pdf_annot_quad_point_count(fz_context *ctx, pdf_annot *annot);
- void pdf_annot_quad_point(fz_context *ctx, pdf_annot *annot, int i, float qp[8]);
- int pdf_annot_ink_list_count(fz_context *ctx, pdf_annot *annot);
- int pdf_annot_ink_list_stroke_count(fz_context *ctx, pdf_annot *annot, int i);
- void pdf_annot_ink_list_stroke_vertex(fz_context *ctx, pdf_annot *annot, int i, int k, float v[2]);
- void pdf_set_annot_flags(fz_context *ctx, pdf_annot *annot, int flags);
- void pdf_set_annot_rect(fz_context *ctx, pdf_annot *annot, const fz_rect *rect);
- void pdf_set_annot_border(fz_context *ctx, pdf_annot *annot, float width);
- void pdf_set_annot_color(fz_context *ctx, pdf_annot *annot, int n, const float color[4]);
- void pdf_set_annot_interior_color(fz_context *ctx, pdf_annot *annot, int n, const float color[4]);
- void pdf_set_annot_quad_points(fz_context *ctx, pdf_annot *annot, int n, const float *v);
- void pdf_set_annot_ink_list(fz_context *ctx, pdf_annot *annot, int n, const int *count, const float *v);
- void pdf_set_annot_line_ending_styles(fz_context *ctx, pdf_annot *annot, int start_style, int end_style);
- void pdf_set_annot_vertices(fz_context *ctx, pdf_annot *annot, int n, const float *v);
- void pdf_set_annot_icon_name(fz_context *ctx, pdf_annot *annot, const char *name);
- void pdf_set_annot_is_open(fz_context *ctx, pdf_annot *annot, int is_open);
- void pdf_annot_line_ending_styles(fz_context *ctx, pdf_annot *annot, int *start_style, int *end_style);
- const char *pdf_annot_icon_name(fz_context *ctx, pdf_annot *annot);
- int pdf_annot_is_open(fz_context *ctx, pdf_annot *annot);
- int pdf_annot_vertex_count(fz_context *ctx, pdf_annot *annot);
- void pdf_annot_vertex(fz_context *ctx, pdf_annot *annot, int i, float v[2]);
- void pdf_set_text_annot_position(fz_context *ctx, pdf_annot *annot, fz_point pt);
- void pdf_set_annot_contents(fz_context *ctx, pdf_annot *annot, const char *text);
- const char *pdf_annot_contents(fz_context *ctx, pdf_annot *annot);
- const char *pdf_annot_author(fz_context *ctx, pdf_annot *annot);
- const char *pdf_annot_date(fz_context *ctx, pdf_annot *annot);
- pdf_obj *pdf_annot_irt(fz_context *ctx, pdf_annot *annot);
- void pdf_set_free_text_details(fz_context *ctx, pdf_annot *annot, fz_point *pos, char *text, char *font_name, float font_size, float color[3]);
- pdf_annot *pdf_new_annot(fz_context *ctx, pdf_page *page);
- #endif
|