mirror of
https://github.com/pdf2htmlEX/pdf2htmlEX.git
synced 2024-12-22 13:00:08 +00:00
working on x offset
This commit is contained in:
parent
9d7046e925
commit
272cf9fa02
@ -12,7 +12,6 @@ echo -n "Converting fonts: "
|
|||||||
|
|
||||||
for f in *.ttf; do
|
for f in *.ttf; do
|
||||||
if [ -f $f ]; then
|
if [ -f $f ]; then
|
||||||
cp $f $f.old
|
|
||||||
fontforge -script "${SCRIPT_DIR}/convert.pe" $f 2>/dev/null
|
fontforge -script "${SCRIPT_DIR}/convert.pe" $f 2>/dev/null
|
||||||
echo -n "."
|
echo -n "."
|
||||||
fi
|
fi
|
||||||
@ -20,7 +19,6 @@ done
|
|||||||
|
|
||||||
for f in *.pfa; do
|
for f in *.pfa; do
|
||||||
if [ -f $f ]; then
|
if [ -f $f ]; then
|
||||||
cp $f $f.old
|
|
||||||
fontforge -script "${SCRIPT_DIR}/convert.pe" $f 2>/dev/null
|
fontforge -script "${SCRIPT_DIR}/convert.pe" $f 2>/dev/null
|
||||||
rm $f
|
rm $f
|
||||||
echo -n "."
|
echo -n "."
|
||||||
|
@ -14,7 +14,7 @@ void BackgroundRenderer::drawChar(GfxState *state, double x, double y,
|
|||||||
CharCode code, int nBytes, Unicode *u, int uLen)
|
CharCode code, int nBytes, Unicode *u, int uLen)
|
||||||
{
|
{
|
||||||
auto font = state->getFont();
|
auto font = state->getFont();
|
||||||
if((font->getType() == fontType3) || (font->getWMode()))
|
if((font->getType() == fontType3) || (font->getWMode()) || (uLen == 0))
|
||||||
{
|
{
|
||||||
SplashOutputDev::drawChar(state, x, y, dx, dy, originX, originY, code, nBytes, u, uLen);
|
SplashOutputDev::drawChar(state, x, y, dx, dy, originX, originY, code, nBytes, u, uLen);
|
||||||
}
|
}
|
||||||
|
@ -206,6 +206,9 @@ void HTMLRenderer::drawString(GfxState * state, GooString * s)
|
|||||||
// if the line is still open, try to merge with it
|
// if the line is still open, try to merge with it
|
||||||
if(line_opened)
|
if(line_opened)
|
||||||
{
|
{
|
||||||
|
//debug
|
||||||
|
html_fout << "<span data-x=\"" << cur_tx << "\"></span>";
|
||||||
|
|
||||||
double target = -cur_line_x_offset * draw_scale;
|
double target = -cur_line_x_offset * draw_scale;
|
||||||
if(target > -param->h_eps)
|
if(target > -param->h_eps)
|
||||||
{
|
{
|
||||||
@ -213,17 +216,17 @@ void HTMLRenderer::drawString(GfxState * state, GooString * s)
|
|||||||
{
|
{
|
||||||
double w;
|
double w;
|
||||||
auto wid = install_whitespace(target, w);
|
auto wid = install_whitespace(target, w);
|
||||||
cur_tx += w / draw_scale;
|
|
||||||
cur_line_x_offset = (w - target) / draw_scale;
|
cur_line_x_offset = (w - target) / draw_scale;
|
||||||
html_fout << boost::format("<span class=\"w w%|1$x|\"> </span>") % wid;
|
html_fout << boost::format("<span class=\"w w%|1$x|\"> </span>") % wid;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
//debug
|
||||||
|
html_fout << "<span data-w=\"" << target << "\"></span>";
|
||||||
|
|
||||||
// can we shift left using simple tags?
|
// can we shift left using simple tags?
|
||||||
close_cur_line();
|
close_cur_line();
|
||||||
cur_tx = state->getLineX();
|
|
||||||
cur_line_x_offset = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -270,6 +273,8 @@ void HTMLRenderer::drawString(GfxState * state, GooString * s)
|
|||||||
html_fout << "\">";
|
html_fout << "\">";
|
||||||
|
|
||||||
line_opened = true;
|
line_opened = true;
|
||||||
|
|
||||||
|
cur_line_x_offset = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -691,7 +696,7 @@ void HTMLRenderer::export_remote_font(long long fn_id, const string & suffix, Gf
|
|||||||
// TODO: this function is called when some font is unable to process, may use the name there as a hint
|
// TODO: this function is called when some font is unable to process, may use the name there as a hint
|
||||||
void HTMLRenderer::export_remote_default_font(long long fn_id)
|
void HTMLRenderer::export_remote_default_font(long long fn_id)
|
||||||
{
|
{
|
||||||
allcss_fout << boost::format(".f%|1$x|{font-family:sans-serif;color:transparent;}")%fn_id;
|
allcss_fout << boost::format(".f%|1$x|{font-family:sans-serif;color:transparent;visibility:hidden;}")%fn_id;
|
||||||
if(param->readable) allcss_fout << endl;
|
if(param->readable) allcss_fout << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -802,7 +807,8 @@ void HTMLRenderer::check_state_change(GfxState * state)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// LineY remains unchanged
|
// LineY remains unchanged
|
||||||
cur_line_x_offset += cur_tx - tx;
|
cur_line_x_offset = cur_tx - tx;
|
||||||
|
cur_tx = tx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,7 +97,11 @@ class HTMLRenderer : public OutputDev
|
|||||||
virtual void updateTextMat(GfxState * state) { text_mat_changed = true; }
|
virtual void updateTextMat(GfxState * state) { text_mat_changed = true; }
|
||||||
virtual void updateCTM(GfxState * state, double m11, double m12, double m21, double m22, double m31, double m32) { ctm_changed = true; }
|
virtual void updateCTM(GfxState * state, double m11, double m12, double m21, double m22, double m31, double m32) { ctm_changed = true; }
|
||||||
virtual void updateTextPos(GfxState * state) { line_pos_changed = true; }
|
virtual void updateTextPos(GfxState * state) { line_pos_changed = true; }
|
||||||
virtual void updateTextShift(GfxState * state, double shift) { cur_line_x_offset += shift * 0.001 * state->getFontSize() * state->getHorizScaling(); }
|
virtual void updateTextShift(GfxState * state, double shift) {
|
||||||
|
double off = shift * 0.001 * state->getFontSize() * state->getHorizScaling();
|
||||||
|
cur_line_x_offset += off;
|
||||||
|
cur_tx -= off;
|
||||||
|
}
|
||||||
virtual void updateFillColor(GfxState * state) { color_changed = true; }
|
virtual void updateFillColor(GfxState * state) { color_changed = true; }
|
||||||
|
|
||||||
//----- text drawing
|
//----- text drawing
|
||||||
|
Loading…
Reference in New Issue
Block a user