summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-annot-edit.c
AgeCommit message (Collapse)Author
2018-01-31Use convenience pdf dictionary/array creation functions.Tor Andersson
2017-11-23Make time stamps 64-bit integers.Tor Andersson
Future proof the API for the Year 2038 problem.
2017-11-22Remove unused annotation function.Tor Andersson
2017-11-22jni/js: Add support for annotation modification dates.Sebastian Rasmussen
2017-11-22jni/js: Use correct text encoding in annotation author and contents.Fred Ross-Perry
Also clarify that a copy of author/contents is returned, and that the caller must free them.
2017-11-22jni: Make sure to dirty annotation whenever it changes.Fred Ross-Perry
2017-11-22jni: Return correct quadpoints coordinates.Sebastian Rasmussen
2017-11-22jni: Return correct inklist coordinates.Sebastian Rasmussen
2017-07-25Make it possible to check for properties of PDF annotations.Sebastian Rasmussen
2017-05-31Avoid double literals causing casts to float.Sebastian Rasmussen
2017-04-28Add support for manipulating PDF annotation vertices.Sebastian Rasmussen
2017-04-27Break line at public identifiers, making them easily grepable.Sebastian Rasmussen
2017-04-27Include required system headers.Tor Andersson
2017-04-27Use fz_snprintf.Tor Andersson
2017-04-20Add annotation interfaces for open state/icon name/line endings.Sebastian Rasmussen
2017-04-20Improve PDF annotation error handling.Sebastian Rasmussen
2017-04-20js: Push annotation error handling down to library.Sebastian Rasmussen
This makes is possible for JNI code to depend on the library for error handling.
2017-03-15Add PDF_ANNOT_UNKNOWN enum.Tor Andersson
2016-12-27Strip extraneous blank lines.Tor Andersson
2016-12-12pdf: Fix bug 697431.Tor Andersson
We were incorrectly calling pdf_update_object to try to make sure that an edited array was going to be saved during incremental saves. This call was both buggy and unnecessary.
2016-10-16Avoid casting when dropping super objects.Sebastian Rasmussen
2016-10-07Add annotation editing functions and clean interface of existing ones.Tor Andersson
2016-10-07Remove separate tmp/deleted/changed annotation lists.Tor Andersson
Use a flag in the pdf_annot struct instead. Don't pass pdf_document to annotation edit functions.
2016-09-23Clean up annotation enum names.Tor Andersson
Put them in the PDF name space and separate words with underscores. Remove redundant namespace prefixes in java constants. Device.FLAG_MASK rather than Device.FZ_DEVFLAG_MASK. Use namespace for PDF annotation flag enum.
2016-07-08Slim pdf_annot struct: remove cached page_ctm field.Tor Andersson
2016-07-08Slim pdf_annot struct: remove cached inv_page_ctm field.Tor Andersson
2016-07-08Slim pdf_annot struct: remove cached annot_type and widget_type fields.Tor Andersson
2016-07-08Slim pdf_annot struct: remove cached matrix field.Tor Andersson
2016-07-08Slim pdf_annot struct: remove cached rect field.Tor Andersson
2016-07-08Slim pdf_annot struct: remove cached pagerect field.Tor Andersson
2016-07-06Start slimming pdf_page.Tor Andersson
We want to turn pdf_page into a thin wrapper around a pdf_obj, so that any updates to the underlying PDF objects will be reflected without having to reload the pdf_page.
2016-07-06pdf: Drop generation number from public interfaces.Tor Andersson
The generation number is only needed for decryption, and is assumed to be zero or irrelevant for all other uses. Store the original object number and generation in the xref slot, so that we can decrypt them even when the objects have been renumbered, without needing to pass the original object number around through the stream loading APIs.
2016-06-22Tweak PDF annot API.Robin Watts
The values returned from the pdf_annot_{contents, author, date} functions should not be altered, hence make it const.
2016-06-22Add support for getting additional annotation informationMichael Vrhel
GSView will make use of the details about the annotations including the author, the date and which annotation the annotation is in reply to. This commit provides the interface to do this easily.
2016-06-17Use 'size_t' instead of int as appropriate.Robin Watts
This silences the many warnings we get when building for x64 in windows. This does not address any of the warnings we get in thirdparty libraries - in particular harfbuzz. These look (at a quick glance) harmless though.
2016-04-12Fix PDF annotations not appearing after creation.Robin Watts
Caused by a mismatch in the annotation creation/loading code.
2016-03-14Take pdf_obj argument to pdf_is_stream.Tor Andersson
2016-03-01Rename pdf_new_ref to pdf_add_object.Tor Andersson
2016-01-05Separate pdf_drop_annots (that drops lists) and fz_drop_annot.Tor Andersson
2015-03-24Rework handling of PDF names for speed and memory.Robin Watts
Currently, every PDF name is allocated in a pdf_obj structure, and comparisons are done using strcmp. Given that we can predict most of the PDF names we'll use in a given file, this seems wasteful. The pdf_obj type is opaque outside the pdf-object.c file, so we can abuse it slightly without anyone outside knowing. We collect a sorted list of names used in PDF (resources/pdf/names.txt), and we add a utility (namedump) that preprocesses this into 2 header files. The first (include/mupdf/pdf/pdf-names-table.h, included as part of include/mupdf/pdf/object.h), defines a set of "PDF_NAME_xxxx" entries. These are pdf_obj *'s that callers can use to mean "A PDF object that means literal name 'xxxx'" The second (source/pdf/pdf-name-impl.h) is a C array of names. We therefore update the code so that rather than passing "xxxx" to functions (such as pdf_dict_gets(...)) we now pass PDF_NAME_xxxx (to pdf_dict_get(...)). This is a fairly natural (if widespread) change. The pdf_dict_getp (and sibling) functions that take a path (e.g. "foo/bar/baz") are therefore supplemented with equivalents that take a list (pdf_dict_getl(... , PDF_NAME_foo, PDF_NAME_bar, PDF_NAME_baz, NULL)). The actual implementation of this relies on the fact that small pointer values are never valid values. For a given pdf_obj *p, if NULL < (intptr_t)p < PDF_NAME__LIMIT then p is a literal entry in the name table. This enables us to do fast pointer compares and to skip expensive strcmps. Also, bring "null", "true" and "false" into the same style as PDF names. Rather than using full pdf_obj structures for null/true/false, use special pointer values just above the PDF_NAME_ table. This saves memory and makes comparisons easier.
2015-02-17Add ctx parameter and remove embedded contexts for API regularity.Tor Andersson
Purge several embedded contexts: Remove embedded context in fz_output. Remove embedded context in fz_stream. Remove embedded context in fz_device. Remove fz_rebind_stream (since it is no longer necessary). Remove embedded context in svg_device. Remove embedded context in XML parser. Add ctx argument to fz_document functions. Remove embedded context in fz_document. Remove embedded context in pdf_document. Remove embedded context in pdf_obj. Make fz_page independent of fz_document in the interface. We shouldn't need to pass the document to all functions handling a page. If a page is tied to the source document, it's redundant; otherwise it's just pointless. Fix reference counting oddity in fz_new_image_from_pixmap.
2015-02-17Rename fz_close_* and fz_free_* to fz_drop_*.Tor Andersson
Rename fz_close to fz_drop_stream. Rename fz_close_archive to fz_drop_archive. Rename fz_close_output to fz_drop_output. Rename fz_free_* to fz_drop_*. Rename pdf_free_* to pdf_drop_*. Rename xps_free_* to xps_drop_*.
2014-03-25Break dependency of pdf-annot.c to graphics library.Tor Andersson