finetuned space char detection
[swftools.git] / lib / pdf / GFXOutputDev.cc
index 2596d25..881c75a 100644 (file)
@@ -1457,10 +1457,11 @@ void GFXOutputDev::drawChar(GfxState *state, double x, double y,
               !last_char_was_space) {
                double expected_x = last_char_x + current_gfxfont->glyphs[last_char].advance*m.m00;
                int space = this->current_fontinfo->space_char;
-               if(m.tx - expected_x >= m.m00*64) {
-                   msg("<debug> There's a %f (%f) pixel gap between char %d and char %d, I'm inserting a space here", 
+               float width = this->current_fontinfo->average_advance;
+               if(m.tx - expected_x >= m.m00*width*4/10) {
+                   msg("<debug> There's a %f pixel gap between char %d and char %d (expected no more than %f), I'm inserting a space here", 
                            m.tx-expected_x, 
-                           (m.tx-expected_x)/m.m00,
+                           width*m.m00*4/10,
                            last_char, glyphid);
                    gfxmatrix_t m2 = m;
                    m2.tx = expected_x + (m.tx - expected_x - current_gfxfont->glyphs[space].advance*m.m00)/2;