summaryrefslogtreecommitdiff
path: root/pdf
AgeCommit message (Collapse)Author
2012-10-08Bug 693350: Add some dreaded 'const's for string keys.Robin Watts
On the whole we avoid using const within MuPDF, but bug 693350 highlights cases where this can cause a problem with C++. In C, if you do: foo("bar"); then "bar" has type char *. In C++, if you do foo("bar"); then "bar" has type const char *. This means that any calls to the MuPDF library from C++ that take strings give warnings. The fix is simple, so it seems to be worthwhile adding a few consts. None of our internal data structures are affected in any way by this change. Thanks to Franz Fellner for pointing out this issue.
2012-10-05Make shadings hold the data streams compressed.Robin Watts
This reduces memory use by another 10% on the 2 testfiles mentioned in the previous commit (see bug 693330).
2012-10-05Refactor compressed stream loading.Robin Watts
Refactor 'short stopped' image stream loading into fz_compressed_buffer loading. Nicer overall, and reflects the fact that this can be used for non-image streams that we want to hold compressed in memory (for instance for shading streams). This is a preparatory step for pdfwrite, and enables further shading memory use optimisations. Remove unused jbig2 function pointer from the fz_compression_params (previously fz_image_params) structure to avoid confusion.
2012-10-01Move to consistently refer to "Linear" shadings rather than "Axial" ones.Robin Watts
Thanks to Sebras for pointing out our schitzophrenia here.
2012-10-01Use malformed shading entries as far as possibleSebastian Rasmussen
The rest of the shading code and source code for other cases already handles malformed entries in the same way.
2012-10-01Give better warnings for out of bounds values in shadingsSebastian Rasmussen
2012-10-01Bug 693330: Change shadings to decompose to meshes at render time.Robin Watts
Currently, the mupdf code loads shadings at parse time, and instantly decomposes them into a mesh of triangles. This mesh of triangles is the transformed and rendered as required. Unfortunately the storage space for the mesh is typically much greater than the original representation. In this commit, we move the shading stream parsing/decomposition code into a general 'fz_process_mesh' function within res_shade. We then grab a copy of the buffer at load time, and 'process' (decompose/paint) at render time. For the test file on the bug, memory falls from the reported 660Mb to 30Mb. For another test file (txt9780547775815_ingested.pdf page 271) it reduces memory use from 750Meg to 33Meg. These figures could be further reduced by storing the compressed streams from the pdf file rather than the uncompressed ones. Incorporating typo fix and unused function removal from Sebras. Thanks. Remove unused function in shading code
2012-09-25Forms: support doc.mailDoc.Paul Gardiner
2012-09-25Javascript: support test for booleanPaul Gardiner
2012-09-25Forms: handle app.launchUrl, currently by displaying a warningPaul Gardiner
2012-09-25Forms: show warning for use of app.execDialogPaul Gardiner
app.execDialog looks very difficult to support. Hopefully we wont have to
2012-09-25Forms: handle app.execMenuItem (presently just as a not-supported warning)Paul Gardiner
The name of the menu item is passed, so presumably the app could respond to some of the possibilities.
2012-09-21Add ifdef option to embed either the small or full CJK fallback font.Tor Andersson
The default is to embed the full font.
2012-09-21Move defaulting of image params into predictor function.Robin Watts
This makes no difference to the current operation of the code, but ensures that 'saner' values are put into the image_params structure. This will help pdfwrite give more aesthetically pleasing output later.
2012-09-19Forms: handle print request, both from javascript and from named actionPaul Gardiner
Currently the app windows app responds with a message box explaining that the MuPDF library passes print requests to the app, but the app does not implement printing.
2012-09-19Forms: ensure result from alert callback is passed back to callerPaul Gardiner
2012-09-19Forms: handle 'additional' actions for mouse up and mouse downPaul Gardiner
2012-09-19Forms: correct bug in form resetPaul Gardiner
If the 'fields' parameter is not present then all fields should be reset
2012-09-18Forms: add event handling api and specifically support for javascript alertPaul Gardiner
2012-09-18Forms: support property access in the javascript enginePaul Gardiner
2012-09-18Forms: improve cpp/c interface regarding exceptionsPaul Gardiner
Three alterations: We were previously being careful to avoid throwing exceptions in the DOM-implementation callbacks because these were being called directly from C++. This commit adds three veneers that turn exceptions into warnings, hence allowing the callbacks to be written in usual mupdf style. Protect the "field" callbacks from executing with a NULL field. Ensure that the event object is set up before executing A actions
2012-09-06Add pdf_dict_puts_drop function.Robin Watts
Does the same as pdf_dict_puts, but guarantees to always drop the value passed in (even if the function throws an error). This allows calling code to have a much simpler life in some cases. Update pdf_write to make use of this. Also, fix pdf_dict_puts so it doesn't leak the key object that it creates in the event of an error while growing the dictionary.
2012-09-04Make pdf resource localisation procedure non-static.Robin Watts
And add a flag in the xref for evey PDF document to say whether it has been localised or not; this will be important for PDF editing to avoid us having to localise on every edit.
2012-09-04Improve error message when an object is missing from the xref.Tor Andersson
2012-09-04Fix error message/comment typos.Sebastian Rasmussen
2012-09-04Prevent recursive image soft masks from being loadedSebastian Rasmussen
Print a warning instead and ignore the soft mask
2012-09-04Don't adjust stream lengths for encrypted documents when repairingSebastian Rasmussen
Fixes http://bugs.ghostscript.com/show_bug.cgi?id=693314
2012-09-04Merge branch 'master' into formsPaul Gardiner
Conflicts: pdf/pdf_xref_aux.c
2012-09-04Forms: mass renaming for the sake of consistencyPaul Gardiner
2012-08-31Forms: rework form reset action to use new method introduced for JSPaul Gardiner
2012-08-31Forms: implement javascript doc.resetForm methodPaul Gardiner
2012-08-31Forms: provide js engine method for determining object typePaul Gardiner
2012-08-31Forms: don't focus hidden fieldsPaul Gardiner
2012-08-31Forms: keep checkbox and radio button values up to datePaul Gardiner
2012-08-29Forms: implement javascript Field.display propertyPaul Gardiner
2012-08-29Merge branch 'master' into formsPaul Gardiner
Conflicts: cbz/mucbz.c pdf/pdf_parse.c pdf/pdf_form.c xps/xps_zip.c
2012-08-28Add fz_open_document_with_stream function.Tor Andersson
Use a "magic" string for filetype detection: filename or mime-type.
2012-08-27Add DOM object "app" initially with no properties or methods.Paul Gardiner
2012-08-24Forms: avoid javascript action execution when engine not availablePaul Gardiner
This was necessary to avoid indirecting through a NULL pointer returned from pdf_js_get_event, but is a generally sensible restriction. Also separate the execution of the document-level javascript actions from the pdf_js contstructor, so that doc->js is set during those actions. Also add a missing const
2012-08-23Rename fz_new_name to pdf_new_name.Robin Watts
Should have been pdf_new_name ever since the pre 1.0 rename, but evidently we missed it.
2012-08-23Silence some warnings.Robin Watts
Mountian Lion causes various different warnings to be given, possibly because a change to clang by default. Fix them here.
2012-08-23Forms: allow for globally-defined javascript as string, rather than streamPaul Gardiner
pdf_to_utf8 had been updated in an earlier commit, so it was sufficient to remove the object-type test. Also added a neglected fz_var.
2012-08-23Forms: fix typo in javascript utility functionsPaul Gardiner
2012-08-23Fix bug introduced in preceding commitPaul Gardiner
Not handling pdf_jsimp_toString returning NULL Throwing C exceptions in a call issued by v8 Iterating a pointer later used to free a buffer
2012-08-22Forms: convert js field names from utf8 to pdf-doc before lookupPaul Gardiner
2012-08-21Forms: implement a few more utility functionsPaul Gardiner
Also fix some uses of null.length
2012-08-20Forms: treat NULL event value as "" in pdf_js_setup_eventPaul Gardiner
2012-08-16Forms: handle pdf_js_setup_event being passed it's own internal valuePaul Gardiner
2012-08-16Javascript: implement main Keystroke and Validate functionsPaul Gardiner
2012-08-16Forms: correct the mechanism for detecting failed field validationsPaul Gardiner