mupdf
Loading...
Searching...
No Matches
annot.h
Go to the documentation of this file.
1// Copyright (C) 2004-2025 Artifex Software, Inc.
2//
3// This file is part of MuPDF.
4//
5// MuPDF is free software: you can redistribute it and/or modify it under the
6// terms of the GNU Affero General Public License as published by the Free
7// Software Foundation, either version 3 of the License, or (at your option)
8// any later version.
9//
10// MuPDF is distributed in the hope that it will be useful, but WITHOUT ANY
11// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12// FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
13// details.
14//
15// You should have received a copy of the GNU Affero General Public License
16// along with MuPDF. If not, see <https://www.gnu.org/licenses/agpl-3.0.en.html>
17//
18// Alternative licensing terms are available from the licensor.
19// For commercial licensing, see <https://www.artifex.com/> or contact
20// Artifex Software, Inc., 39 Mesa Street, Suite 108A, San Francisco,
21// CA 94129, USA, for further information.
22
23#ifndef MUPDF_PDF_ANNOT_H
24#define MUPDF_PDF_ANNOT_H
25
27#include "mupdf/fitz/stream.h"
29#include "mupdf/pdf/object.h"
30#include "mupdf/pdf/page.h"
31
32typedef struct pdf_annot pdf_annot;
33
66
67/*
68 Map an annotation type to a (static) string.
69
70 The returned string must not be freed by the caller.
71*/
73
74/*
75 Map from a (non-NULL, case sensitive) string to an annotation
76 type.
77*/
79
80enum
81{
83 PDF_ANNOT_IS_HIDDEN = 1 << (2-1),
84 PDF_ANNOT_IS_PRINT = 1 << (3-1),
89 PDF_ANNOT_IS_LOCKED = 1 << (8-1),
92};
93
107
108enum
109{
113};
114
129
130const char *pdf_string_from_intent(fz_context *ctx, enum pdf_intent intent);
132enum pdf_intent pdf_intent_from_string(fz_context *ctx, const char *str);
134
135/*
136 Map from a PDF name specifying an annotation line ending
137 to an enumerated line ending value.
138*/
140
141/*
142 Map from a (non-NULL, case sensitive) C string specifying
143 an annotation line ending to an enumerated line ending value.
144*/
146
147/*
148 Map from an enumerated line ending to a pdf name object that
149 specifies it.
150*/
152
153/*
154 Map from an enumerated line ending to a C string that specifies
155 it.
156
157 The caller must not free the returned string.
158*/
160
161/*
162 Increment the reference count for an annotation.
163
164 Never throws exceptions. Returns the same pointer.
165*/
167
168/*
169 Drop the reference count for an annotation.
170
171 When the reference count reaches zero, the annotation will
172 be destroyed. Never throws exceptions.
173*/
175
176/*
177 Returns a borrowed reference to the first annotation on
178 a page, or NULL if none.
179
180 The caller should fz_keep this if it intends to hold the
181 pointer. Unless it fz_keeps it, it must not fz_drop it.
182*/
184
185/*
186 Returns a borrowed reference to the next annotation
187 on a page, or NULL if none.
188
189 The caller should fz_keep this if it intends to hold the
190 pointer. Unless it fz_keeps it, it must not fz_drop it.
191*/
193
194/*
195 Returns a borrowed reference to the object underlying
196 an annotation.
197
198 The caller should fz_keep this if it intends to hold the
199 pointer. Unless it fz_keeps it, it must not fz_drop it.
200*/
202
203/*
204 Returns a borrowed reference to the page to which
205 an annotation belongs.
206
207 The caller should fz_keep this if it intends to hold the
208 pointer. Unless it fz_keeps it, it must not fz_drop it.
209*/
211
212/*
213 Return the rectangle for an annotation on a page.
214*/
216
218
219/*
220 Interpret an annotation and render it on a device.
221
222 page: A page loaded by pdf_load_page.
223
224 annot: an annotation.
225
226 dev: Device used for rendering, obtained from fz_new_*_device.
227
228 ctm: A transformation matrix applied to the objects on the page,
229 e.g. to scale or rotate the page contents as desired.
230*/
231void pdf_run_annot(fz_context *ctx, pdf_annot *annot, fz_device *dev, fz_matrix ctm, fz_cookie *cookie);
232
233/*
234 Lookup needle in the nametree of the document given by which.
235
236 The returned reference is borrowed, and should not be dropped,
237 unless it is kept first.
238*/
240
241/*
242 Load a nametree, flattening it into a single dictionary.
243
244 The caller is responsible for pdf_dropping the returned
245 reference.
246*/
248
249/*
250 Lookup needle in the given number tree.
251
252 The returned reference is borrowed, and should not be dropped,
253 unless it is kept first.
254*/
255pdf_obj *pdf_lookup_number(fz_context *ctx, pdf_obj *root, int needle);
256
257/*
258 Perform a depth first traversal of a tree.
259
260 Start at tree, looking for children in the array named
261 kid_name at each level.
262
263 The arrive callback is called when we arrive at a node (i.e.
264 before all the children are walked), and then the leave callback
265 is called as we leave it (after all the children have been
266 walked).
267
268 names and values are (matching) null terminated arrays of
269 names and values to be carried down the tree, to implement
270 inheritance. NULL is a permissible value.
271*/
272void pdf_walk_tree(fz_context *ctx, pdf_obj *tree, pdf_obj *kid_name,
273 void (*arrive)(fz_context *, pdf_obj *, void *, pdf_obj **),
274 void (*leave)(fz_context *, pdf_obj *, void *),
275 void *arg,
276 pdf_obj **names,
277 pdf_obj **values);
278
279/*
280 Resolve a link within a document.
281*/
282int pdf_resolve_link(fz_context *ctx, pdf_document *doc, const char *uri, float *xp, float *yp);
284
285/*
286 Create an action object given a link URI. The action will
287 be a GoTo or URI action depending on whether the link URI
288 specifies a document internal or external destination.
289*/
291
292/*
293 Create a destination object given a link URI expected to adhere
294 to the Adobe specification "Parameters for Opening PDF files"
295 from the Adobe Acrobat SDK. The resulting destination object
296 will either be a PDF string, or a PDF array referring to a page
297 and suitable zoom level settings. In the latter case the page
298 can be referred to by PDF object number or by page number, this
299 is controlled by the is_remote argument. For remote destinations
300 it is not possible to refer to the page by object number, so
301 page numbers are used instead.
302*/
303pdf_obj *pdf_new_dest_from_link(fz_context *ctx, pdf_document *doc, const char *uri, int is_remote);
304
305/*
306 Create a link URI string according to the Adobe specification
307 "Parameters for Opening PDF files" from the Adobe Acrobat SDK,
308 version 8.1, which can, at the time of writing, be found here:
309
310 https://web.archive.org/web/20170921000830/http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_open_parameters.pdf
311
312 The resulting string must be freed by the caller.
313*/
315
316/*
317 Create a remote link URI string according to the Adobe specification
318 "Parameters for Opening PDF files" from the Adobe Acrobat SDK,
319 version 8.1, which can, at the time of writing, be found here:
320
321 https://web.archive.org/web/20170921000830/http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_open_parameters.pdf
322
323 The file: URI scheme is used in the resulting URI if the remote document
324 is specified by a system independent path (already taking the recommendations
325 in table 3.40 of the PDF 1.7 specification into account), and either a
326 destination name or a page number and zoom level are appended:
327 file:///path/doc.pdf#page=42&view=FitV,100
328 file:///path/doc.pdf#nameddest=G42.123456
329
330 If a URL is used to specify the remote document, then its scheme takes
331 precedence and either a destination name or a page number and zoom level
332 are appended:
333 ftp://example.com/alpha.pdf#page=42&view=Fit
334 https://example.com/bravo.pdf?query=parameter#page=42&view=Fit
335
336 The resulting string must be freed by the caller.
337*/
338char *pdf_append_named_dest_to_uri(fz_context *ctx, const char *url, const char *name);
339char *pdf_append_explicit_dest_to_uri(fz_context *ctx, const char *url, fz_link_dest dest);
340char *pdf_new_uri_from_path_and_named_dest(fz_context *ctx, const char *path, const char *name);
342
343/*
344 Create transform to fit appearance stream to annotation Rect
345*/
347
348/*
349 Create a new link object.
350*/
351fz_link *pdf_new_link(fz_context *ctx, pdf_page *page, fz_rect rect, const char *uri, pdf_obj *obj);
352
353/*
354 create a new annotation of the specified type on the
355 specified page. The returned pdf_annot structure is owned by the
356 page and does not need to be freed.
357*/
359
360/*
361 create a new link on the specified page. The returned fz_link
362 structure is owned by the page and does not need to be freed.
363*/
364fz_link *pdf_create_link(fz_context *ctx, pdf_page *page, fz_rect bbox, const char *uri);
365
366/*
367 delete an existing link from the specified page.
368*/
370
379
385
386/*
387 create a new annotation of the specified type on the
388 specified page. Populate it with sensible defaults per the type.
389
390 Currently this returns a reference that the caller owns, and
391 must drop when finished with it. Up until release 1.18, the
392 returned reference was owned by the page and did not need to
393 be freed.
394*/
396
397/*
398 Delete an annotation from the page.
399
400 This unlinks the annotation from the page structure and drops
401 the pages reference to it. Any reference held by the caller
402 will not be dropped automatically, so this can safely be used
403 on a borrowed reference.
404*/
406
407/*
408 Edit the associated Popup annotation rectangle.
409
410 Popup annotations are used to store the size and position of the
411 popup box that is used to edit the contents of the markup annotation.
412*/
415
416/*
417 Check to see if an annotation has a rect.
418*/
420
421/*
422 Check to see if an annotation has an ink list.
423*/
425
426/*
427 Check to see if an annotation has quad points data.
428*/
430
431/*
432 Check to see if an annotation has vertex data.
433*/
435
436/*
437 Check to see if an annotation has line data.
438*/
440
441/*
442 Check to see if an annotation has an interior color.
443*/
445
446/*
447 Check to see if an annotation has line ending styles.
448*/
450
451/*
452 Check to see if an annotation has quadding.
453*/
455/*
456 Check to see if an annotation has a border.
457*/
459
460/*
461 Check to see if an annotation has a border effect.
462*/
464
465/*
466 Check to see if an annotation has an icon name.
467*/
469
470/*
471 Check to see if an annotation has an open action.
472*/
474
475/*
476 Check to see if an annotation has a popup annotation.
477*/
479
480/*
481 Check to see if an annotation has an author property.
482*/
484
485/*
486 Check to see if an annotation has a subject property.
487*/
489
490/*
491 Check to see if an annotation has an in-reply-to property.
492*/
494
495/*
496 Check to see if an annotation has rich content.
497*/
499
500/*
501 Check to see if an annotation has rich default styles.
502*/
504
505/*
506 Retrieve the annotation flags.
507*/
509
510/*
511 Retrieve the annotation design rectangle in doc space.
512 Note: This is NOT the same as the bounding rectangle.
513 The design rectangle is the bounding rectangle adjusted
514 by the RD padding.
515*/
517
518/*
519 Retrieve the annotation rectangle in PDF space,
520 adjusted for the NoZoom and NoRotate flags so that
521 it indicates the Rect used to display the appearance
522 stream.
523*/
525
526/*
527 Retrieve the annotation border line width in points.
528 DEPRECATED: Use pdf_annot_border_width instead.
529*/
531
532/*
533 Retrieve the annotation border style.
534 */
536
537/*
538 Retrieve the annotation border width in points.
539 */
541
542/*
543 How many items does the annotation border dash pattern have?
544 */
546
547/*
548 How long is dash item i in the annotation border dash pattern?
549 */
551
552/*
553 Retrieve the annotation border effect.
554 */
556
557/*
558 Retrieve the annotation border effect intensity.
559 */
561
562/*
563 Retrieve the annotation opacity. (0 transparent, 1 solid).
564*/
566
567/*
568 Retrieve the annotation color.
569
570 n components, each between 0 and 1.
571 n = 1 (grey), 3 (rgb) or 4 (cmyk).
572*/
573void pdf_annot_color(fz_context *ctx, pdf_annot *annot, int *n, float color[4]);
574
575/*
576 Retrieve the annotation interior color.
577
578 n components, each between 0 and 1.
579 n = 1 (grey), 3 (rgb) or 4 (cmyk).
580*/
581void pdf_annot_interior_color(fz_context *ctx, pdf_annot *annot, int *n, float color[4]);
582
583/*
584 Retrieve the annotation quadding (justification) to use.
585 0 = Left-justified
586 1 = Centered
587 2 = Right-justified
588*/
590
591/*
592 Retrieve the annotations text language (either from the
593 annotation, or from the document).
594*/
596
597/*
598 How many quad points does an annotation have?
599*/
601
602/*
603 Get quadpoint i for an annotation.
604*/
606
607/*
608 How many strokes in the ink list for an annotation?
609*/
611
612/*
613 How many vertices in stroke i of the ink list for an annotation?
614*/
616
617/*
618 Get vertex k from stroke i of the ink list for an annotation, in
619 doc space.
620*/
622
623/*
624 Set the flags for an annotation.
625*/
626void pdf_set_annot_flags(fz_context *ctx, pdf_annot *annot, int flags);
627
628/*
629 Set the stamp appearance to a custom image.
630*/
634
635/*
636 Set the design rectangle for an annotation, in doc space.
637*/
639
640/*
641 Set the border width for an annotation, in points.
642 DEPRECATED: Use pdf_set_annot_border_width instead.
643*/
644void pdf_set_annot_border(fz_context *ctx, pdf_annot *annot, float width);
645
646/*
647 Set the border style for an annotation.
648*/
650
651/*
652 Set the border width for an annotation in points;
653*/
654void pdf_set_annot_border_width(fz_context *ctx, pdf_annot *annot, float width);
655
656/*
657 Clear the entire border dash pattern for an annotation.
658*/
660
661/*
662 Add an item to the end of the border dash pattern for an annotation.
663*/
664void pdf_add_annot_border_dash_item(fz_context *ctx, pdf_annot *annot, float length);
665
666/*
667 Set the border effect for an annotation.
668*/
670
671/*
672 Set the border effect intensity for an annotation.
673*/
675
676/*
677 Set the opacity for an annotation, between 0 (transparent) and 1
678 (solid).
679*/
680void pdf_set_annot_opacity(fz_context *ctx, pdf_annot *annot, float opacity);
681
682/*
683 Set the annotation color.
684
685 n components, each between 0 and 1.
686 n = 1 (grey), 3 (rgb) or 4 (cmyk).
687*/
688void pdf_set_annot_color(fz_context *ctx, pdf_annot *annot, int n, const float *color);
689
690/*
691 Set the annotation interior color.
692
693 n components, each between 0 and 1.
694 n = 1 (grey), 3 (rgb) or 4 (cmyk).
695*/
696void pdf_set_annot_interior_color(fz_context *ctx, pdf_annot *annot, int n, const float *color);
697
698/*
699 Set the quadding (justification) to use for the annotation.
700 0 = Left-justified
701 1 = Centered
702 2 = Right-justified
703*/
705
706/*
707 Set the language for the annotation.
708*/
710
711/*
712 Set the quad points for an annotation to those in the qv array
713 of length n.
714*/
715void pdf_set_annot_quad_points(fz_context *ctx, pdf_annot *annot, int n, const fz_quad *qv);
716
717/*
718 Clear the quadpoint data for an annotation.
719*/
721
722/*
723 Append a new quad point to the quad point data in an annotation.
724*/
726
727/*
728 Set the ink list for an annotation.
729
730 n strokes. For 0 <= i < n, stroke i has count[i] points,
731 The vertices for all the strokes are packed into a single
732 array, pointed to by v.
733*/
734void pdf_set_annot_ink_list(fz_context *ctx, pdf_annot *annot, int n, const int *count, const fz_point *v);
735
736/*
737 Clear the ink list for an annotation.
738*/
740
741/*
742 Add a new stroke (initially empty) to the ink list for an
743 annotation.
744*/
746
747/*
748 Add a new vertex to the last stroke in the ink list for an
749 annotation.
750*/
752
753/*
754 Add a new stroke to the ink list for an annotation, and
755 populate it with the n points from stroke[].
756*/
757void pdf_add_annot_ink_list(fz_context *ctx, pdf_annot *annot, int n, fz_point stroke[]);
758
759/*
760
761*/
762void pdf_set_annot_icon_name(fz_context *ctx, pdf_annot *annot, const char *name);
763void pdf_set_annot_is_open(fz_context *ctx, pdf_annot *annot, int is_open);
764
767void pdf_annot_line_ending_styles(fz_context *ctx, pdf_annot *annot, enum pdf_line_ending *start_style, enum pdf_line_ending *end_style);
770void pdf_set_annot_line_ending_styles(fz_context *ctx, pdf_annot *annot, enum pdf_line_ending start_style, enum pdf_line_ending end_style);
771
772const char *pdf_annot_icon_name(fz_context *ctx, pdf_annot *annot);
775
778
782void pdf_set_annot_line_leader(fz_context *ctx, pdf_annot *annot, float ll);
785
790
793
794void pdf_set_annot_vertices(fz_context *ctx, pdf_annot *annot, int n, const fz_point *v);
798
799const char *pdf_annot_contents(fz_context *ctx, pdf_annot *annot);
800void pdf_set_annot_contents(fz_context *ctx, pdf_annot *annot, const char *text);
801
802const char *pdf_annot_name(fz_context *ctx, pdf_annot *annot);
803void pdf_set_annot_name(fz_context *ctx, pdf_annot *annot, const char *name);
804
805const char *pdf_annot_author(fz_context *ctx, pdf_annot *annot);
806void pdf_set_annot_author(fz_context *ctx, pdf_annot *annot, const char *author);
807
808const char *pdf_annot_subject(fz_context *ctx, pdf_annot *annot);
809void pdf_set_annot_subject(fz_context *ctx, pdf_annot *annot, const char *subject);
810
812void pdf_set_annot_modification_date(fz_context *ctx, pdf_annot *annot, int64_t time);
814void pdf_set_annot_creation_date(fz_context *ctx, pdf_annot *annot, int64_t time);
815
819
823void pdf_annot_callout_line(fz_context *ctx, pdf_annot *annot, fz_point callout[3], int *n);
824void pdf_set_annot_callout_line(fz_context *ctx, pdf_annot *annot, fz_point callout[3], int n);
827
829void pdf_parse_default_appearance_unmapped(fz_context *ctx, const char *da, char *font_name, int font_name_len, float *size, int *n, float color[4]);
830void pdf_parse_default_appearance(fz_context *ctx, const char *da, const char **font, float *size, int *n, float color[4]);
831void pdf_print_default_appearance(fz_context *ctx, char *buf, int nbuf, const char *font, float size, int n, const float *color);
832void pdf_annot_default_appearance_unmapped(fz_context *ctx, pdf_annot *annot, char *font_name, int font_name_len, float *size, int *n, float color[4]);
833void pdf_annot_default_appearance(fz_context *ctx, pdf_annot *annot, const char **font, float *size, int *n, float color[4]);
834void pdf_set_annot_default_appearance(fz_context *ctx, pdf_annot *annot, const char *font, float size, int n, const float *color);
835
837void pdf_set_annot_rich_contents(fz_context *ctx, pdf_annot *annot, const char *plain, const char *rich);
839void pdf_set_annot_rich_defaults(fz_context *ctx, pdf_annot *annot, const char *style);
840
841/*
842 * Request that an appearance stream should be generated for an annotation if none is present.
843 * It will be created in future calls to pdf_update_annot or pdf_update_page.
844 */
846
847/*
848 * Request that an appearance stream should be re-generated for an annotation
849 * the next time pdf_annot_update or pdf_page_update is called.
850 * You usually won't need to call this, because changing any annotation attributes
851 * via the pdf_annot functions will do so automatically.
852 * It will be created in future calls to pdf_update_annot or pdf_update_page.
853 */
855
859
862const char *pdf_annot_field_label(fz_context *ctx, pdf_annot *widget);
863
864int pdf_set_annot_field_value(fz_context *ctx, pdf_document *doc, pdf_annot *widget, const char *text, int ignore_trigger_events);
865
866/*
867 Recreate the appearance stream for an annotation, if necessary.
868*/
869fz_text *pdf_layout_fit_text(fz_context *ctx, fz_font *font, fz_text_language lang, const char *str, fz_rect bounds);
870
871/*
872 Start/Stop using the annotation-local xref. This allows us to
873 generate appearance streams that don't actually hit the underlying
874 document.
875*/
880
881/*
882 Regenerate any appearance streams that are out of date and check for
883 cases where a different appearance stream should be selected because of
884 state changes.
885
886 Note that a call to pdf_pass_event for one page may lead to changes on
887 any other, so an app should call pdf_update_annot for every annotation
888 it currently displays. Also it is important that the pdf_annot object
889 is the one used to last render the annotation. If instead the app were
890 to drop the page or annotations and reload them then a call to
891 pdf_update_annot would not reliably be able to report all changed
892 annotations.
893
894 Returns true if the annotation appearance has changed since the last time
895 pdf_update_annot was called or the annotation was first loaded.
896*/
898
899/*
900 Recalculate form fields if necessary.
901
902 Loop through all annotations on the page and update them. Return true
903 if any of them were changed (by either event or javascript actions, or
904 by annotation editing) and need re-rendering.
905
906 If you need more granularity, loop through the annotations and call
907 pdf_update_annot for each one to detect changes on a per-annotation
908 basis.
909*/
911
912/*
913 Loop over all currently open pages and call pdf_update_page on them.
914*/
916
917/*
918 Update internal state appropriate for editing this field. When editing
919 is true, updating the text of the text widget will not have any
920 side-effects such as changing other widgets or running javascript.
921 This state is intended for the period when a text widget is having
922 characters typed into it. The state should be reverted at the end of
923 the edit sequence and the text newly updated.
924*/
925void pdf_set_widget_editing_state(fz_context *ctx, pdf_annot *widget, int editing);
926
928
929/*
930 Toggle the state of a specified annotation. Applies only to check-box
931 and radio-button widgets.
932*/
934
936
937/*
938 Render an annotation suitable for blending on top of the opaque
939 pixmap returned by fz_new_pixmap_from_page_contents.
940*/
943
945
946/*
947 Parameters for and embedded file. Obtained through
948 pdf_get_filespec_params(). The creation and
949 modification date fields are < 0 if unknown.
950*/
951typedef struct pdf_filespec_params {
952 const char *filename;
953 const char *mimetype;
954 int size;
955 int64_t created;
956 int64_t modified;
958
959/*
960 Check if pdf object is a file specification.
961*/
963
964/*
965 Check if pdf object is a file specification where the data
966 is embedded within the PDF file.
967*/
969
970/*
971 Add an embedded file to the document. This can later
972 be passed e.g. to pdf_annot_set_filespec(). If unknown,
973 supply NULL for MIME type and -1 for the date arguments.
974 If a checksum is added it can later be verified by calling
975 pdf_verify_embedded_file_checksum().
976*/
977pdf_obj *pdf_add_embedded_file(fz_context *ctx, pdf_document *doc, const char *filename, const char *mimetype, fz_buffer *contents, int64_t created, int64_t modified, int add_checksum);
978
979/*
980 Obtain parameters for a filespec: name, size,
981 creation and modification dates and MIME type.
982*/
984
985/*
986 Load embedded file contents in a buffer which
987 needs to be dropped by the called after use.
988*/
990
991/*
992 Verifies the embedded file checksum. Returns 1
993 if the verification is successful or there is no
994 checksum to be verified, or 0 if verification fails.
995*/
997
999fz_link *pdf_load_link_annots(fz_context *ctx, pdf_document *, pdf_page *, pdf_obj *annots, int pagenum, fz_matrix page_ctm);
1000
1001void pdf_annot_MK_BG(fz_context *ctx, pdf_annot *annot, int *n, float color[4]);
1002void pdf_annot_MK_BC(fz_context *ctx, pdf_annot *annot, int *n, float color[4]);
1003int pdf_annot_MK_BG_rgb(fz_context *ctx, pdf_annot *annot, float rgb[3]);
1004int pdf_annot_MK_BC_rgb(fz_context *ctx, pdf_annot *annot, float rgb[3]);
1005
1007
1009void pdf_set_annot_active(fz_context *ctx, pdf_annot *annot, int active);
1011void pdf_set_annot_hot(fz_context *ctx, pdf_annot *annot, int hot);
1012
1013void pdf_set_annot_appearance(fz_context *ctx, pdf_annot *annot, const char *appearance, const char *state, fz_matrix ctm, fz_rect bbox, pdf_obj *res, fz_buffer *contents);
1014void pdf_set_annot_appearance_from_display_list(fz_context *ctx, pdf_annot *annot, const char *appearance, const char *state, fz_matrix ctm, fz_display_list *list);
1015
1016/*
1017 Check to see if an annotation has a file specification.
1018*/
1020
1021/*
1022 Retrieve the file specification for the given annotation.
1023*/
1025
1026/*
1027 Set the annotation file specification.
1028*/
1030
1031/*
1032 Get/set a hidden flag preventing the annotation from being
1033 rendered when it is being edited. This flag is independent
1034 of the hidden flag in the PDF annotation object described in the PDF specification.
1035*/
1038
1039/*
1040 * Apply Redaction annotation by redacting page underneath and removing the annotation.
1041 */
1043
1044#endif
fz_layout_block * pdf_layout_text_widget(fz_context *ctx, pdf_annot *annot)
pdf_obj * pdf_lookup_name(fz_context *ctx, pdf_document *doc, pdf_obj *which, pdf_obj *needle)
char * pdf_new_uri_from_path_and_named_dest(fz_context *ctx, const char *path, const char *name)
const char * pdf_annot_icon_name(fz_context *ctx, pdf_annot *annot)
void pdf_clear_annot_quad_points(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_interior_color(fz_context *ctx, pdf_annot *annot, int n, const float *color)
int pdf_annot_has_filespec(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_rich_contents(fz_context *ctx, pdf_annot *annot, const char *plain, const char *rich)
enum pdf_line_ending pdf_line_ending_from_string(fz_context *ctx, const char *end)
pdf_annot * pdf_create_annot_raw(fz_context *ctx, pdf_page *page, enum pdf_annot_type type)
void pdf_set_annot_subject(fz_context *ctx, pdf_annot *annot, const char *subject)
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)
int pdf_annot_has_callout(fz_context *ctx, pdf_annot *annot)
void pdf_add_annot_quad_point(fz_context *ctx, pdf_annot *annot, fz_quad quad)
int pdf_resolve_link(fz_context *ctx, pdf_document *doc, const char *uri, float *xp, float *yp)
fz_rect pdf_annot_rect(fz_context *ctx, pdf_annot *annot)
enum pdf_line_ending pdf_annot_line_end_style(fz_context *ctx, pdf_annot *annot)
const char * pdf_annot_rich_contents(fz_context *ctx, pdf_annot *annot)
pdf_intent
Definition annot.h:116
@ PDF_ANNOT_IT_POLYGON_CLOUD
Definition annot.h:123
@ PDF_ANNOT_IT_LINE_ARROW
Definition annot.h:120
@ PDF_ANNOT_IT_STAMP_IMAGE
Definition annot.h:125
@ PDF_ANNOT_IT_POLYGON_DIMENSION
Definition annot.h:124
@ PDF_ANNOT_IT_FREETEXT_TYPEWRITER
Definition annot.h:119
@ PDF_ANNOT_IT_DEFAULT
Definition annot.h:117
@ PDF_ANNOT_IT_POLYLINE_DIMENSION
Definition annot.h:122
@ PDF_ANNOT_IT_FREETEXT_CALLOUT
Definition annot.h:118
@ PDF_ANNOT_IT_UNKNOWN
Definition annot.h:127
@ PDF_ANNOT_IT_STAMP_SNAPSHOT
Definition annot.h:126
@ PDF_ANNOT_IT_LINE_DIMENSION
Definition annot.h:121
void pdf_set_annot_contents(fz_context *ctx, pdf_annot *annot, const char *text)
fz_text_language pdf_annot_language(fz_context *ctx, pdf_annot *annot)
int pdf_annot_has_line(fz_context *ctx, pdf_annot *annot)
struct pdf_annot pdf_annot
Definition annot.h:32
int pdf_annot_line_caption(fz_context *ctx, pdf_annot *annot)
void pdf_clear_annot_vertices(fz_context *ctx, pdf_annot *annot)
void pdf_print_default_appearance(fz_context *ctx, char *buf, int nbuf, const char *font, float size, int n, const float *color)
void pdf_set_annot_border_style(fz_context *ctx, pdf_annot *annot, enum pdf_border_style style)
void pdf_get_filespec_params(fz_context *ctx, pdf_obj *fs, pdf_filespec_params *out)
void pdf_add_annot_ink_list_stroke_vertex(fz_context *ctx, pdf_annot *annot, fz_point p)
pdf_obj * pdf_lookup_dest(fz_context *ctx, pdf_document *doc, pdf_obj *needle)
void pdf_set_annot_rect(fz_context *ctx, pdf_annot *annot, fz_rect rect)
pdf_obj * pdf_load_name_tree(fz_context *ctx, pdf_document *doc, pdf_obj *which)
void pdf_parse_default_appearance_unmapped(fz_context *ctx, const char *da, char *font_name, int font_name_len, float *size, int *n, float color[4])
fz_rect pdf_bound_annot(fz_context *ctx, pdf_annot *annot)
void pdf_annot_default_appearance_unmapped(fz_context *ctx, pdf_annot *annot, char *font_name, int font_name_len, float *size, int *n, float color[4])
void pdf_set_annot_resynthesised(fz_context *ctx, pdf_annot *annot)
int pdf_annot_active(fz_context *ctx, pdf_annot *annot)
char * pdf_append_explicit_dest_to_uri(fz_context *ctx, const char *url, fz_link_dest dest)
void pdf_set_annot_ink_list(fz_context *ctx, pdf_annot *annot, int n, const int *count, const fz_point *v)
float pdf_annot_opacity(fz_context *ctx, pdf_annot *annot)
void pdf_delete_link(fz_context *ctx, pdf_page *page, fz_link *link)
void pdf_dirty_annot(fz_context *ctx, pdf_annot *annot)
void pdf_add_annot_border_dash_item(fz_context *ctx, pdf_annot *annot, float length)
int pdf_annot_has_rich_contents(fz_context *ctx, pdf_annot *annot)
@ PDF_ANNOT_IS_LOCKED
Definition annot.h:89
@ PDF_ANNOT_IS_NO_VIEW
Definition annot.h:87
@ PDF_ANNOT_IS_INVISIBLE
Definition annot.h:82
@ PDF_ANNOT_IS_NO_ROTATE
Definition annot.h:86
@ PDF_ANNOT_IS_TOGGLE_NO_VIEW
Definition annot.h:90
@ PDF_ANNOT_IS_NO_ZOOM
Definition annot.h:85
@ PDF_ANNOT_IS_PRINT
Definition annot.h:84
@ PDF_ANNOT_IS_HIDDEN
Definition annot.h:83
@ PDF_ANNOT_IS_LOCKED_CONTENTS
Definition annot.h:91
@ PDF_ANNOT_IS_READ_ONLY
Definition annot.h:88
int pdf_annot_has_ink_list(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_opacity(fz_context *ctx, pdf_annot *annot, float opacity)
fz_link * pdf_load_link_annots(fz_context *ctx, pdf_document *, pdf_page *, pdf_obj *annots, int pagenum, fz_matrix page_ctm)
enum pdf_intent pdf_intent_from_name(fz_context *ctx, pdf_obj *obj)
int pdf_annot_quad_point_count(fz_context *ctx, pdf_annot *annot)
int pdf_annot_has_vertices(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_line(fz_context *ctx, pdf_annot *annot, fz_point a, fz_point b)
int pdf_annot_has_default_appearance(fz_context *ctx, pdf_annot *annot)
pdf_obj * pdf_annot_obj(fz_context *ctx, pdf_annot *annot)
int pdf_set_annot_field_value(fz_context *ctx, pdf_document *doc, pdf_annot *widget, const char *text, int ignore_trigger_events)
void pdf_annot_line_ending_styles(fz_context *ctx, pdf_annot *annot, enum pdf_line_ending *start_style, enum pdf_line_ending *end_style)
void pdf_set_annot_icon_name(fz_context *ctx, pdf_annot *annot, const char *name)
void pdf_set_annot_line_start_style(fz_context *ctx, pdf_annot *annot, enum pdf_line_ending s)
int pdf_annot_hidden_for_editing(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_border_effect(fz_context *ctx, pdf_annot *annot, enum pdf_border_effect effect)
void pdf_set_annot_vertices(fz_context *ctx, pdf_annot *annot, int n, const fz_point *v)
pdf_annot_type
Definition annot.h:35
@ PDF_ANNOT_3D
Definition annot.h:62
@ PDF_ANNOT_CARET
Definition annot.h:50
@ PDF_ANNOT_LINK
Definition annot.h:37
@ PDF_ANNOT_PROJECTION
Definition annot.h:63
@ PDF_ANNOT_STRIKE_OUT
Definition annot.h:47
@ PDF_ANNOT_SCREEN
Definition annot.h:58
@ PDF_ANNOT_LINE
Definition annot.h:39
@ PDF_ANNOT_SQUIGGLY
Definition annot.h:46
@ PDF_ANNOT_FREE_TEXT
Definition annot.h:38
@ PDF_ANNOT_POLY_LINE
Definition annot.h:43
@ PDF_ANNOT_TRAP_NET
Definition annot.h:60
@ PDF_ANNOT_CIRCLE
Definition annot.h:41
@ PDF_ANNOT_HIGHLIGHT
Definition annot.h:44
@ PDF_ANNOT_POLYGON
Definition annot.h:42
@ PDF_ANNOT_TEXT
Definition annot.h:36
@ PDF_ANNOT_UNDERLINE
Definition annot.h:45
@ PDF_ANNOT_POPUP
Definition annot.h:52
@ PDF_ANNOT_STAMP
Definition annot.h:49
@ PDF_ANNOT_RICH_MEDIA
Definition annot.h:56
@ PDF_ANNOT_PRINTER_MARK
Definition annot.h:59
@ PDF_ANNOT_WATERMARK
Definition annot.h:61
@ PDF_ANNOT_REDACT
Definition annot.h:48
@ PDF_ANNOT_SQUARE
Definition annot.h:40
@ PDF_ANNOT_UNKNOWN
Definition annot.h:64
@ PDF_ANNOT_SOUND
Definition annot.h:54
@ PDF_ANNOT_FILE_ATTACHMENT
Definition annot.h:53
@ PDF_ANNOT_INK
Definition annot.h:51
@ PDF_ANNOT_MOVIE
Definition annot.h:55
@ PDF_ANNOT_WIDGET
Definition annot.h:57
void pdf_set_annot_active(fz_context *ctx, pdf_annot *annot, int active)
int pdf_annot_has_icon_name(fz_context *ctx, pdf_annot *annot)
fz_buffer * pdf_load_embedded_file_contents(fz_context *ctx, pdf_obj *fs)
char * pdf_new_uri_from_path_and_explicit_dest(fz_context *ctx, const char *path, fz_link_dest dest)
int pdf_annot_has_quadding(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_border_effect_intensity(fz_context *ctx, pdf_annot *annot, float intensity)
const char * pdf_annot_field_label(fz_context *ctx, pdf_annot *widget)
float pdf_annot_line_leader_extension(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_author(fz_context *ctx, pdf_annot *annot, const char *author)
const char * pdf_annot_name(fz_context *ctx, pdf_annot *annot)
pdf_line_ending
Definition annot.h:95
@ PDF_ANNOT_LE_BUTT
Definition annot.h:102
@ PDF_ANNOT_LE_DIAMOND
Definition annot.h:99
@ PDF_ANNOT_LE_CLOSED_ARROW
Definition annot.h:101
@ PDF_ANNOT_LE_R_CLOSED_ARROW
Definition annot.h:104
@ PDF_ANNOT_LE_R_OPEN_ARROW
Definition annot.h:103
@ PDF_ANNOT_LE_CIRCLE
Definition annot.h:98
@ PDF_ANNOT_LE_SLASH
Definition annot.h:105
@ PDF_ANNOT_LE_NONE
Definition annot.h:96
@ PDF_ANNOT_LE_SQUARE
Definition annot.h:97
@ PDF_ANNOT_LE_OPEN_ARROW
Definition annot.h:100
void pdf_walk_tree(fz_context *ctx, pdf_obj *tree, pdf_obj *kid_name, void(*arrive)(fz_context *, pdf_obj *, void *, pdf_obj **), void(*leave)(fz_context *, pdf_obj *, void *), void *arg, pdf_obj **names, pdf_obj **values)
void pdf_annot_line(fz_context *ctx, pdf_annot *annot, fz_point *a, fz_point *b)
pdf_obj * pdf_name_from_intent(fz_context *ctx, enum pdf_intent intent)
fz_pixmap * pdf_new_pixmap_from_annot(fz_context *ctx, pdf_annot *annot, fz_matrix ctm, fz_colorspace *cs, fz_separations *seps, int alpha)
void pdf_set_annot_is_open(fz_context *ctx, pdf_annot *annot, int is_open)
void pdf_set_annot_callout_style(fz_context *ctx, pdf_annot *annot, enum pdf_line_ending style)
int pdf_annot_has_in_reply_to(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_callout_point(fz_context *ctx, pdf_annot *annot, fz_point p)
void pdf_set_annot_vertex(fz_context *ctx, pdf_annot *annot, int i, fz_point p)
void pdf_set_annot_intent(fz_context *ctx, pdf_annot *annot, enum pdf_intent it)
int pdf_annot_quadding(fz_context *ctx, pdf_annot *annot)
float pdf_annot_line_leader(fz_context *ctx, pdf_annot *annot)
int pdf_apply_redaction(fz_context *ctx, pdf_annot *annot, pdf_redact_options *opts)
void pdf_annot_color(fz_context *ctx, pdf_annot *annot, int *n, float color[4])
void pdf_set_annot_line_leader_extension(fz_context *ctx, pdf_annot *annot, float lle)
fz_link_dest pdf_resolve_link_dest(fz_context *ctx, pdf_document *doc, const char *uri)
char * pdf_new_uri_from_explicit_dest(fz_context *ctx, fz_link_dest dest)
int pdf_annot_hot(fz_context *ctx, pdf_annot *annot)
int pdf_annot_has_rect(fz_context *ctx, pdf_annot *annot)
pdf_annot * pdf_first_annot(fz_context *ctx, pdf_page *page)
const char * pdf_string_from_line_ending(fz_context *ctx, enum pdf_line_ending end)
pdf_obj * pdf_new_action_from_link(fz_context *ctx, pdf_document *doc, const char *uri)
void pdf_set_annot_appearance_from_display_list(fz_context *ctx, pdf_annot *annot, const char *appearance, const char *state, fz_matrix ctm, fz_display_list *list)
void pdf_clear_annot_ink_list(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_flags(fz_context *ctx, pdf_annot *annot, int flags)
float pdf_annot_border_dash_item(fz_context *ctx, pdf_annot *annot, int i)
const char * pdf_annot_subject(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_border_width(fz_context *ctx, pdf_annot *annot, float width)
void pdf_annot_pop_local_xref(fz_context *ctx, pdf_annot *annot)
const char * pdf_annot_author(fz_context *ctx, pdf_annot *annot)
int pdf_annot_has_subject(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_quadding(fz_context *ctx, pdf_annot *annot, int q)
pdf_obj * pdf_annot_ap(fz_context *ctx, pdf_annot *annot)
fz_point pdf_annot_callout_point(fz_context *ctx, pdf_annot *annot)
int pdf_annot_MK_BC_rgb(fz_context *ctx, pdf_annot *annot, float rgb[3])
enum pdf_intent pdf_annot_intent(fz_context *ctx, pdf_annot *annot)
void pdf_parse_default_appearance(fz_context *ctx, const char *da, const char **font, float *size, int *n, float color[4])
int pdf_toggle_widget(fz_context *ctx, pdf_annot *widget)
void pdf_annot_ensure_local_xref(fz_context *ctx, pdf_annot *annot)
void pdf_annot_pop_and_discard_local_xref(fz_context *ctx, pdf_annot *annot)
int pdf_annot_border_dash_count(fz_context *ctx, pdf_annot *annot)
pdf_obj * pdf_add_embedded_file(fz_context *ctx, pdf_document *doc, const char *filename, const char *mimetype, fz_buffer *contents, int64_t created, int64_t modified, int add_checksum)
void pdf_set_annot_line_caption(fz_context *ctx, pdf_annot *annot, int cap)
const char * pdf_annot_field_value(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_color(fz_context *ctx, pdf_annot *annot, int n, const float *color)
void pdf_drop_annot(fz_context *ctx, pdf_annot *annot)
const char * pdf_string_from_annot_type(fz_context *ctx, enum pdf_annot_type type)
pdf_annot * pdf_next_annot(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_line_leader_offset(fz_context *ctx, pdf_annot *annot, float llo)
void pdf_annot_request_resynthesis(fz_context *ctx, pdf_annot *annot)
void pdf_annot_MK_BC(fz_context *ctx, pdf_annot *annot, int *n, float color[4])
int pdf_annot_has_quad_points(fz_context *ctx, pdf_annot *annot)
fz_stext_page * pdf_new_stext_page_from_annot(fz_context *ctx, pdf_annot *annot, const fz_stext_options *options)
fz_display_list * pdf_new_display_list_from_annot(fz_context *ctx, pdf_annot *annot)
int pdf_annot_has_open(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_language(fz_context *ctx, pdf_annot *annot, fz_text_language lang)
fz_point pdf_annot_line_caption_offset(fz_context *ctx, pdf_annot *annot)
int pdf_annot_has_author(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_appearance(fz_context *ctx, pdf_annot *annot, const char *appearance, const char *state, fz_matrix ctm, fz_rect bbox, pdf_obj *res, fz_buffer *contents)
fz_matrix pdf_annot_transform(fz_context *ctx, pdf_annot *annot)
enum pdf_intent pdf_intent_from_string(fz_context *ctx, const char *str)
enum pdf_border_style pdf_annot_border_style(fz_context *ctx, pdf_annot *annot)
int pdf_annot_flags(fz_context *ctx, pdf_annot *annot)
void pdf_annot_interior_color(fz_context *ctx, pdf_annot *annot, int *n, float color[4])
void pdf_set_annot_stamp_image_obj(fz_context *ctx, pdf_annot *annot, pdf_obj *ref)
pdf_obj * pdf_lookup_number(fz_context *ctx, pdf_obj *root, int needle)
int pdf_is_embedded_file(fz_context *ctx, pdf_obj *fs)
float pdf_annot_border(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_hot(fz_context *ctx, pdf_annot *annot, int hot)
pdf_annot * pdf_create_annot(fz_context *ctx, pdf_page *page, enum pdf_annot_type type)
void pdf_annot_default_appearance(fz_context *ctx, pdf_annot *annot, const char **font, float *size, int *n, float color[4])
void pdf_set_widget_editing_state(fz_context *ctx, pdf_annot *widget, int editing)
void pdf_set_annot_quad_points(fz_context *ctx, pdf_annot *annot, int n, const fz_quad *qv)
void pdf_annot_push_local_xref(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_popup(fz_context *ctx, pdf_annot *annot, fz_rect rect)
fz_rect pdf_annot_popup(fz_context *ctx, pdf_annot *annot)
int pdf_annot_vertex_count(fz_context *ctx, pdf_annot *annot)
pdf_obj * pdf_new_dest_from_link(fz_context *ctx, pdf_document *doc, const char *uri, int is_remote)
int pdf_annot_has_border_effect(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_line_ending_styles(fz_context *ctx, pdf_annot *annot, enum pdf_line_ending start_style, enum pdf_line_ending end_style)
pdf_border_style
Definition annot.h:372
@ PDF_BORDER_STYLE_SOLID
Definition annot.h:373
@ PDF_BORDER_STYLE_DASHED
Definition annot.h:374
@ PDF_BORDER_STYLE_INSET
Definition annot.h:376
@ PDF_BORDER_STYLE_UNDERLINE
Definition annot.h:377
@ PDF_BORDER_STYLE_BEVELED
Definition annot.h:375
float pdf_annot_line_leader_offset(fz_context *ctx, pdf_annot *annot)
pdf_page * pdf_annot_page(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_line_end_style(fz_context *ctx, pdf_annot *annot, enum pdf_line_ending e)
int pdf_annot_has_border(fz_context *ctx, pdf_annot *annot)
fz_quad pdf_annot_quad_point(fz_context *ctx, pdf_annot *annot, int i)
void pdf_annot_callout_line(fz_context *ctx, pdf_annot *annot, fz_point callout[3], int *n)
int pdf_annot_field_flags(fz_context *ctx, pdf_annot *annot)
int pdf_annot_has_popup(fz_context *ctx, pdf_annot *annot)
int pdf_update_open_pages(fz_context *ctx, pdf_document *doc)
int pdf_update_annot(fz_context *ctx, pdf_annot *annot)
@ PDF_ANNOT_Q_LEFT
Definition annot.h:110
@ PDF_ANNOT_Q_CENTER
Definition annot.h:111
@ PDF_ANNOT_Q_RIGHT
Definition annot.h:112
enum pdf_border_effect pdf_annot_border_effect(fz_context *ctx, pdf_annot *annot)
int pdf_annot_has_line_ending_styles(fz_context *ctx, pdf_annot *annot)
enum pdf_line_ending pdf_line_ending_from_name(fz_context *ctx, pdf_obj *end)
void pdf_delete_annot(fz_context *ctx, pdf_page *page, pdf_annot *annot)
void pdf_set_annot_stamp_image(fz_context *ctx, pdf_annot *annot, fz_image *image)
void pdf_add_annot_vertex(fz_context *ctx, pdf_annot *annot, fz_point p)
void pdf_annot_MK_BG(fz_context *ctx, pdf_annot *annot, int *n, float color[4])
int pdf_annot_needs_resynthesis(fz_context *ctx, pdf_annot *annot)
void pdf_add_annot_ink_list(fz_context *ctx, pdf_annot *annot, int n, fz_point stroke[])
pdf_border_effect
Definition annot.h:381
@ PDF_BORDER_EFFECT_CLOUDY
Definition annot.h:383
@ PDF_BORDER_EFFECT_NONE
Definition annot.h:382
enum pdf_line_ending pdf_annot_callout_style(fz_context *ctx, pdf_annot *annot)
pdf_obj * pdf_annot_stamp_image_obj(fz_context *ctx, pdf_annot *annot)
fz_link * pdf_create_link(fz_context *ctx, pdf_page *page, fz_rect bbox, const char *uri)
float pdf_annot_border_width(fz_context *ctx, pdf_annot *annot)
int pdf_annot_has_intent(fz_context *ctx, pdf_annot *annot)
int pdf_is_filespec(fz_context *ctx, pdf_obj *fs)
int pdf_annot_has_rich_defaults(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_creation_date(fz_context *ctx, pdf_annot *annot, int64_t time)
const char * pdf_annot_rich_defaults(fz_context *ctx, pdf_annot *annot)
pdf_obj * pdf_name_from_line_ending(fz_context *ctx, enum pdf_line_ending end)
const char * pdf_string_from_intent(fz_context *ctx, enum pdf_intent intent)
fz_text * pdf_layout_fit_text(fz_context *ctx, fz_font *font, fz_text_language lang, const char *str, fz_rect bounds)
int pdf_get_widget_editing_state(fz_context *ctx, pdf_annot *widget)
void pdf_set_annot_line_caption_offset(fz_context *ctx, pdf_annot *annot, fz_point offset)
int pdf_annot_is_open(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_modification_date(fz_context *ctx, pdf_annot *annot, int64_t time)
void pdf_run_annot(fz_context *ctx, pdf_annot *annot, fz_device *dev, fz_matrix ctm, fz_cookie *cookie)
int pdf_annot_is_standard_stamp(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_hidden_for_editing(fz_context *ctx, pdf_annot *annot, int hidden)
enum pdf_annot_type pdf_annot_type_from_string(fz_context *ctx, const char *subtype)
pdf_obj * pdf_annot_filespec(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_default_appearance(fz_context *ctx, pdf_annot *annot, const char *font, float size, int n, const float *color)
fz_point pdf_annot_vertex(fz_context *ctx, pdf_annot *annot, int i)
void pdf_add_annot_ink_list_stroke(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_callout_line(fz_context *ctx, pdf_annot *annot, fz_point callout[3], int n)
void pdf_set_annot_line_leader(fz_context *ctx, pdf_annot *annot, float ll)
int64_t pdf_annot_modification_date(fz_context *ctx, pdf_annot *annot)
int64_t pdf_annot_creation_date(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_rich_defaults(fz_context *ctx, pdf_annot *annot, const char *style)
int pdf_annot_MK_BG_rgb(fz_context *ctx, pdf_annot *annot, float rgb[3])
fz_rect pdf_annot_display_rect(fz_context *ctx, pdf_annot *annot)
float pdf_annot_border_effect_intensity(fz_context *ctx, pdf_annot *annot)
void pdf_set_annot_filespec(fz_context *ctx, pdf_annot *annot, pdf_obj *obj)
fz_link * pdf_new_link(fz_context *ctx, pdf_page *page, fz_rect rect, const char *uri, pdf_obj *obj)
int pdf_annot_has_interior_color(fz_context *ctx, pdf_annot *annot)
enum pdf_line_ending pdf_annot_line_start_style(fz_context *ctx, pdf_annot *annot)
const char * pdf_annot_contents(fz_context *ctx, pdf_annot *annot)
pdf_annot * pdf_keep_annot(fz_context *ctx, pdf_annot *annot)
void pdf_clear_annot_border_dash(fz_context *ctx, pdf_annot *annot)
int pdf_verify_embedded_file_checksum(fz_context *ctx, pdf_obj *fs)
void pdf_annot_request_synthesis(fz_context *ctx, pdf_annot *annot)
int pdf_update_page(fz_context *ctx, pdf_page *page)
void pdf_set_annot_name(fz_context *ctx, pdf_annot *annot, const char *name)
fz_point pdf_annot_ink_list_stroke_vertex(fz_context *ctx, pdf_annot *annot, int i, int k)
void pdf_set_annot_border(fz_context *ctx, pdf_annot *annot, float width)
char * pdf_append_named_dest_to_uri(fz_context *ctx, const char *url, const char *name)
struct fz_display_list fz_display_list
Definition display-list.h:47
void HEAP_TYPE_NAME HEAP_CONTAINER_TYPE v
Definition heap-imp.h:51
struct pdf_obj pdf_obj
Definition object.h:44
struct fz_separations fz_separations
Definition separation.h:43
Definition buffer.h:41
Definition color.h:417
Definition context.h:886
Definition device.h:290
Definition font.h:776
Definition image.h:351
Definition structured-text.h:55
Definition geometry.h:388
Definition pixmap.h:432
Definition geometry.h:187
Definition geometry.h:782
Definition geometry.h:231
Definition structured-text.h:724
Definition structured-text.h:344
Definition text.h:82
Definition document.h:463
Definition annot.h:951
const char * filename
Definition annot.h:952
int64_t created
Definition annot.h:955
int size
Definition annot.h:954
const char * mimetype
Definition annot.h:953
int64_t modified
Definition annot.h:956
Definition page.h:320
Definition page.h:293
fz_text_language
Definition text.h:57