summaryrefslogtreecommitdiff
path: root/source/tools/mudraw.c
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2017-08-01 14:19:30 +0200
committerTor Andersson <tor.andersson@artifex.com>2017-08-09 14:02:19 +0200
commit72e05eaace2fdb3b118b57f6d331054127c46fc5 (patch)
tree75dd2425f9a18eb462d40e7f63d4f50797150695 /source/tools/mudraw.c
parenta8d0c8aaea42eb81332d956eb1ec4883d44bb369 (diff)
downloadmupdf-72e05eaace2fdb3b118b57f6d331054127c46fc5.tar.xz
Add XHTML output format to mudraw.
Diffstat (limited to 'source/tools/mudraw.c')
-rw-r--r--source/tools/mudraw.c19
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);