diff --git a/src/HTMLRenderer/HTMLRenderer.h b/src/HTMLRenderer/HTMLRenderer.h index b916155..04b190a 100644 --- a/src/HTMLRenderer/HTMLRenderer.h +++ b/src/HTMLRenderer/HTMLRenderer.h @@ -45,7 +45,8 @@ * * Cd - CSS Draw * - * Reusable CSS classes + * Numbered CSS classes + * See also: HTMLRenderer::TextLineBuffer::format_str * * t - Transform matrix * f - Font (also for font names) @@ -56,6 +57,7 @@ * _ - white space * r - Rise * h - Height + * L - Left * */ @@ -230,6 +232,7 @@ class HTMLRenderer : public OutputDev long long install_whitespace(double ws_width, double & actual_width); long long install_rise(double rise); long long install_height(double height); + long long install_left(double left); //////////////////////////////////////////////////// // export css styles @@ -250,6 +253,7 @@ class HTMLRenderer : public OutputDev void export_whitespace(long long ws_id, double ws_width); void export_rise(long long rise_id, double rise); void export_height(long long height_id, double height); + void export_left(long long left_id, double left); // depending on single-html, to embed the content or add a link to it // "type": specify the file type, usually it's the suffix, in which case this parameter could be "" @@ -417,6 +421,7 @@ class HTMLRenderer : public OutputDev std::map whitespace_map; std::map rise_map; std::map height_map; + std::map left_map; const Param * param; std::ofstream html_fout, css_fout; diff --git a/src/HTMLRenderer/TextLineBuffer.cc b/src/HTMLRenderer/TextLineBuffer.cc index a3ecc52..4c17afe 100644 --- a/src/HTMLRenderer/TextLineBuffer.cc +++ b/src/HTMLRenderer/TextLineBuffer.cc @@ -84,11 +84,12 @@ void HTMLRenderer::TextLineBuffer::flush(void) } ostream & out = renderer->html_fout; - out << "
install_left(x) << " h" << renderer->install_height(max_ascent) << "\">"; diff --git a/src/HTMLRenderer/export.cc b/src/HTMLRenderer/export.cc index da6e40c..ef69417 100644 --- a/src/HTMLRenderer/export.cc +++ b/src/HTMLRenderer/export.cc @@ -166,5 +166,9 @@ void HTMLRenderer::export_height (long long height_id, double height) { css_fout << ".h" << height_id << "{height:" << round(height) << "px;}" << endl; } +void HTMLRenderer::export_left (long long left_id, double left) +{ + css_fout << ".L" << left_id << "{left:" << round(left) << "px;}" << endl; +} } diff --git a/src/HTMLRenderer/install.cc b/src/HTMLRenderer/install.cc index b540434..4dac8d2 100644 --- a/src/HTMLRenderer/install.cc +++ b/src/HTMLRenderer/install.cc @@ -321,5 +321,18 @@ long long HTMLRenderer::install_height(double height) export_height(new_height_id, height); return new_height_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