diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2016-04-27 14:14:52 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2016-04-27 17:01:06 +0200 |
commit | 4355fda4abe7e7022e3e258c276ccba9e4713d91 (patch) | |
tree | 7a21c614bad51f8157c56db60d658f77ad6273b6 /source/tools/pdfmerge.c | |
parent | a1c86cfcea30b18734488935c636a5d7198b3983 (diff) | |
download | mupdf-4355fda4abe7e7022e3e258c276ccba9e4713d91.tar.xz |
Tweak pdf-write option handling.
The handling of not-decompressing images/fonts was geared towards
pdfclean usage; but now that we can create new PDF files, it makes
more sense to ask for images and fonts to be compressed, rather than
asking for them not to be decompressed with quirky interaction with
the 'expand' and 'deflate' flags.
If -f or -i are set, we will never decompress images, and we will
compress them if they are uncompressed.
If -d is set, we will first decompress all streams (module -f or -i).
If -z is set, we will then compress all uncompressed streams.
Diffstat (limited to 'source/tools/pdfmerge.c')
-rw-r--r-- | source/tools/pdfmerge.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/source/tools/pdfmerge.c b/source/tools/pdfmerge.c index 13905460..f63a90c7 100644 --- a/source/tools/pdfmerge.c +++ b/source/tools/pdfmerge.c @@ -9,14 +9,11 @@ static void usage(void) { fprintf(stderr, - "usage: mutool merge [-o output.pdf] [-adlsz] input.pdf [pages] [input2.pdf] [pages2] ...\n" + "usage: mutool merge [-o output.pdf] [-O options] input.pdf [pages] [input2.pdf] [pages2] ...\n" "\t-o\tname of PDF file to create\n" - "\t-a\tascii hex encode binary streams\n" - "\t-d\tdecompress all streams\n" - "\t-l\tlinearize PDF\n" - "\t-s\tclean content streams\n" - "\t-z\tdeflate uncompressed streams\n" - "\tinput.pdf name of first PDF file from which we are copying pages\n" + "\t-O\tPDF write options\n" + "\tinput.pdf\tname of first PDF file from which we are copying pages\n" + "\tpages: comma separated list of page ranges (for example: 1-5,6,10-)\n" ); exit(1); } @@ -149,19 +146,16 @@ int pdfmerge_main(int argc, char **argv) { pdf_write_options opts = { 0 }; char *output = "out.pdf"; + char *flags = ""; char *input; int c; - while ((c = fz_getopt(argc, argv, "adlszo:")) != -1) + while ((c = fz_getopt(argc, argv, "o:O:")) != -1) { switch (c) { case 'o': output = fz_optarg; break; - case 'a': opts.do_ascii ++; break; - case 'd': opts.do_expand ^= PDF_EXPAND_ALL; break; - case 'l': opts.do_linear ++; break; - case 's': opts.do_clean ++; break; - case 'z': opts.do_deflate ++; break; + case 'O': flags = fz_optarg; break; default: usage(); break; } } @@ -176,6 +170,8 @@ int pdfmerge_main(int argc, char **argv) exit(1); } + pdf_parse_write_options(ctx, &opts, flags); + fz_try(ctx) { doc_des = pdf_create_document(ctx); |