summaryrefslogtreecommitdiff
path: root/source/fitz/output-svg.c
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2017-02-17 15:09:20 +0100
committerTor Andersson <tor.andersson@artifex.com>2017-02-20 16:54:50 +0100
commitf4defeee497d21a211f83e7a8d2d6c2dcadca607 (patch)
treed3c9c3c02f4d64f172842423e43fca7c0373bdcf /source/fitz/output-svg.c
parent029d5db2c4928a0bb4c357fc4db53aa614eac7f9 (diff)
downloadmupdf-f4defeee497d21a211f83e7a8d2d6c2dcadca607.tar.xz
Add no-reuse-images option to SVG device.
Also add explicit viewBox and width/height to image symbol and use elements, to work around a strange clipping/image scaling issue with firefox.
Diffstat (limited to 'source/fitz/output-svg.c')
-rw-r--r--source/fitz/output-svg.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/source/fitz/output-svg.c b/source/fitz/output-svg.c
index 40260fae..f8711031 100644
--- a/source/fitz/output-svg.c
+++ b/source/fitz/output-svg.c
@@ -9,12 +9,14 @@ struct fz_svg_writer_s
int count;
fz_output *out;
int text_format;
+ int reuse_images;
};
const char *fz_svg_write_options_usage =
"SVG output options:\n"
"\ttext=text: Emit text as <text> elements (inaccurate fonts).\n"
"\ttext=path: Emit text as <path> elements (accurate fonts).\n"
+ "\tno-reuse-images: Do not reuse images using <symbol> definitions.\n"
"\n"
;
@@ -31,7 +33,7 @@ svg_begin_page(fz_context *ctx, fz_document_writer *wri_, const fz_rect *mediabo
fz_format_output_path(ctx, path, sizeof path, wri->path, wri->count);
wri->out = fz_new_output_with_path(ctx, path, 0);
- return fz_new_svg_device(ctx, wri->out, w, h, wri->text_format);
+ return fz_new_svg_device(ctx, wri->out, w, h, wri->text_format, wri->reuse_images);
}
static void
@@ -65,6 +67,7 @@ fz_new_svg_writer(fz_context *ctx, const char *path, const char *args)
wri->super.drop_writer = svg_drop_writer;
wri->text_format = FZ_SVG_TEXT_AS_PATH;
+ wri->reuse_images = 1;
fz_try(ctx)
{
@@ -75,6 +78,9 @@ fz_new_svg_writer(fz_context *ctx, const char *path, const char *args)
else if (fz_option_eq(val, "path"))
wri->text_format = FZ_SVG_TEXT_AS_PATH;
}
+ if (fz_has_option(ctx, args, "no-reuse-images", &val))
+ if (fz_option_eq(val, "yes"))
+ wri->reuse_images = 0;
wri->path = fz_strdup(ctx, path ? path : "out-%04d.svg");
}
fz_catch(ctx)