summaryrefslogtreecommitdiff
path: root/source/tools/pdfmerge.c
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2016-04-27 14:14:52 +0200
committerTor Andersson <tor.andersson@artifex.com>2016-04-27 17:01:06 +0200
commit4355fda4abe7e7022e3e258c276ccba9e4713d91 (patch)
tree7a21c614bad51f8157c56db60d658f77ad6273b6 /source/tools/pdfmerge.c
parenta1c86cfcea30b18734488935c636a5d7198b3983 (diff)
downloadmupdf-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.c22
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);