- /*************************************************************************
- *
- * ADOBE CONFIDENTIAL
- * ___________________
- *
- * Copyright 2014 Adobe Systems Incorporated
- * All Rights Reserved.
- *
- * NOTICE: All information contained herein is, and remains
- * the property of Adobe Systems Incorporated and its suppliers,
- * if any. The intellectual and technical concepts contained
- * herein are proprietary to Adobe Systems Incorporated and its
- * suppliers and are protected by trade secret or copyright law.
- * Dissemination of this information or reproduction of this material
- * is strictly forbidden unless prior written permission is obtained
- * from Adobe Systems Incorporated.
- *
- **************************************************************************/
-
- /**
- * The Doc object provides the interface between a PDF document open in the viewer and the
- * JavaScript interpreter. It provides methods and properties for accessing the PDF document.
- *
- * @class Doc
- */
-
- /**
- * The total number of fields in the document.
- *
- * @property numFields
- * @type {Number}
- * @readonly
- */
- Object.defineProperty(this, 'numFields',
- {
- get: function()
- {
- return ARJavaScriptDoc.numFields;
- }
- });
-
- /**
- * Gets or sets the current page of the document. When setting pageNum to a specific
- * page, remember that the values are 0-based.
- *
- * @property pageNum
- * @type {Number}
- */
- Object.defineProperty(this, 'pageNum',
- {
- // Usage of pageNum has been replaced with pageIndex in the codebase. The Objective-C protocol now exposes pageIndex property instead of pageNum property.
- get: function()
- {
- return ARJavaScriptDoc.pageIndex;
- },
- set: function(pageNum)
- {
- ARJavaScriptDoc.pageIndex = pageNum;
- }
- });
-
- /**
- * Gets the name of the nth field in the document.
- *
- * @param nIndex {Number} The index of the field whose name should be obtained.
- * @return {String} The name of the field in the document.
- */
- getNthFieldName = function(nIndex)
- {
- if (arguments.length < 1)
- throw new TypeError();
-
- if (typeof nIndex != "number" || isNaN(nIndex))
- nIndex = AFMakeNumber(nIndex);
-
- if (typeof nIndex != "number" || isNaN(nIndex))
- throw new TypeError();
-
- return ARJavaScriptDoc.getNthFieldName(nIndex);
- }
-
- /**
- * Maps a Field object in the PDF document to a JavaScript variable.
- *
- * @method getField
- * @param cName {String} The name of the field of interest.
- * @return {Object} A Field object representing a form field in the PDF document.
- */
- getField = function(name)
- {
- var returnVal = null;
-
- var field = ARJavaScriptDoc.getField(name);
- if (field)
- {
- returnVal = new Field(field);
- }
-
- return returnVal;
- };
-
- /**
- * Resets the field values within a document. Resetting a field causes it to take on
- * its default value (which, in the case of text fields, is usually blank).
- *
- * @method resetForm
- * @param [fieldNames=null] {Object} An array specifying the fields to reset. If not
- * present or null, all fields in the form are reset.
- */
- resetForm = function(fieldNames)
- {
- ARJavaScriptDoc.resetForm(fieldNames);
- };
-
- /**
- * Submits the form to a specified URL. Currently only supports FormsCentral submissions.
- *
- * submitForm JS API currently only supports FormsCentral submissions. And FormsCentral has now
- * been decommissioned. Leave the submitForm code intact so that if it is executed, the return
- * response can be processed by the application. Leave the submitForm code intact so that it can
- * serve as a guide for any future non-FormsCentral submit functionality. But mark the API as
- * private so that any autogenerated documentation does NOT include this API.
- * @private
- * @method submitForm
- * @param cURL {String} The URL to submit to. cURL must be a FormsCentral target.
- * @param [cSubmitAs='FDF'] {String} This parameter indicates the format for submission.
- * Must be 'HTML' to support FormsCentral submission.
- * @param [cCharset='utf-8'] {String} The encoding for the values submitted. Must be
- * 'utf-8' to support FormsCentral submission.
- */
- submitForm = function()
- {
- var cURL = null;
- var cSubmitAs = null;
- var cCharset = null;
-
- if (arguments.length > 0)
- {
- if (typeof arguments[0].cURL == "string")
- {
- cSubmitAs = 'FDF';
- cCharset = 'utf-8';
-
- cURL = arguments[0].cURL;
-
- if (typeof arguments[0].cSubmitAs == "string")
- {
- cSubmitAs = arguments[0].cSubmitAs;
- }
-
- if (typeof arguments[0].cCharset == "string")
- {
- cCharset = arguments[0].cCharset;
- }
- }
- else if (typeof arguments[0] == "string")
- {
- cSubmitAs = 'FDF';
- cCharset = 'utf-8';
-
- cURL = arguments[0];
-
- if (arguments.length >= 9 && typeof arguments[8] == "boolean" && arguments[8] == true)
- {
- cSubmitAs = 'PDF';
- }
- else if (arguments.length >= 7 && typeof arguments[6] == "boolean" && arguments[6] == true)
- {
- cSubmitAs = 'XML';
- }
- else if (arguments.length >= 2 && typeof arguments[1] == "boolean" && arguments[1] == false)
- {
- cSubmitAs = 'none';
- }
- }
- }
-
- ARJavaScriptDoc.submitForm(cURL, cSubmitAs, cCharset);
- };
-
- // register undefined properties on the 'this' object
- registerUndefinedProperty(this, 'Doc', 'alternatePresentations');
- registerUndefinedProperty(this, 'Doc', 'author');
- registerUndefinedProperty(this, 'Doc', 'baseURL');
- registerUndefinedProperty(this, 'Doc', 'bookmarkRoot');
- registerUndefinedProperty(this, 'Doc', 'calculate');
- registerUndefinedProperty(this, 'Doc', 'creationDate');
- registerUndefinedProperty(this, 'Doc', 'creator');
- registerUndefinedProperty(this, 'Doc', 'dataObjects');
- registerUndefinedProperty(this, 'Doc', 'delay');
- registerUndefinedProperty(this, 'Doc', 'dirty');
- registerUndefinedProperty(this, 'Doc', 'disclosed');
- registerUndefinedProperty(this, 'Doc', 'docID');
- registerUndefinedProperty(this, 'Doc', 'documentFileName');
- registerUndefinedProperty(this, 'Doc', 'dynamicXFAForm');
- registerUndefinedProperty(this, 'Doc', 'external');
- registerUndefinedProperty(this, 'Doc', 'filesize');
- registerUndefinedProperty(this, 'Doc', 'hidden');
- registerUndefinedProperty(this, 'Doc', 'hostContainer');
- registerUndefinedProperty(this, 'Doc', 'icons');
- registerUndefinedProperty(this, 'Doc', 'info');
- registerUndefinedProperty(this, 'Doc', 'innerAppWindowRect');
- registerUndefinedProperty(this, 'Doc', 'innerDocWindowRect');
- registerUndefinedProperty(this, 'Doc', 'isModal');
- registerUndefinedProperty(this, 'Doc', 'keywords');
- registerUndefinedProperty(this, 'Doc', 'layout');
- registerUndefinedProperty(this, 'Doc', 'media');
- registerUndefinedProperty(this, 'Doc', 'metadata');
- registerUndefinedProperty(this, 'Doc', 'modDate');
- registerUndefinedProperty(this, 'Doc', 'mouseX');
- registerUndefinedProperty(this, 'Doc', 'mouseY');
- registerUndefinedProperty(this, 'Doc', 'noautocomplete');
- registerUndefinedProperty(this, 'Doc', 'nocache');
- registerUndefinedProperty(this, 'Doc', 'numPages');
- registerUndefinedProperty(this, 'Doc', 'numTemplates');
- registerUndefinedProperty(this, 'Doc', 'path');
- registerUndefinedProperty(this, 'Doc', 'outerAppWindowRect');
- registerUndefinedProperty(this, 'Doc', 'outerDocWindowRect');
- registerUndefinedProperty(this, 'Doc', 'pageWindowRect');
- registerUndefinedProperty(this, 'Doc', 'permStatusReady');
- registerUndefinedProperty(this, 'Doc', 'producer');
- registerUndefinedProperty(this, 'Doc', 'requiresFullSave');
- registerUndefinedProperty(this, 'Doc', 'securityHandler');
- registerUndefinedProperty(this, 'Doc', 'selectedAnnots');
- registerUndefinedProperty(this, 'Doc', 'sounds');
- registerUndefinedProperty(this, 'Doc', 'spellDictionaryOrder');
- registerUndefinedProperty(this, 'Doc', 'spellLanguageOrder');
- registerUndefinedProperty(this, 'Doc', 'subject');
- registerUndefinedProperty(this, 'Doc', 'templates');
- registerUndefinedProperty(this, 'Doc', 'title');
- registerUndefinedProperty(this, 'Doc', 'URL');
- registerUndefinedProperty(this, 'Doc', 'viewState');
- registerUndefinedProperty(this, 'Doc', 'xfa');
- registerUndefinedProperty(this, 'Doc', 'XFAForeground');
- registerUndefinedProperty(this, 'Doc', 'zoom');
- registerUndefinedProperty(this, 'Doc', 'zoomType');
-
-