diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2017-08-01 14:19:30 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2017-08-09 14:02:19 +0200 |
commit | 72e05eaace2fdb3b118b57f6d331054127c46fc5 (patch) | |
tree | 75dd2425f9a18eb462d40e7f63d4f50797150695 | |
parent | a8d0c8aaea42eb81332d956eb1ec4883d44bb369 (diff) | |
download | mupdf-72e05eaace2fdb3b118b57f6d331054127c46fc5.tar.xz |
Add XHTML output format to mudraw.
-rw-r--r-- | source/tools/mudraw.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/source/tools/mudraw.c b/source/tools/mudraw.c index 17338307..de05ab65 100644 --- a/source/tools/mudraw.c +++ b/source/tools/mudraw.c @@ -31,7 +31,7 @@ enum { OUT_NONE, OUT_PNG, OUT_TGA, OUT_PNM, OUT_PGM, OUT_PPM, OUT_PAM, OUT_PBM, OUT_PKM, OUT_PWG, OUT_PCL, OUT_PS, OUT_PSD, - OUT_TEXT, OUT_HTML, OUT_STEXT, + OUT_TEXT, OUT_HTML, OUT_XHTML, OUT_STEXT, OUT_TRACE, OUT_SVG, #if FZ_ENABLE_PDF OUT_PDF, @@ -70,6 +70,7 @@ static const suffix_t suffix_table[] = { ".txt", OUT_TEXT, 0 }, { ".text", OUT_TEXT, 0 }, { ".html", OUT_HTML, 0 }, + { ".xhtml", OUT_XHTML, 0 }, { ".stext", OUT_STEXT, 0 }, { ".trace", OUT_TRACE, 0 }, @@ -131,6 +132,7 @@ static const format_cs_table_t format_cs_table[] = { OUT_TEXT, CS_RGB, { CS_RGB } }, { OUT_HTML, CS_RGB, { CS_RGB } }, + { OUT_XHTML, CS_RGB, { CS_RGB } }, { OUT_STEXT, CS_RGB, { CS_RGB } }, }; @@ -389,11 +391,13 @@ file_level_headers(fz_context *ctx) if (output_format == OUT_STEXT || output_format == OUT_TRACE) fz_write_printf(ctx, out, "<?xml version=\"1.0\"?>\n"); - if (output_format == OUT_TEXT || output_format == OUT_HTML || output_format == OUT_STEXT) + if (output_format == OUT_TEXT || output_format == OUT_HTML || output_format == OUT_XHTML || output_format == OUT_STEXT) sheet = fz_new_stext_sheet(ctx); if (output_format == OUT_HTML) fz_print_stext_header_as_html(ctx, out); + if (output_format == OUT_XHTML) + fz_print_stext_header_as_xhtml(ctx, out); if (output_format == OUT_STEXT || output_format == OUT_TRACE) fz_write_printf(ctx, out, "<document name=\"%s\">\n", filename); @@ -413,6 +417,8 @@ file_level_trailers(fz_context *ctx) if (output_format == OUT_HTML) fz_print_stext_trailer_as_html(ctx, out); + if (output_format == OUT_XHTML) + fz_print_stext_trailer_as_xhtml(ctx, out); if (output_format == OUT_PS) fz_write_ps_file_trailer(ctx, out, output_pagenum); @@ -516,7 +522,7 @@ static void dodrawpage(fz_context *ctx, fz_page *page, fz_display_list *list, in } } - else if (output_format == OUT_TEXT || output_format == OUT_HTML || output_format == OUT_STEXT) + else if (output_format == OUT_TEXT || output_format == OUT_HTML || output_format == OUT_XHTML || output_format == OUT_STEXT) { fz_stext_page *text = NULL; @@ -526,7 +532,7 @@ static void dodrawpage(fz_context *ctx, fz_page *page, fz_display_list *list, in { fz_stext_options stext_options; - stext_options.flags = (output_format == OUT_HTML) ? FZ_STEXT_PRESERVE_IMAGES : 0; + stext_options.flags = (output_format == OUT_HTML || output_format == OUT_XHTML) ? FZ_STEXT_PRESERVE_IMAGES : 0; text = fz_new_stext_page(ctx, &mediabox); dev = fz_new_stext_device(ctx, sheet, text, &stext_options); if (lowmemory) @@ -547,6 +553,11 @@ static void dodrawpage(fz_context *ctx, fz_page *page, fz_display_list *list, in fz_analyze_text(ctx, sheet, text); fz_print_stext_page_as_html(ctx, out, text); } + else if (output_format == OUT_XHTML) + { + fz_analyze_text(ctx, sheet, text); + fz_print_stext_page_as_xhtml(ctx, out, text); + } else if (output_format == OUT_TEXT) { fz_print_stext_page_as_text(ctx, out, text); |