summaryrefslogtreecommitdiff
path: root/source
AgeCommit message (Collapse)Author
2015-08-24GProof: Hook up fz_meta - just for 'format' currently.Robin Watts
This will be useful for identifying when we are proofing.
2015-08-24Move ucdn.h into public headers.Tor Andersson
2015-08-20Do not decode png image when getting image metadata.Sebastian Rasmussen
2015-08-20Remove a few debug functions left behind.Sebastian Rasmussen
2015-08-20Remove duplicate inclusions of headers.Sebastian Rasmussen
These headers are already included by mupdf/fitz/system.h.
2015-08-20Fix a few signedness issues in gif decoder.Sebastian Rasmussen
2015-08-19Add stdout and stderr procedures for use with gs api callsMichael Vrhel
gsview on windows does not support the use of stdout and stderr. The calls to write out to these will return 0 leading to an i/o error from gs. To avoid this we define dummy functions that simply return the length that was to be written. To avoid issues with including "iapi.h" in Android builds that do not support gproof we wrap all of gprf-doc.c in an ifdef SUPPORT_GPROOF
2015-08-17GPrf: Alter gsapi invocationRobin Watts
Michael reports that adding -I%rom%Resource/Init/ to the args solves some problems by ensuring that the ROM filing system is used.
2015-08-17Fix stupid ommission in gprf-doc.cRobin Watts
I missed a line when refactoring code.
2015-08-17gprf: Minor fixes for neatness.Robin Watts
We should use a void *instance, not a void **instance. And fz_read_string is more correct than fz_read_line.
2015-08-17Patch around INT32_MAX not being present on windows.Robin Watts
It's a C99ism.
2015-08-17Revert "win32: Convert argv to utf-8 and use regular getopt."Robin Watts
Neatness doesn't override actually working. This reverts commit efb5a38ca0bac3537ceaf3383681a518df133143.
2015-08-17GProof: Use better RGB -> CMYK conversion when working from seps.Robin Watts
When proofing an image without all the separations enabled, we reconstitute it using the equivalent cmyk colors, and then convert to rgb. The CMYK -> RGB step is important for quality, and the whole point of GProof mode is to give the best possible quality, so use the slower, but prettier code. Also, fix the blatent bugs in the slower but prettier code that I introduced when hurriedly fixpointing it.
2015-08-17GProof: Fix creating images from a selection of separationsRobin Watts
The code for this was broken; the wrong flag was being tested for selection number, and the values were being assembled per line rather than per pixel.
2015-08-17GProof: Fix a potential signed/unsigned problem in CMYK conversion.Robin Watts
Not sure if this is actually an issue at the moment, but it potentially could be.
2015-08-17Add fz_read_string function to read a null terminated stringRobin Watts
Use that within gproof. The existing use of fz_read_line was broken and was resulting in bad values for separations.
2015-08-17Add JNI interface to MuPDFCore to read/write separations on a page.Robin Watts
Get separation information out to the Java level.
2015-07-31Use new fz_read_int functions.Tor Andersson
2015-07-31Clean up fz_read_[u]intNN() functions and add big-endian versions.Tor Andersson
Use an endian-ness independent method of reading, instead of byte swapping.
2015-07-31win32: Convert argv to utf-8 and use regular getopt.Tor Andersson
Easier than duplicating getopt for wchar_t, since we already have windows specific functions to convert wchar_t strings.
2015-07-29Add support for parsing GIF images.Sebastian Rasmussen
2015-07-29Support reading LZW codes in reverse order from each byte.Sebastian Rasmussen
2015-07-29Support LZW codes shorter than 9 bits.Sebastian Rasmussen
2015-07-28Reset xref object entry when repairing pdf objects.Sebastian Rasmussen
When attempting to load pdf objects and a valid pdf object is found but it has the wrong number, mark the xref object entry as being free before attempting to repair the xref. This ensures that if the wanted object cannot be found in the document then the missing object will be considered to be null. Previously it was still assumed to be around, but the object pointer was NULL triggering an assert in pdf_load_object().
2015-07-27Limit dash phase to length of dash pattern.Sebastian Rasmussen
Previously out of range phase values were accepted which led to overly long loops when processing moveto. This could be triggered e.g. by 2222222222222222222 [ 4 6 ] 0 d in a content stream.
2015-07-27Cosmetic rearrangement of code for drawing paths.Sebastian Rasmussen
In preparation for a bugfix concerning path phase.
2015-07-27Handle out of range line join and line cap styles.Sebastian Rasmussen
Previously these operators accepted out of range values which triggered asserts in the rendering code.
2015-07-27Do not attempt to resolve indirect objects during pdf repairSebastian Rasmussen
When parsing dicts or arrays while reparing objects the xref should not be used to try to resolve indirect objects since the xref has not been fully rebuilt yet. As was the case prior to commit 07dd854.
2015-07-27Correctly compare PDF names with null, true and false.Sebastian Rasmussen
Commit f533104 introduced optimized handling of pdf names, null, true and false. That commit handles most object types correctly in pdf_objcmp() but it does not correctly handle comparisons such as pdf_objcmp("/Crypt", "true") or pdf_objcmp("null", "/Crypt"). Fixes one issue from bug 696012.
2015-07-27Limit font encoding differences to unicode.Sebastian Rasmussen
Previously encoding differences were allowed outside the valid unicode codepoint range. Fixes one issue from bug 696012.
2015-07-26Ignore excessive output from PDF functions.Sebastian Rasmussen
Previously all output values were used, causing buffer overflows. Fixes one issue from bug 696012.
2015-07-20Bug 696100: Fix NULL deref.Robin Watts
Check flow is not NULL before dereferencing it. Everything else in this area of the code copes with it being NULL.
2015-07-20Only include gproof document handler if SUPPORT_GPROOF is defined.Robin Watts
2015-07-20Gproof doc handler; add ability to call gs via gsapi rather than exe.Robin Watts
2015-07-20Improve Grid fitting of images for .gproof files.Robin Watts
By default in MuPDF, when we render an axis aligned image, we 'gridfit' it. This is a heuristic used to improve the rendering of tiled images, and avoid the background showing through on the antialiased edges. The general algorithm we use is to expand any image outwards so that it completely covers any pixels that it touches any part of. This is 'safe' in that we never cause any pixels to not be covered that should otherwise be so, and is important when we have images that are aligned with (say) line art rectangles. For gproof files though, this gives nasty results - because we have multiple images tiled across the page all exactly abutting, in most cases the edges will not be on exact integer coordinates. This means we expand both images and 1 (destination) pixel is lost. This severely hurts the rendering (in particular on text based pages). We therefore introduce a new type of grid fitting, where we simply align the edges of images to the closest integer pixel. This is safe because we know that neighbouring images will be adjusted identically and edges will stay coincident. We enable/disable this behaviour through a new device flag, and make the gproof interpreter set/clear this flag when generating the page - thus normal rendering is unaffected. We *could* have just poked the dev->flags fields directly, but that would require magic in the display list device to check for them being set/unset and to poke the dev->flags fields on playback, so instead we introduce a new fz_render_flags function (that calls a device function) to set/unset flags. The other attraction of this is that if we ever have devices that 'filter', we can neatly handle passing flag changes on with those. Currently the display list implementation only copes with set/clear of the FZ_DEVFLAG_GRIDFIT_AS_TILED option. We only readily have 6 bits available to us, so we'll just extend this as required if we add new render flags.
2015-07-20Add .gproof output mode to mudraw.Robin Watts
2015-07-20Code to generate a GProof file from a currently opened document.Robin Watts
Given a document, generate a gproof file from it. This encapsulates the name of the file, the desired resolution for proofing, and the page dimensions of all the pages in the file. The idea is that an app will call this when it is asked to go into 'proofing' mode, and will reinvoke itself on this file. This gives the gprf document handler just enough information to fake up a document of n pages of the required sizes. Each page will then be autogenerated on demand.
2015-07-20First cut at gprf document handler.Robin Watts
Doesn't actually trigger generation from ghostscript, or load images from files generated by ghostscript yet.
2015-07-20Tweak fz_tempfile to include directory hint.Robin Watts
In android, we can't write to '.', and we don't have TMP defined. Therefore use the path of the supplied file as a hint.
2015-07-20Fix leak during text extraction.Robin Watts
MuPDF (the win32/linux viewer) leaks a span_soup each time it is run, even if (seemingly to the user) no text extraction operations are done. This is because the view does a text extraction pass silently, during which 'begin_page' is called for both page contents and annotation contents. This causes a leak of a span_soup. Change the implementation to allocate the span_soup just in time instead.
2015-07-20Bug 696061: Fix leak of xml block.Robin Watts
Bug 696061 showed GhostXPS crashing with a SEGV. Checking MuPDF showed that a fix had already been applied here, but Memento shows that the fix was causing a leak. We therefore patch the leak here.
2015-07-20Enable fz_images to have NULL buffers, and still be decoded.Robin Watts
Important for gproof files.
2015-07-20Fix leak in separations code.Robin Watts
Include code to free the list of separation names.
2015-06-29Add Separation class to fitz.Robin Watts
Simple set of functions for managing sets of separations. Separations have names, equivalent rgb/cmyk colors, and can be enabled/disabled.
2015-06-29Further tweaks to fz_image handling.Robin Watts
Ensure that subsampling and caching happen in the generic image code, not in the specific. Previously, the subsampling happened only for images that were decoded from streams. Images that were loaded direct were never subsampled and hence were always cached at full size. After this change both classes of image are correctly subsampled, and the subsampled version kept in the cache. This produces various image diffs in the cluster, none of which are noticable to the naked eye.
2015-06-29Rejig the internals of fz_image slightly.Robin Watts
Previously, we had people calling image->get_pixmap directly. Now we have them all call fz_image_get_pixmap, which will look for a cached version in the store, and only call get_pixmap if required. Previously fz_image_get_pixmap used to look for the cached version in the store, and decode if not - hence the decoding code is now extracted out into standard_image_get_pixmap. This was the original intent of the code, it just somehow didn't end up like that. This nicely queues us up for being able to have fz_images that use a different get_pixel implementation, such as that which will be required for the gprf code.
2015-06-29Add an fz_tempfile utility.Robin Watts
This will be required for the gprf work.
2015-06-26Add stream functions for reading LE values of different sizesRobin Watts
fz_read_int16le, fz_read_int32le, fz_read_int64le.
2015-06-26Bug 696053: Update windows mupdf to respect command line flags.Robin Watts
Previously, only the unix executable had been updated to take command line flags; update the windows one in line with it. We have to cope with the argv being in Unicode; add a windows specific version of getoptw for this. Also note that that fprintf's in the windows mupdf exe won't work as GUI apps don't have a console window, and can't write to the parent one. Fixing that is a larger project than I have time for right now.
2015-06-05Fix mutool clean for FZ_LARGEFILE case.Robin Watts
We were allocating the ofs array as ints and then filling it with fz_off_t's.