left_map;
const Param * param;
diff --git a/src/HTMLRenderer/TextLineBuffer.cc b/src/HTMLRenderer/TextLineBuffer.cc
index 857275d..114be9b 100644
--- a/src/HTMLRenderer/TextLineBuffer.cc
+++ b/src/HTMLRenderer/TextLineBuffer.cc
@@ -84,13 +84,14 @@ void HTMLRenderer::TextLineBuffer::flush(void)
ostream & out = renderer->f_pages.fs;
renderer->height_manager.install(max_ascent);
+ renderer->left_manager.install(x);
out << "install_left(x)
+ << " L" << renderer->left_manager.get_id()
<< " h" << renderer->height_manager.get_id()
<< "\">";
diff --git a/src/HTMLRenderer/export.cc b/src/HTMLRenderer/export.cc
index 2fed1d8..045b499 100644
--- a/src/HTMLRenderer/export.cc
+++ b/src/HTMLRenderer/export.cc
@@ -185,20 +185,7 @@ void HTMLRenderer::export_stroke_color (long long color_id, const GfxRGB * rgb)
// WebKit
f_css.fs << "@media screen and (-webkit-min-device-pixel-ratio:0) {";
f_css.fs << ".C" << color_id << "{-webkit-text-stroke: 0.015em " << *rgb << ";text-shadow: none;}";
- f_css.fs << "}";
-}
-
-void HTMLRenderer::export_whitespace (long long ws_id, double ws_width)
-{
- if(ws_width > 0)
- f_css.fs << "._" << ws_id << "{display:inline-block;width:" << round(ws_width) << "px;}" << endl;
- else
- f_css.fs << "._" << ws_id << "{display:inline;margin-left:" << round(ws_width) << "px;}" << endl;
-}
-
-void HTMLRenderer::export_left (long long left_id, double left)
-{
- f_css.fs << ".L" << left_id << "{left:" << round(left) << "px;}" << endl;
+ f_css.fs << "}" << endl;
}
}
diff --git a/src/HTMLRenderer/general.cc b/src/HTMLRenderer/general.cc
index eddc8c3..41414c5 100644
--- a/src/HTMLRenderer/general.cc
+++ b/src/HTMLRenderer/general.cc
@@ -62,6 +62,7 @@ HTMLRenderer::HTMLRenderer(const Param * param)
rise_manager .set_param(CSS::RISE_CN , param->v_eps);
whitespace_manager .set_param(CSS::WHITESPACE_CN , param->h_eps);
height_manager .set_param(CSS::HEIGHT_CN , EPS );
+ left_manager .set_param(CSS::LEFT_CN , param->h_eps);
}
HTMLRenderer::~HTMLRenderer()
@@ -345,6 +346,7 @@ void HTMLRenderer::post_process()
rise_manager .dump_css(f_css.fs);
whitespace_manager .dump_css(f_css.fs);
height_manager .dump_css(f_css.fs);
+ left_manager .dump_css(f_css.fs);
// close files
f_outline.fs.close();
diff --git a/src/HTMLRenderer/install.cc b/src/HTMLRenderer/install.cc
index 2d851a5..462d393 100644
--- a/src/HTMLRenderer/install.cc
+++ b/src/HTMLRenderer/install.cc
@@ -263,18 +263,4 @@ long long HTMLRenderer::install_stroke_color(const GfxRGB * rgb)
return new_color_id;
}
-long long HTMLRenderer::install_left(double left)
-{
- auto iter = left_map.lower_bound(left - param->h_eps);
- if((iter != left_map.end()) && (abs(iter->first - left) <= param->h_eps))
- {
- return iter->second;
- }
-
- long long new_left_id = left_map.size();
- left_map.insert(make_pair(left, new_left_id));
- export_left(new_left_id, left);
- return new_left_id;
-}
-
} // namespace pdf2htmlEX
diff --git a/src/util/StateManager.h b/src/util/StateManager.h
index 26044be..7c5e10c 100644
--- a/src/util/StateManager.h
+++ b/src/util/StateManager.h
@@ -125,7 +125,11 @@ class WhitespaceManager : public StateManager
{
public:
double default_value(void) { return 0; }
- void dump_value(std::ostream & out, double value) { out << "top:" << round(-value) << "px;"; }
+ void dump_value(std::ostream & out, double value) {
+ out << ((value > 0) ? "display:inline-block;width:"
+ : "display:inline;margin-left:")
+ << round(value) << "px;";
+ }
};
class HeightManager : public StateManager
@@ -135,6 +139,13 @@ public:
void dump_value(std::ostream & out, double value) { out << "height:" << round(value) << "px;"; }
};
+class LeftManager : public StateManager
+{
+public:
+ double default_value(void) { return 0; }
+ void dump_value(std::ostream & out, double value) { out << "left:" << round(value) << "px;"; }
+};
+
} // namespace pdf2htmlEX
#endif //STATEMANAGER_H__