diff --git a/share/all.css b/share/all.css index 1ec0c4f..5da34eb 100644 --- a/share/all.css +++ b/share/all.css @@ -19,8 +19,6 @@ .l { position:absolute; white-space:pre; - line-height:0; - height:0; font-size:0; transform-origin:0% 0%; -ms-transform-origin:0% 0%; diff --git a/src/HTMLRenderer/install.cc b/src/HTMLRenderer/install.cc index 8036577..c4e43a9 100644 --- a/src/HTMLRenderer/install.cc +++ b/src/HTMLRenderer/install.cc @@ -8,6 +8,7 @@ */ #include +#include #include @@ -18,6 +19,7 @@ #include "namespace.h" using std::all_of; +using std::round; FontInfo HTMLRenderer::install_font(GfxFont * font) { @@ -257,7 +259,10 @@ void HTMLRenderer::install_embedded_font(GfxFont * font, const string & suffix, for(const string & key : {"Win", "Typo", "HHead"}) { - script_fout << "SetOS2Value(\"" << key << "Ascent\", 0)" << endl; + script_fout << format("SetOS2Value(\"%1%Ascent\", %2%)") % key % (int)round(font->getAscent() * 1000) << endl; + script_fout << format("SetOS2Value(\"%1%AscentIsOffset\", 0)") % key << endl; + script_fout << format("SetOS2Value(\"%1%Descent\", %2%)") % key % (int)round(-font->getDescent() * 1000) << endl; + script_fout << format("SetOS2Value(\"%1%DescentIsOffset\", 0)") % key << endl; } script_fout << format("Generate(%1%)") % ((param->single_html ? tmp_dir : dest_dir) / (fn+".ttf")) << endl; if(param->single_html) diff --git a/src/HTMLRenderer/state.cc b/src/HTMLRenderer/state.cc index 3623b3c..a5bb1b9 100644 --- a/src/HTMLRenderer/state.cc +++ b/src/HTMLRenderer/state.cc @@ -352,8 +352,11 @@ void HTMLRenderer::prepare_line(GfxState * state) double x,y; // in user space state->transform(state->getCurX(), state->getCurY(), &x, &y); - html_fout << format("
") - % x % (pageHeight-y) % cur_tm_id; + html_fout << format("
") + % x + % (pageHeight - y - state->getFont()->getAscent() * draw_font_size) + % (y + state->getFont()->getDescent() * draw_font_size) + % cur_tm_id; //resync position draw_ty = cur_ty;