summaryrefslogtreecommitdiff
path: root/source/pdf
AgeCommit message (Collapse)Author
2016-07-13Bug 696892: PDF annotation appearance stream synthesis SEGVRobin Watts
The code would SEGV if we were trying to synthesise an appearance stream for an annotation, and the docs pdf resources table had not been initialised. We now intialise the pdf resource tables when we initialise a pdf device. This is the earliest point we know we are going to need them, and covers all cases.
2016-07-13Use fz_malloc_struct rather than fz_calloc.Robin Watts
This helps with Memento debugging, and looks neater.
2016-07-12Fix bugs in pdf_add_image.Tor Andersson
2016-07-08Use fz_keep_imp and fz_drop_imp for all reference counting.Tor Andersson
2016-07-08Separate close and drop functionality for devices and writers.Tor Andersson
Closing a device or writer may throw exceptions, but much of the foreign language bindings (JNI and JS) depend on drop to never throw an exception (exceptions in finalizers are bad).
2016-07-08Slim pdf_xobject: remove cached colorspace field.Tor Andersson
2016-07-08Slim pdf_xobject: remove cached document field.Tor Andersson
2016-07-08Slim pdf_xobject: remove cached transparency/isolated/knockout fields.Tor Andersson
2016-07-08Slim pdf_xobject struct: remove cached matrix field.Tor Andersson
2016-07-08Slim pdf_xobject struct: remove cached bbox field.Tor Andersson
2016-07-08Slim pdf_xobject struct: remove cached resources field.Tor Andersson
The "contents" field is the same as the "obj" field, so can also be removed.
2016-07-08Slim pdf_xobject struct: Rename me to obj.Tor Andersson
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-08Safe defaults for pdf_to_rect and pdf_to_matrix.Tor Andersson
Return the empty rectangle and identity matrix when the pdf object is missing or not an array.
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-06Add fitz to pdf downcasting functions for pages and annotations.Tor Andersson
2016-07-06Remove premature optimization: don't bother to resolve page objects.Tor Andersson
2016-07-06Fix garbage collection and page grafting for indirect reference chains.Tor Andersson
The mark & sweep pass of garbage collection, and resolving indirect objects when grafting objects was following the full chain of indirect references. In the unusual case where a numbered object is itself only an indirect reference to another object, this intermediate numbered object would be missed both when marking for garbage collection, and when copying objects for grafting. Add a function to resolve only one step for these two uses. The following is an example of a file that would break during garbage collection if we follow full indirect reference chains: %PDF-1.3 1 0 obj <</Type/Catalog /Foo[2 0 R 3 0 R]>> endobj 2 0 obj 4 0 R endobj 3 0 obj 5 0 R endobj 4 0 obj <</Length 1>> stream A endstream endobj 5 0 obj <</Length 1>> stream B endstream endobj
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-07-06pdf: Increment generation number in the xref when deleting an object.Tor Andersson
2016-07-06pdf: Flatten inheritable page properties when copying pages.Tor Andersson
Affects pdfclean, pdfmerge, and pdfposter.
2016-07-06pdf: Check ownership when adding objects to a document.Tor Andersson
2016-07-06Expose LAB colorspaceSebastian Rasmussen
2016-06-30Fix bug when opening small PDF-files.Sebastian Rasmussen
The PDF repair code suffered an buffer index overflow while searching the buffer of file data if the file (and hence the buffer) was sufficiently small. This also happened while attempting to open a path pointing to a directory as they are treated as zero byte files.
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-22Use vertical presentation forms.Tor Andersson
Remap glyphs using presentation form code points rather than having a separate vertical variant of the CJK font using truetype collections. Recreate DroidSansFallback fonts from original source, extend the glyph coverage from DroidSans, subset the glyphs to match CJK CID collections, and optimize the outlines using fontcrunch.
2016-06-21Fix typo due to switching from int to size_t.Sebastian Rasmussen
Commit 4a4e6adae4c1a0e9ab3b6fad477edfe26c1a2aca introduced a typo when doing the int -> size_t conversion. This caused a coverity warning which is now fixed.
2016-06-20Fix signed/unsigned warning.Robin Watts
2016-06-17Add mediabox argument to fz_new_display_list.Tor Andersson
To return the proper size from fz_bound_display_list, which has been broken since the begin_page device call was removed.
2016-06-17Add device space transform state to draw device.Tor Andersson
Allows us to remove the out parameter 'transform' from fz_begin_page.
2016-06-17Allow PDF strings to be > 16bits.Robin Watts
This stops Bug693111.pdf giving errors.
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-06-16Add PNG output for mutool convert.Tor Andersson
2016-06-16Return options struct argument from pdf_parse_write_options.Tor Andersson
Makes it easier to chain function calls.
2016-06-16Fix crash due to double closing output in pdf_save_document.Robin Watts
Broken due to refactoring. Thanks to Michael for spotting this.
2016-06-14Fix typos in various parts of the code.Sebastian Rasmussen
2016-06-14Add optional support for Luratech JBIG2 decoder.Sebastian Rasmussen
If thirdparty/luratech is populated then this decoder will be preferred over jbig2dec (even if both are present).
2016-06-13Add pdf_write_document.Robin Watts
Allow us to write a document to an fz_output as opposed to just a filename. We cannot write digital signatures in this method though. Will ponder that in a later commit.
2016-06-13Bug 696822: Refuse to save a pdf file incrementally if it would break.Robin Watts
If a file cannot be saved incrementally, then don't accept that as an option. In practise this means if someone asks to save a file incrementally, and it was repaired, or it uses encryption then throw an error. Add a new function to ask if it's safe to save a file incrementally, and use that in the appropriate places.
2016-06-08Move to using size_t for all mallocs.Robin Watts
This has knock on effects in the store. fix
2016-06-06Add FZ_ENABLE_JS configuration define.Tor Andersson
2016-06-06Minimize the number of CMaps built in to the ones listed in the spec.Tor Andersson
Omitting the unlisted UTF-8 and UTF-32 CMaps saves ~1M. Omitting the unlisted other CMaps saves ~200k. Define CJK_CMAPS=0 to skip all CMaps. Define EXTRA_CMAPS=1 to include the various other CMaps. Define UTF8_CMAPS=1 and UTF32_CMAPS to include the UTF-8 and UTF-32 CMaps.
2016-05-31Bug 696813: Fix Lab colorspaces.Robin Watts
Lab colorspaces had been broken due to incorrect clipping of color values introduced in an effort to fix Bug 696796.
2016-05-24Fix 696796: clamp color values in PDF to valid range.Tor Andersson