mirror of
https://github.com/pdf2htmlEX/pdf2htmlEX.git
synced 2024-07-07 18:30:34 +00:00
create separate reset_state func
This commit is contained in:
parent
a6cde2f17e
commit
f4de5a298b
|
@ -270,11 +270,13 @@ class HTMLRenderer : public OutputDev
|
||||||
////////////////////////////////////////////////////
|
////////////////////////////////////////////////////
|
||||||
// state tracking
|
// state tracking
|
||||||
////////////////////////////////////////////////////
|
////////////////////////////////////////////////////
|
||||||
|
// reset all states
|
||||||
|
void reset_state();
|
||||||
|
// reset all ***_changed flags
|
||||||
|
void reset_state_change();
|
||||||
// check updated states, and determine new_line_stauts
|
// check updated states, and determine new_line_stauts
|
||||||
// make sure this function can be called several times consecutively without problem
|
// make sure this function can be called several times consecutively without problem
|
||||||
void check_state_change(GfxState * state);
|
void check_state_change(GfxState * state);
|
||||||
// reset all ***_changed flags
|
|
||||||
void reset_state_change();
|
|
||||||
// prepare the line context, (close old tags, open new tags)
|
// prepare the line context, (close old tags, open new tags)
|
||||||
// make sure the current HTML style consistent with PDF
|
// make sure the current HTML style consistent with PDF
|
||||||
void prepare_text_line(GfxState * state);
|
void prepare_text_line(GfxState * state);
|
||||||
|
|
|
@ -183,31 +183,8 @@ void HTMLRenderer::startPage(int pageNum, GfxState *state, XRef * xref)
|
||||||
}
|
}
|
||||||
|
|
||||||
f_pages.fs << "\">";
|
f_pages.fs << "\">";
|
||||||
draw_text_scale = 1.0;
|
|
||||||
|
|
||||||
cur_font_info = install_font(nullptr);
|
reset_state();
|
||||||
cur_font_size = draw_font_size = 0;
|
|
||||||
cur_fs_id = install_font_size(cur_font_size);
|
|
||||||
|
|
||||||
memcpy(cur_text_tm, ID_MATRIX, sizeof(cur_text_tm));
|
|
||||||
memcpy(draw_text_tm, ID_MATRIX, sizeof(draw_text_tm));
|
|
||||||
cur_ttm_id = install_transform_matrix(draw_text_tm);
|
|
||||||
|
|
||||||
cur_letter_space = cur_word_space = 0;
|
|
||||||
cur_ls_id = install_letter_space(cur_letter_space);
|
|
||||||
cur_ws_id = install_word_space(cur_word_space);
|
|
||||||
|
|
||||||
cur_color.r = cur_color.g = cur_color.b = 0;
|
|
||||||
cur_color_id = install_color(&cur_color);
|
|
||||||
|
|
||||||
cur_rise = 0;
|
|
||||||
cur_rise_id = install_rise(cur_rise);
|
|
||||||
|
|
||||||
cur_tx = cur_ty = 0;
|
|
||||||
draw_tx = draw_ty = 0;
|
|
||||||
|
|
||||||
reset_state_change();
|
|
||||||
all_changed = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HTMLRenderer::endPage() {
|
void HTMLRenderer::endPage() {
|
||||||
|
|
|
@ -92,6 +92,51 @@ void HTMLRenderer::updateStrokeColor(GfxState * state)
|
||||||
{
|
{
|
||||||
color_changed = true;
|
color_changed = true;
|
||||||
}
|
}
|
||||||
|
void HTMLRenderer::reset_state()
|
||||||
|
{
|
||||||
|
draw_text_scale = 1.0;
|
||||||
|
|
||||||
|
cur_font_info = install_font(nullptr);
|
||||||
|
cur_font_size = draw_font_size = 0;
|
||||||
|
cur_fs_id = install_font_size(cur_font_size);
|
||||||
|
|
||||||
|
memcpy(cur_text_tm, ID_MATRIX, sizeof(cur_text_tm));
|
||||||
|
memcpy(draw_text_tm, ID_MATRIX, sizeof(draw_text_tm));
|
||||||
|
cur_ttm_id = install_transform_matrix(draw_text_tm);
|
||||||
|
|
||||||
|
cur_letter_space = cur_word_space = 0;
|
||||||
|
cur_ls_id = install_letter_space(cur_letter_space);
|
||||||
|
cur_ws_id = install_word_space(cur_word_space);
|
||||||
|
|
||||||
|
cur_color.r = cur_color.g = cur_color.b = 0;
|
||||||
|
cur_color_id = install_color(&cur_color);
|
||||||
|
|
||||||
|
cur_rise = 0;
|
||||||
|
cur_rise_id = install_rise(cur_rise);
|
||||||
|
|
||||||
|
cur_tx = cur_ty = 0;
|
||||||
|
draw_tx = draw_ty = 0;
|
||||||
|
|
||||||
|
reset_state_change();
|
||||||
|
all_changed = true;
|
||||||
|
}
|
||||||
|
void HTMLRenderer::reset_state_change()
|
||||||
|
{
|
||||||
|
all_changed = false;
|
||||||
|
|
||||||
|
rise_changed = false;
|
||||||
|
text_pos_changed = false;
|
||||||
|
|
||||||
|
font_changed = false;
|
||||||
|
ctm_changed = false;
|
||||||
|
text_mat_changed = false;
|
||||||
|
hori_scale_changed = false;
|
||||||
|
|
||||||
|
letter_space_changed = false;
|
||||||
|
word_space_changed = false;
|
||||||
|
|
||||||
|
color_changed = false;
|
||||||
|
}
|
||||||
void HTMLRenderer::check_state_change(GfxState * state)
|
void HTMLRenderer::check_state_change(GfxState * state)
|
||||||
{
|
{
|
||||||
// DEPENDENCY WARNING
|
// DEPENDENCY WARNING
|
||||||
|
@ -341,24 +386,6 @@ void HTMLRenderer::check_state_change(GfxState * state)
|
||||||
|
|
||||||
reset_state_change();
|
reset_state_change();
|
||||||
}
|
}
|
||||||
|
|
||||||
void HTMLRenderer::reset_state_change()
|
|
||||||
{
|
|
||||||
all_changed = false;
|
|
||||||
|
|
||||||
rise_changed = false;
|
|
||||||
text_pos_changed = false;
|
|
||||||
|
|
||||||
font_changed = false;
|
|
||||||
ctm_changed = false;
|
|
||||||
text_mat_changed = false;
|
|
||||||
hori_scale_changed = false;
|
|
||||||
|
|
||||||
letter_space_changed = false;
|
|
||||||
word_space_changed = false;
|
|
||||||
|
|
||||||
color_changed = false;
|
|
||||||
}
|
|
||||||
void HTMLRenderer::prepare_text_line(GfxState * state)
|
void HTMLRenderer::prepare_text_line(GfxState * state)
|
||||||
{
|
{
|
||||||
if(!line_opened)
|
if(!line_opened)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user