Merge pull request #861 from notmasteryet/issue-840
(#840) fix font stretching and overlapping characters encoding
This commit is contained in:
commit
c0291e9fa3
@ -575,7 +575,7 @@ var CanvasGraphics = (function canvasGraphics() {
|
|||||||
ctx.scale(1, -1);
|
ctx.scale(1, -1);
|
||||||
ctx.translate(current.x, -1 * current.y);
|
ctx.translate(current.x, -1 * current.y);
|
||||||
ctx.transform.apply(ctx, fontMatrix);
|
ctx.transform.apply(ctx, fontMatrix);
|
||||||
ctx.scale(1 / textHScale, 1);
|
ctx.scale(textHScale, 1);
|
||||||
},
|
},
|
||||||
getTextGeometry: function canvasGetTextGeometry() {
|
getTextGeometry: function canvasGetTextGeometry() {
|
||||||
var geometry = {};
|
var geometry = {};
|
||||||
@ -651,7 +651,7 @@ var CanvasGraphics = (function canvasGraphics() {
|
|||||||
ctx.transform.apply(ctx, current.textMatrix);
|
ctx.transform.apply(ctx, current.textMatrix);
|
||||||
ctx.translate(current.x, current.y);
|
ctx.translate(current.x, current.y);
|
||||||
|
|
||||||
ctx.scale(1 / textHScale, 1);
|
ctx.scale(textHScale, 1);
|
||||||
for (var i = 0; i < glyphsLength; ++i) {
|
for (var i = 0; i < glyphsLength; ++i) {
|
||||||
|
|
||||||
var glyph = glyphs[i];
|
var glyph = glyphs[i];
|
||||||
|
16
src/fonts.js
16
src/fonts.js
@ -1705,10 +1705,18 @@ var Font = (function Font() {
|
|||||||
|
|
||||||
var cidToGidMap = properties.cidToGidMap || [];
|
var cidToGidMap = properties.cidToGidMap || [];
|
||||||
var gidToCidMap = [0];
|
var gidToCidMap = [0];
|
||||||
for (var j = cidToGidMap.length - 1; j >= 0; j--) {
|
if (cidToGidMap.length > 0) {
|
||||||
var gid = cidToGidMap[j];
|
for (var j = cidToGidMap.length - 1; j >= 0; j--) {
|
||||||
if (gid)
|
var gid = cidToGidMap[j];
|
||||||
gidToCidMap[gid] = j;
|
if (gid)
|
||||||
|
gidToCidMap[gid] = j;
|
||||||
|
}
|
||||||
|
// filling the gaps using CID above the CIDs currently used in font
|
||||||
|
var nextCid = cidToGidMap.length;
|
||||||
|
for (var i = 1; i < numGlyphs; i++) {
|
||||||
|
if (!gidToCidMap[i])
|
||||||
|
gidToCidMap[i] = nextCid++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var glyphs = [], ids = [];
|
var glyphs = [], ids = [];
|
||||||
|
1
test/pdfs/.gitignore
vendored
1
test/pdfs/.gitignore
vendored
@ -16,3 +16,4 @@
|
|||||||
!alphatrans.pdf
|
!alphatrans.pdf
|
||||||
!devicen.pdf
|
!devicen.pdf
|
||||||
!cmykjpeg.pdf
|
!cmykjpeg.pdf
|
||||||
|
!issue840.pdf
|
||||||
|
BIN
test/pdfs/issue840.pdf
Normal file
BIN
test/pdfs/issue840.pdf
Normal file
Binary file not shown.
@ -290,5 +290,11 @@
|
|||||||
"link": true,
|
"link": true,
|
||||||
"rounds": 1,
|
"rounds": 1,
|
||||||
"type": "eq"
|
"type": "eq"
|
||||||
|
},
|
||||||
|
{ "id": "issue840",
|
||||||
|
"file": "pdfs/issue840.pdf",
|
||||||
|
"md5": "20d88011dd7e3c4fb5274979094dab93",
|
||||||
|
"rounds": 1,
|
||||||
|
"type": "eq"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user