{{header}}
{{include ../../xfa_catalog_1_0.fragment}}
{{include ../../xfa_object_2_0.fragment}}
{{include ../../xfa_preamble_3_0.fragment}}
{{include ../../xfa_config_4_0.fragment}}
{{object 5 0}} <<
>>
stream
<template>
  <subform layout="tb" name="my_doc">
    <pageSet id="page" relation="orderedOccurrence">
      <occur initial="1" max="1" min="1"/>
      <pageArea id="Page1" name="Page1">
        <occur max="1" min="1"/>
        <contentArea h="100mm" w="200mm" x="0.25in" y="0.25in"/>
      </pageArea>
      <pageArea id="Page2" name="Page2">
        <occur max="1" min="1"/>
        <contentArea h="100mm" w="200mm" x="0.25in" y="0.25in"/>
      </pageArea>
    </pageSet>
    <event activity="docReady" ref="$host">
      <script contentType="application/x-javascript">
        {{include ../property_test_helpers.js}}
        testROProperty(xfa.layout, "ready", true);
        try {
         xfa.layout.absPage(1);
         xfa.layout.absPageCount();
         xfa.layout.absPageCountInBatch();
         xfa.layout.absPageInBatch(1);
         xfa.layout.absPageSpan(1);
         xfa.layout.h(100, 'pt');
         xfa.layout.page(1);
         xfa.layout.pageContent(1);
         xfa.layout.pageCount();
         xfa.layout.pageSpan(1);
         xfa.layout.relayout();
         xfa.layout.relayoutPageArea();
         xfa.layout.sheet(1);
         xfa.layout.sheetCount();
         xfa.layout.sheetCountInBatch();
         xfa.layout.sheetInBatch(1);
         xfa.layout.w(100, 'px');
         xfa.layout.x(100, 'mm');
         xfa.layout.y(100, 'bogus');
         app.alert("finished testing methods");
        } catch (e) {
          app.alert("error testing methods: " + e);
        }
      </script>
    </event>
  </subform>
</template>
endstream
endobj
{{include ../../xfa_locale_6_0.fragment}}
{{include ../../xfa_postamble_7_0.fragment}}
{{include ../../xfa_pages_8_0.fragment}}
{{xref}}
{{trailer}}
{{startxref}}
%%EOF
