1
0
mirror of https://github.com/pdf2htmlEX/pdf2htmlEX.git synced 2024-12-22 13:00:08 +00:00

Covered text handling: rename option name to --correct-text-visibility.

This commit is contained in:
Duan Yao 2014-06-27 10:55:56 +08:00
parent ceb4e3eac6
commit 85f04be632
7 changed files with 19 additions and 17 deletions

View File

@ -243,7 +243,7 @@ If set to 0, pdf2htmlEX would try its best to balance the two methods above.
If set to 1, pdf2htmlEX will try to reduce the number of HTML elements used for text. Turn it off if anything goes wrong.
.TP
.B --process-covered-text <0|1> (Default: 0)
.B --correct-text-visibility <0|1> (Default: 0)
If set to 1, pdf2htmlEX will try to detect texts covered by other graphics and properly arrange them,
i.e. covered texts are made transparent in text layer, and are drawn on background layer.

View File

@ -65,7 +65,7 @@ void CairoBackgroundRenderer::drawChar(GfxState *state, double x, double y,
}
// If a char is treated as image, it is not subject to cover test
// (see HTMLRenderer::drawString), so don't increase drawn_char_count.
else if (param.process_covered_text) {
else if (param.correct_text_visibility) {
if (html_renderer->is_char_covered(drawn_char_count))
CairoOutputDev::drawChar(state,x,y,dx,dy,originX,originY,code,nBytes,u,uLen);
drawn_char_count++;

View File

@ -90,7 +90,7 @@ void SplashBackgroundRenderer::drawChar(GfxState *state, double x, double y,
}
// If a char is treated as image, it is not subject to cover test
// (see HTMLRenderer::drawString), so don't increase drawn_char_count.
else if (param.process_covered_text) {
else if (param.correct_text_visibility) {
if (html_renderer->is_char_covered(drawn_char_count))
SplashOutputDev::drawChar(state,x,y,dx,dy,originX,originY,code,nBytes,u,uLen);
drawn_char_count++;

View File

@ -14,7 +14,7 @@
#define DT_DEBUG(x)
#if !ENABLE_SVG
#warning "Cairo is disabled because ENABLE_SVG is off, --process-covered-text has limited functionality."
#warning "Cairo is disabled because ENABLE_SVG is off, --correct-text-visibility has limited functionality."
#endif
namespace pdf2htmlEX
@ -34,7 +34,7 @@ DrawingTracer::~DrawingTracer()
void DrawingTracer::reset(GfxState *state)
{
if (!param.process_covered_text)
if (!param.correct_text_visibility)
return;
finish();
@ -61,7 +61,7 @@ void DrawingTracer::finish()
// and should trace ctm changes ourself (via cairo).
void DrawingTracer::update_ctm(GfxState *state, double m11, double m12, double m21, double m22, double m31, double m32)
{
if (!param.process_covered_text)
if (!param.correct_text_visibility)
return;
#if ENABLE_SVG
@ -78,7 +78,7 @@ void DrawingTracer::update_ctm(GfxState *state, double m11, double m12, double m
void DrawingTracer::clip(GfxState * state, bool even_odd)
{
if (!param.process_covered_text)
if (!param.correct_text_visibility)
return;
#if ENABLE_SVG
do_path(state, state->getPath());
@ -89,14 +89,14 @@ void DrawingTracer::clip(GfxState * state, bool even_odd)
void DrawingTracer::clip_to_stroke_path(GfxState * state)
{
if (!param.process_covered_text)
if (!param.correct_text_visibility)
return;
// TODO cairo_stroke_to_path() ?
}
void DrawingTracer::save()
{
if (!param.process_covered_text)
if (!param.correct_text_visibility)
return;
#if ENABLE_SVG
cairo_save(cairo);
@ -104,7 +104,7 @@ void DrawingTracer::save()
}
void DrawingTracer::restore()
{
if (!param.process_covered_text)
if (!param.correct_text_visibility)
return;
#if ENABLE_SVG
cairo_restore(cairo);
@ -153,7 +153,7 @@ void DrawingTracer::do_path(GfxState * state, GfxPath * path)
void DrawingTracer::stroke(GfxState * state)
{
#if ENABLE_SVG
if (!param.process_covered_text)
if (!param.correct_text_visibility)
return;
DT_DEBUG(printf("DrawingTracer::stroke\n"));
@ -221,7 +221,7 @@ void DrawingTracer::stroke(GfxState * state)
void DrawingTracer::fill(GfxState * state, bool even_odd)
{
if (!param.process_covered_text)
if (!param.correct_text_visibility)
return;
#if ENABLE_SVG
@ -301,7 +301,7 @@ void DrawingTracer::draw_char_bbox(GfxState * state, double * bbox)
void DrawingTracer::draw_image(GfxState *state)
{
if (!param.process_covered_text)
if (!param.correct_text_visibility)
return;
double bbox[4] {0, 0, 1, 1};
draw_non_char_bbox(state, bbox);
@ -309,7 +309,7 @@ void DrawingTracer::draw_image(GfxState *state)
void DrawingTracer::draw_char(GfxState *state, double x, double y, double ax, double ay)
{
if (!param.process_covered_text)
if (!param.correct_text_visibility)
return;
Matrix tm, itm;

View File

@ -508,8 +508,10 @@ void HTMLRenderer::prepare_text_line(GfxState * state)
double rise_x, rise_y;
state->textTransformDelta(0, state->getRise(), &rise_x, &rise_y);
state->transform(state->getCurX() + rise_x, state->getCurY() + rise_y, &cur_line_state.x, &cur_line_state.y);
if (param.process_covered_text)
if (param.correct_text_visibility)
cur_line_state.first_char_index = get_char_count();
html_text_page.open_new_line(cur_line_state);
cur_text_state.vertical_align = 0;

View File

@ -38,7 +38,7 @@ struct Param
int process_nontext;
int process_outline;
int process_annotation;
int process_covered_text;
int correct_text_visibility;
int printing;
int fallback;
int tmp_file_size_limit;

View File

@ -187,7 +187,7 @@ void parse_options (int argc, char **argv)
.add("space-as-offset", &param.space_as_offset, 0, "treat space characters as offsets")
.add("tounicode", &param.tounicode, 0, "how to handle ToUnicode CMaps (0=auto, 1=force, -1=ignore)")
.add("optimize-text", &param.optimize_text, 0, "try to reduce the number of HTML elements used for text")
.add("process-covered-text", &param.process_covered_text, 0, "try to detect texts covered by other graphics and properly arrange them")
.add("correct-text-visibility", &param.correct_text_visibility, 0, "try to detect texts covered by other graphics and properly arrange them")
// background image
.add("bg-format", &param.bg_format, "png", "specify background image format")