@ -47,6 +47,7 @@ var shadow = sharedUtil.shadow;
var stringToPDFString = sharedUtil . stringToPDFString ;
var stringToPDFString = sharedUtil . stringToPDFString ;
var stringToUTF8String = sharedUtil . stringToUTF8String ;
var stringToUTF8String = sharedUtil . stringToUTF8String ;
var warn = sharedUtil . warn ;
var warn = sharedUtil . warn ;
var isValidUrl = sharedUtil . isValidUrl ;
var Ref = corePrimitives . Ref ;
var Ref = corePrimitives . Ref ;
var RefSet = corePrimitives . RefSet ;
var RefSet = corePrimitives . RefSet ;
var RefSetCache = corePrimitives . RefSetCache ;
var RefSetCache = corePrimitives . RefSetCache ;
@ -146,9 +147,17 @@ var Catalog = (function CatalogClosure() {
if ( ! outlineDict . has ( 'Title' ) ) {
if ( ! outlineDict . has ( 'Title' ) ) {
error ( 'Invalid outline item' ) ;
error ( 'Invalid outline item' ) ;
}
}
var dest = outlineDict . get ( 'A' ) ;
var actionDict = outlineDict . get ( 'A' ) , dest = null , url = null ;
if ( dest ) {
if ( actionDict ) {
dest = dest . get ( 'D' ) ;
var destEntry = actionDict . get ( 'D' ) ;
if ( destEntry ) {
dest = destEntry ;
} else {
var uriEntry = actionDict . get ( 'URI' ) ;
if ( isString ( uriEntry ) && isValidUrl ( uriEntry , false ) ) {
url = uriEntry ;
}
}
} else if ( outlineDict . has ( 'Dest' ) ) {
} else if ( outlineDict . has ( 'Dest' ) ) {
dest = outlineDict . getRaw ( 'Dest' ) ;
dest = outlineDict . getRaw ( 'Dest' ) ;
if ( isName ( dest ) ) {
if ( isName ( dest ) ) {
@ -158,6 +167,7 @@ var Catalog = (function CatalogClosure() {
var title = outlineDict . get ( 'Title' ) ;
var title = outlineDict . get ( 'Title' ) ;
var outlineItem = {
var outlineItem = {
dest : dest ,
dest : dest ,
url : url ,
title : stringToPDFString ( title ) ,
title : stringToPDFString ( title ) ,
color : outlineDict . get ( 'C' ) || [ 0 , 0 , 0 ] ,
color : outlineDict . get ( 'C' ) || [ 0 , 0 , 0 ] ,
count : outlineDict . get ( 'Count' ) ,
count : outlineDict . get ( 'Count' ) ,