Merge pull request #5012 from Snuffleupagus/issue-5010

Prevent CMapFactory.create from failing by passing the necessary parameters from PartialEvaluator_readToUnicode (issue 5010)
This commit is contained in:
Yury Delendik 2014-07-22 10:54:35 -05:00
commit 53320ce734
5 changed files with 16 additions and 4 deletions

View File

@ -815,7 +815,7 @@ var CMapFactory = (function CMapFactoryClosure() {
if (BUILT_IN_CMAPS.indexOf(name) === -1) { if (BUILT_IN_CMAPS.indexOf(name) === -1) {
error('Unknown cMap name: ' + name); error('Unknown cMap name: ' + name);
} }
assert (builtInCMapParams, 'buildin cmap parameters are not provided'); assert(builtInCMapParams, 'built-in cMap parameters are not provided');
if (builtInCMapParams.packed) { if (builtInCMapParams.packed) {
return parseBinaryCMap(name, builtInCMapParams); return parseBinaryCMap(name, builtInCMapParams);

View File

@ -1224,7 +1224,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
// 9.10.2 // 9.10.2
var toUnicode = (dict.get('ToUnicode') || baseDict.get('ToUnicode')); var toUnicode = (dict.get('ToUnicode') || baseDict.get('ToUnicode'));
if (toUnicode) { if (toUnicode) {
properties.toUnicode = this.readToUnicode(toUnicode, xref, properties); properties.toUnicode = this.readToUnicode(toUnicode);
} }
if (properties.composite) { if (properties.composite) {
// CIDSystemInfo helps to match CID to glyphs // CIDSystemInfo helps to match CID to glyphs
@ -1308,9 +1308,11 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
readToUnicode: function PartialEvaluator_readToUnicode(toUnicode) { readToUnicode: function PartialEvaluator_readToUnicode(toUnicode) {
var cmapObj = toUnicode; var cmapObj = toUnicode;
if (isName(cmapObj)) { if (isName(cmapObj)) {
return CMapFactory.create(cmapObj).map; return CMapFactory.create(cmapObj,
{ url: PDFJS.cMapUrl, packed: PDFJS.cMapPacked }, null).map;
} else if (isStream(cmapObj)) { } else if (isStream(cmapObj)) {
var cmap = CMapFactory.create(cmapObj).map; var cmap = CMapFactory.create(cmapObj,
{ url: PDFJS.cMapUrl, packed: PDFJS.cMapPacked }, null).map;
// Convert UTF-16BE // Convert UTF-16BE
// NOTE: cmap can be a sparse array, so use forEach instead of for(;;) // NOTE: cmap can be a sparse array, so use forEach instead of for(;;)
// to iterate over all keys. // to iterate over all keys.

View File

@ -67,6 +67,7 @@
!noembed-sjis.pdf !noembed-sjis.pdf
!vertical.pdf !vertical.pdf
!bug878026.pdf !bug878026.pdf
!issue5010.pdf
!issue4934.pdf !issue4934.pdf
!issue4650.pdf !issue4650.pdf
!issue3025.pdf !issue3025.pdf

BIN
test/pdfs/issue5010.pdf Normal file

Binary file not shown.

View File

@ -445,6 +445,15 @@
"lastPage": 1, "lastPage": 1,
"type": "eq" "type": "eq"
}, },
{ "id": "issue5010",
"file": "pdfs/issue5010.pdf",
"md5": "419f4b13403a0871c463ec69d96e342c",
"rounds": 1,
"link": false,
"firstPage": 1,
"lastPage": 1,
"type": "eq"
},
{ "id": "issue4934", { "id": "issue4934",
"file": "pdfs/issue4934.pdf", "file": "pdfs/issue4934.pdf",
"md5": "6099da44f677702ae65a648b51a2226d", "md5": "6099da44f677702ae65a648b51a2226d",