if (ch == '<') {
// dict punctuation
stream.getChar();
- return new Cmd(ch);
+ return new Cmd("<<");
}
return this.getHexString(ch);
// dict punctuation
ch = stream.lookChar();
if (ch == '>') {
stream.getChar();
- return new Cmd(ch);
+ return new Cmd(">>");
}
// fall through
case ')':
this.refill();
if (IsCmd(this.buf1, "[")) { // array
+ this.shift();
var array = [];
while (!IsCmd(this.buf1, "]") && !IsEOF(this.buf1))
array.push(this.getObj());
error("Dictionary key must be a name object");
shift();
} else {
- var key = buf1;
+ var key = this.buf1.name;
this.shift();
if (IsEOF(this.buf1) || IsError(this.buf1))
break;
var obj3 = this.parser.getObj();
this.linDict = this.parser.getObj();
if (IsInt(obj1) && IsInt(obj2) && IsCmd(obj3, "obj") && IsDict(this.linDict)) {
- var obj = this.linDict.lookup("Linearized");
+ var obj = this.linDict.get("Linearized");
if (!(IsNum(obj) && obj > 0))
this.linDict = null;
}
var linDict = this.linDict;
var obj;
if (IsDict(linDict) &&
- IsInt(obj = linDict.lookup(name)) &&
+ IsInt(obj = linDict.get(name)) &&
obj > 0) {
- return length;
+ return obj;
}
error("'" + name + "' field in linearization table is invalid");
return 0;
var linDict = this.linDict;
var obj1, obj2;
if (IsDict(linDict) &&
- IsArray(obj1 = linDict.lookup("H")) &&
+ IsArray(obj1 = linDict.get("H")) &&
obj1.length >= 2 &&
IsInt(obj2 = obj1[index]) &&
obj2 > 0) {
}
function runParseTests() {
- var data = snarf("simple_graphics.pdf", "binary");
+ //var data = snarf("simple_graphics.pdf", "binary");
+ var data = snarf("/tmp/pdf_reference_1-7.pdf", "binary");
var pdf = new PDFDoc(new Stream(data));
}