summaryrefslogtreecommitdiff
path: root/source/tools/mudraw.c
AgeCommit message (Collapse)Author
2016-07-13Bug 696699: Fix Text extraction mediabox information.Robin Watts
Since the removal of the begin_page device function, structured text extraction has been unable to correctly establish the mediabox for extracted pages. Update the fz_new_stext_page call to take this mediabox information. This is an API change, but hopefully most people are calling fz_new_stext_page_from_page or fz_new_stext_page_from_display_list which are updated here to cope. Update all the apps/tools to behave properly.
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-06-28Mudraw: Fix interation with banding and display list.Robin Watts
We had moved the ctm into the display device, which meant it no longer transformed the bounds given to the list device to do scissoring. Move it back. Same fix for muraster.
2016-06-28Fix inconsistency in band handling.Robin Watts
In an earlier commit, I changed some of the band writing functions to take the band starting offset, rather than the band number. This was done to accomodate the idea of rendering the page in bands of different heights. Sadly, it seems I didn't push this all the way through, and had different band writing functions still taking the band number. Fix all the band writing functions to be consistent.
2016-06-23Always print filenames in mudraw.Sebastian Rasmussen
Regardless of whether rendering in background thread or not the filename and the page number should be printed.
2016-06-22mudraw: Don't apply ctm twice when not using display list.Tor Andersson
2016-06-20Bug 696839: Fix -I option to mudraw.Robin Watts
The argument processing was expecting an argument after I.
2016-06-17Set pixmap resolution when creating pixmaps for draw device.Tor Andersson
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-17Fix fz_write_pam code.Robin Watts
It was incorrectly missing the alpha in the header writing code.
2016-06-17Improve banding API.Robin Watts
Previously the API assumed that all bands had to be the same height. By moving the multiplication into the caller, we can lift that assumption.
2016-06-16Drop save_alpha argument from image writing functions.Tor Andersson
2016-06-14Fix typos in various parts of the code.Sebastian Rasmussen
2016-06-08Move to using size_t for all mallocs.Robin Watts
This has knock on effects in the store. fix
2016-05-31Update test device with passthrough option.Robin Watts
Update the test device so it can be used 'wrapping' another device. In particular, it can be used to wrap the display list device so that we can evaluate 'color or not' while building the display list rather than having to rerun the display list afterwards. Also, give improved control over whether we test every pixel of images/shadings.
2016-05-30Respect FZ_ENABLE_PDF=0 to allow dropping all PDF specific code in tools.Tor Andersson
2016-05-27Mudraw: Move halftoning into render threads.Robin Watts
2016-05-26Bug 696803: Fix pam output.Robin Watts
PAM output was broken in the absence of alpha. Fixed now.
2016-05-24fz_pixmap revamp: add stride and make alpha optionalRobin Watts
fz_pixmaps now have an explicit stride value. By default no change from before, but code all copes with extra gaps at the end of the line. The alpha data in fz_pixmaps is no longer compulsory. mudraw: use rgb not rgba (ppmraw), cmyk not cmyka (pkmraw). Update halftone code to not expect alpha plane. Update PNG writing to cope with alpha less input. Also hide repeated params within the png output context. ARM code needs updating.
2016-05-13Add common page range parsing function for tools.Tor Andersson
2016-05-13Introduce a general output context.Sebastian Rasmussen
This makes it possible to redirect standard out and standard error output streams to output streams of your liking. This means that now you can, in gdb, type: (gdb) call pdf_print_obj(ctx, fz_stdout(ctx), obj, 0) (gdb) call fflush(0) or when dealing with an unresolved indirect reference: (gdb) call pdf_print_obj(ctx, fz_stdout(ctx), pdf_resolve_indirect(ctx, ref), 0) (gdb) call fflush(0)
2016-05-12Fix Mudraw timings when using -P (bgprint).Robin Watts
Calculations need to be done differently.
2016-05-12Fix race condition in bgprint.Robin
There was a race condition on bgprint.pagenum that could cause the bgprint worker to close down early, leaving the main thread waiting for notification of its closedown.
2016-05-09First implementation of parallel rendering ("bgprint")Robin Watts
Add -P flag to mudraw to do 'parallel' rendering. We shift rendering onto a background thread, so that the main thread can continue interpreting page n+1 while page n is being rendered. To do this, we extract the core of the drawpage routine into 'dodrawpage', and either call it directly (in the normal case) or from a bgprint worker thread (in the parallel case). The threading construction exactly parallels that of the threaded band rendering. We have a semaphore to start the render process, a semaphore to indicate when the process has stopped, and the thread itself. The most complex thing here is the rejigging of the printfs required to ensure that we still get the timings displayed in a sane way.
2016-05-04Avoid using unnamed semaphores.Robin Watts
Apparently neither OSX nor iOS support unnnamed semaphores, so steal the gs versions and use them instead.
2016-04-28Mudraw: In low memory mode, flush the store after each page.Robin Watts
2016-04-27Fix 696649: remove fz_rethrow_message calls.Tor Andersson
2016-04-26Mudraw: Set AA level in context before cloning context.Robin Watts
When we clone the context, we copy the AA levels from the base context into the cloned context. This means that we must set the AA levels in the base context BEFORE cloning if we want them to be the same everywhere (or set them explicitly in all contexts).
2016-04-26Allow text/graphics aa levels to be controlled separately.Robin Watts
2016-04-26Change order of arguments to pdf_add_page etc.Tor Andersson
Resources are defined before they are used; so it's only logical to have the resource dictionary before the content buffer in the argument list.
2016-04-05Add 'Low Memory' mode to Mutool draw.Robin Watts
If used, PDF objects are cleared at the end of each page, and the store size is set to 1 byte, avoiding the caching of images. This trades repeated decoding of images/reading of file objects for memory usage. The purpose of this is to enable measurements to be made on the minimum possible memory level.
2016-04-05Add threaded operation to mudraw.Robin Watts
2016-03-25Fix PS output banded mode operation.Robin Watts
2016-03-25Refactor pcl output to work in bands.Robin Watts
2016-03-25Tweak the PCL page size handling/options.Robin Watts
Introduce a 'generic' PCL setting (basically ljet4 with custom page sizes for now). Ensure we send explicit sizes before the custom page sizes, and don't use Ricoh page sizes unless we are allowed to.
2016-03-25Add 24 bit RGB PCL output mode.Robin Watts
Output uses adaptive compression mode.
2016-03-23Mudraw: Enable banded operation for pkm.Robin Watts
All the groundwork was in place for this, I'd just forgotten to actually enable it.
2016-03-21Mudraw: Avoid reopening output files.Robin Watts
It makes a strangely large difference in timings if we close and reopen the output file for every page. Only close and reopen the output file for each page if we really need to.
2016-03-21Add .ps output to mutool draw.Robin Watts
Simple PS wrapped images with flate compression.
2016-03-18Add 1bpp cmyk output to mutool draw.Robin Watts
A request for a .pkm file will produce the same as a pamcmyk4 does on ghostscript. Ghostscripts pkmraw device does a 1bpp cmyk and then converts to rgb as writing to ppm, but that seems silly.
2016-03-16mutool draw: Add banded mode output for pbm files.Robin Watts
2016-03-15mudraw: Fix leak of fz_output in stdout case.Robin Watts
2016-03-15Mutool draw: Simplify output handling code.Robin Watts
At the moment we have the output file being opened in several different places, leading to several different places having to cope with the '-' handling. Simplify the code so that files are only opened in 1 place.
2016-03-14Remove begin_page and end_page device calls.Tor Andersson
To be moved into a new document writer interface later.
2016-03-14mudraw: Print summary information to stderr.Tor Andersson
2016-03-01Don't use pdf_page struct when creating pages.Tor Andersson
2016-03-01Rename pdf_close_document to pdf_drop_document.Tor Andersson
2016-03-01Mudraw: Avoid clearing the output pcl file after every page.Robin Watts
2016-02-29Pass mediabox to pdf_create_page by const pointer, and pass resources.Tor Andersson