PrintViewModel

AMD: require(["esri/widgets/Print/PrintViewModel"], (PrintVM) => { /* code goes here */ });
ESM: import PrintViewModel from "@arcgis/core/widgets/Print/PrintViewModel";
Class: esri/widgets/Print/PrintViewModel
Inheritance: PrintViewModel Accessor
Since: ArcGIS API for JavaScript 4.2

Provides the logic for the Print widget.

See also:
Example:
let view = new MapView({
  container: "viewDiv",
  map: map
});

let print = new Print({
  viewModel: new PrintVM({
    view: view
  })
});

Constructors

new PrintViewModel(properties)
Parameter:
properties Object
optional

See the properties for a list of all the properties that may be passed into the constructor.

Property Overview

Any properties can be set, retrieved or listened to. See the Working with Properties topic.
Show inherited properties Hide inherited properties
Name Type Summary Class
String|String[]more details

Specify the print output file format(s) that the user can select based on the options available from the print service.

more detailsPrintViewModel
String|String[]more details

Specify the print output layout(s) that the user can select based on the options available from the print service.

more detailsPrintViewModel
Stringmore details

The name of the class.

more detailsAccessor
Collection<CustomTemplate>more details

A collection of print templates defined on the Portal.

more detailsPrintViewModel
Stringmore details

The effective URL of the REST endpoint of the Export Web Map Task.

more detailsPrintViewModel
Objectmore details

This option allows passing extra parameters to the print (export webmap) requests.

more detailsextraParameters
Booleanmore details

Indicates whether or not to include defaultTemplates.

more detailsPrintViewModel
Portalmore details

It is possible to search a specified portal instance's locator services.

more detailsPrintViewModel
Stringmore details

The URL of the REST endpoint of the Export Web Map Task.

more detailsPrintViewModel
Booleanmore details

When true, scale is used in the printed map.

more detailsPrintViewModel
Stringmore details

The view model's state.

more detailsPrintViewModel
Objectmore details

The service metadata that contains the format and layout information for the printout.

more detailsPrintViewModel
Numbermore details

The time interval in milliseconds between each job status request sent to an asynchronous GP task.

more detailsPrintViewModel
MapViewmore details

The view from which the widget will operate.

more detailsPrintViewModel

Property Details

allowedFormats String|String[]
Since: ArcGIS API for JavaScript 4.15

Specify the print output file format(s) that the user can select based on the options available from the print service. This property can take a string value or an array of string values.

When this value is "all" (default value), all the print service formats are available to be used. When an array of string values is used, only those values that match the options available from the print service will be used. If none of the input string values match those available from the print service, allowedFormats will fallback to default behavior.

Default Value:"all"
See also:
Example:
const print = new Print({
  view: view,
  printServiceUrl: url
});

print.viewModel.allowedFormats = ["jpg", "png8", "png32"];

view.ui.add(print, {position: "top-right"});
allowedLayouts String|String[]
Since: ArcGIS API for JavaScript 4.15

Specify the print output layout(s) that the user can select based on the options available from the print service. This property can take a string value or an array of string values.

When this value is "all" (default value), all the print service layouts are available to be used. When an array of string values is used, only those values that match the options available from the print service will be used. If none of the input string values match those available from the print service, allowedLayouts will fallback to default behavior.

Default Value:"all"
See also:
Example:
const print = new Print({
  view: view,
  printServiceUrl: url
});

print.viewModel.allowedLayouts = ["a3-landscape", "a3-portrait"];

view.ui.add(print, {position: "top-right"});
declaredClass Stringreadonly inherited
Since: ArcGIS API for JavaScript 4.7

The name of the class. The declared class name is formatted as esri.folder.className.

defaultTemplates Collection<CustomTemplate>readonly
Since: ArcGIS API for JavaScript 4.18

A collection of print templates defined on the Portal.

Print templates are used to apply pre-defined values to existing print options.

effectivePrintServiceUrl Stringreadonly

The effective URL of the REST endpoint of the Export Web Map Task.

extraParameters Objectinner
Since: ArcGIS API for JavaScript 4.20

This option allows passing extra parameters to the print (export webmap) requests.

includeDefaultTemplates Boolean
Since: ArcGIS API for JavaScript 4.18

Indicates whether or not to include defaultTemplates.

Default Value:true
portal Portal
Since: ArcGIS API for JavaScript 4.18

It is possible to search a specified portal instance's locator services. Use this property to set this ArcGIS Portal instance to search. This is especially helpful when working with a custom print template.

If this property is set, it is not necessary to set the printServiceUrl property.

See also:
printServiceUrl String

The URL of the REST endpoint of the Export Web Map Task. If the portal property is set, it is not necessary to set this property.

scaleEnabled Boolean

When true, scale is used in the printed map.

Default Value:false
state Stringreadonly

The view model's state.

Possible Values:"disabled"|"initializing"|"ready"|"error"

Default Value:disabled
templatesInfo Objectreadonly

The service metadata that contains the format and layout information for the printout.

Example:
const print = new Print({
  view: view,
  printServiceUrl: url
});

view.ui.add(print, {position: "top-right"});

console.log("PrintViewModel templatesInfo Formats: ", print.viewModel.templatesInfo.format.choiceList);
console.log("PrintViewModel templatesInfo Layouts: ", print.viewModel.templatesInfo.layout.choiceList);
updateDelay Number

The time interval in milliseconds between each job status request sent to an asynchronous GP task.

Default Value:1000
view MapView

The view from which the widget will operate.

Method Overview

Name Return Type Summary Class
Promisemore details

This method should be called to load the view model's printing resources.

more detailsPrintViewModel
Promise<Object>more details

Prints (exports) the current MapView according to selected options.

more detailsPrintViewModel

Method Details

load(){Promise}

This method should be called to load the view model's printing resources.

Returns:
Type Description
Promise When resolved, the view model has loaded the print service metadata necessary for printing.
print(printTemplate){Promise<Object>}

Prints (exports) the current MapView according to selected options.

Parameter:
printTemplate PrintTemplate

The PrintTemplate is used to specify the layout template options which is then used by the PrintTask to generate the print page.

Returns:
Type Description
Promise<Object> Resolves to an object with the following properties:
Property Type Description
url String URL to the exported printout.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.