| {{header}} | 
 | {{object 1 0}} << | 
 |   /Type /Catalog | 
 |   /Pages 2 0 R | 
 |   /OpenAction 10 0 R | 
 | >> | 
 | endobj | 
 | {{object 2 0}} << | 
 |   /Type /Pages | 
 |   /Count 4 | 
 |   /Kids [ | 
 |     3 0 R | 
 |     4 0 R | 
 |     5 0 R | 
 |     6 0 R | 
 |   ] | 
 | >> | 
 | endobj | 
 | % Page number 0. | 
 | {{object 3 0}} << | 
 |   /Type /Page | 
 |   /Parent 2 0 R | 
 |   /Resources << | 
 |     /Font <</F1 15 0 R>> | 
 |   >> | 
 |   /MediaBox [0 0 612 792] | 
 | >> | 
 | endobj | 
 | % Page number 1. | 
 | {{object 4 0}} << | 
 |   /Type /Page | 
 |   /Parent 2 0 R | 
 |   /Resources << | 
 |     /Font <</F1 15 0 R>> | 
 |   >> | 
 |   /MediaBox [0 0 612 792] | 
 | >> | 
 | endobj | 
 | % Page number 2. | 
 | {{object 5 0}} << | 
 |   /Type /Page | 
 |   /Parent 2 0 R | 
 |   /Resources << | 
 |     /Font <</F1 15 0 R>> | 
 |   >> | 
 |   /MediaBox [0 0 612 792] | 
 | >> | 
 | endobj | 
 | % Page number 3. | 
 | {{object 6 0}} << | 
 |   /Type /Page | 
 |   /Parent 2 0 R | 
 |   /Resources << | 
 |     /Font <</F1 15 0 R>> | 
 |   >> | 
 |   /MediaBox [0 0 612 792] | 
 | >> | 
 | endobj | 
 |  | 
 | % Info | 
 | {{object 9 0}} << | 
 |   /Author (Joe Random Author) | 
 |   /Creator (Joe Random Creator) | 
 | >> | 
 | endobj | 
 | % OpenAction action | 
 | {{object 10 0}} << | 
 |   /Type /Action | 
 |   /S /JavaScript | 
 |   /JS 11 0 R | 
 | >> | 
 | endobj | 
 | % JS program to execute | 
 | {{object 11 0}} << | 
 |   {{streamlen}} | 
 | >> | 
 | stream | 
 | var document_props = [ | 
 |   'ADBE', | 
 |   'author', | 
 |   'baseURL', | 
 |   'bookmarkRoot', | 
 |   'calculate', | 
 |   'Collab', | 
 |   'creationDate', | 
 |   'creator', | 
 |   'delay', | 
 |   'dirty', | 
 |   'documentFileName', | 
 |   'external', | 
 |   'filesize', | 
 |   'icons', | 
 |   'info', | 
 |   'keywords', | 
 |   'layout', | 
 |   'media', | 
 |   'modDate', | 
 |   'mouseX', | 
 |   'mouseY', | 
 |   'numFields', | 
 |   'numPages', | 
 |   'pageNum', | 
 |   'pageWindowRect', | 
 |   'path', | 
 |   'producer', | 
 |   'subject', | 
 |   'title', | 
 |   'URL', | 
 |   'zoom', | 
 |   'zoomType', | 
 | ]; | 
 |  | 
 | function testGetProps(props) { | 
 |   app.alert('*** Getting properties ***'); | 
 |   for (var i = 0; i < props.length; ++i) { | 
 |     try { | 
 |       var expr1 = "this." + props[i]; | 
 |       var expr2 = "typeof " + expr1; | 
 |       app.alert(expr1 + " is " + eval(expr2) + ' ' + eval(expr1)); | 
 |     } catch (e) { | 
 |       app.alert("ERROR: " + e.toString()); | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | function testSetProps(props, value) { | 
 |   app.alert('*** Setting properties to ' + value + ' ***'); | 
 |   for (var i = 0; i < props.length; ++i) { | 
 |     try { | 
 |       var expr1 = "this." + props[i] + ' = ' + value + ';' | 
 |       app.alert(expr1 + " yields " + eval(expr1)); | 
 |     } catch (e) { | 
 |       app.alert("ERROR: " + e.toString()); | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | testGetProps(document_props); | 
 | testSetProps(document_props, 'true'); | 
 | testSetProps(document_props, 'false'); | 
 | testSetProps(document_props, '["red", 0, "blue", 42]'); | 
 | testSetProps(document_props, '{"red": 0, "blue": 42}'); | 
 | testSetProps(document_props, '"red"'); | 
 | testSetProps(document_props, '3'); | 
 | testGetProps(document_props); | 
 | endstream | 
 | endobj | 
 | {{xref}} | 
 | trailer << | 
 |   /Root 1 0 R | 
 |   /Info 9 0 R | 
 | >> | 
 | {{startxref}} | 
 | %%EOF |