Browse Source

Add upper-case `I` as a possible space replacement fallback in `Font.spaceWidth` to improve text-selection (issue 7180)

In fonts with only upper-case glyphs, that are also missing a space glyph, `get spaceWidth` won't be able to return anything useful.
By adding upper-case `I` as a fallback, we can thus improve text-selection in some PDF files.
Note that locally, the patch causes slight movement in a few existing `text` tests, but in my opinion this actually looks like slight improvements.

Fixes 7180.
Jonas Jenwald 9 years ago
parent
commit
6a0b047bfa
  1. 2
      src/core/fonts.js
  2. 1
      test/pdfs/.gitignore
  3. BIN
      test/pdfs/issue7180.pdf
  4. 7
      test/test_manifest.json

2
src/core/fonts.js

@ -2650,7 +2650,7 @@ var Font = (function FontClosure() { @@ -2650,7 +2650,7 @@ var Font = (function FontClosure() {
}
// trying to estimate space character width
var possibleSpaceReplacements = ['space', 'minus', 'one', 'i'];
var possibleSpaceReplacements = ['space', 'minus', 'one', 'i', 'I'];
var width;
for (var i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {
var glyphName = possibleSpaceReplacements[i];

1
test/pdfs/.gitignore vendored

@ -24,6 +24,7 @@ @@ -24,6 +24,7 @@
!issue7020.pdf
!issue7101.pdf
!issue7115.pdf
!issue7180.pdf
!issue7200.pdf
!issue7229.pdf
!filled-background.pdf

BIN
test/pdfs/issue7180.pdf

Binary file not shown.

7
test/test_manifest.json

@ -1555,6 +1555,13 @@ @@ -1555,6 +1555,13 @@
"link": false,
"type": "eq"
},
{ "id": "issue7180-text",
"file": "pdfs/issue7180.pdf",
"md5": "73ed92d7ca55475f1f31d1d75fee3283",
"rounds": 1,
"link": false,
"type": "text"
},
{
"id": "bug1123803",
"file": "pdfs/bug1123803.pdf",

Loading…
Cancel
Save