diff --git a/src/HTMLRenderer/HTMLRenderer.h b/src/HTMLRenderer/HTMLRenderer.h
index abd0bd7..b90a985 100644
--- a/src/HTMLRenderer/HTMLRenderer.h
+++ b/src/HTMLRenderer/HTMLRenderer.h
@@ -270,11 +270,13 @@ class HTMLRenderer : public OutputDev
////////////////////////////////////////////////////
// state tracking
////////////////////////////////////////////////////
+ // reset all states
+ void reset_state();
+ // reset all ***_changed flags
+ void reset_state_change();
// check updated states, and determine new_line_stauts
// make sure this function can be called several times consecutively without problem
void check_state_change(GfxState * state);
- // reset all ***_changed flags
- void reset_state_change();
// prepare the line context, (close old tags, open new tags)
// make sure the current HTML style consistent with PDF
void prepare_text_line(GfxState * state);
diff --git a/src/HTMLRenderer/general.cc b/src/HTMLRenderer/general.cc
index e67237d..bd80031 100644
--- a/src/HTMLRenderer/general.cc
+++ b/src/HTMLRenderer/general.cc
@@ -183,31 +183,8 @@ void HTMLRenderer::startPage(int pageNum, GfxState *state, XRef * xref)
}
f_pages.fs << "\">";
- 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;
+ reset_state();
}
void HTMLRenderer::endPage() {
diff --git a/src/HTMLRenderer/state.cc b/src/HTMLRenderer/state.cc
index 1ceb017..2e10b2c 100644
--- a/src/HTMLRenderer/state.cc
+++ b/src/HTMLRenderer/state.cc
@@ -92,6 +92,51 @@ void HTMLRenderer::updateStrokeColor(GfxState * state)
{
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)
{
// DEPENDENCY WARNING
@@ -341,24 +386,6 @@ void HTMLRenderer::check_state_change(GfxState * state)
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)
{
if(!line_opened)