CustomTemplate

ESM: import CustomTemplate from "@arcgis/core/widgets/Print/CustomTemplate.js";
CDN: const CustomTemplate = await $arcgis.import("@arcgis/core/widgets/Print/CustomTemplate.js");
Class: @arcgis/core/widgets/Print/CustomTemplate
Inheritance: CustomTemplateAccessor
Since: ArcGIS Maps SDK for JavaScript 4.18

Defines the custom layout template options used by the Print widget and Print component to generate the print page. While custom templates can be published from ArcGIS Pro to a portal, custom layout templates are defined in a portal, where they can be added, removed, or edited as necessary without having to republish the print service. There are a limited number of options available for customization.

The main benefit of this class is that it allows developers to give a name to a preferred format and layout and if there should be a Legend present or not, in a reusable way. This is what the UI looks like in a portal:

Create-Print-Template

See also

Constructors

CustomTemplate

Constructor
new CustomTemplate(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 Watch for changes topic.
Show inherited properties Hide inherited properties
Name Type Summary Class

The name of the class.

Accessor

The template's description.

CustomTemplate

The output format for the printed map.

CustomTemplate

Unique id for the template.

CustomTemplate

The text that appears inside the Select template button.

CustomTemplate

The layout used for the print output.

CustomTemplate

The portal item associated with layout (if any).

CustomTemplate

Defines the layout elements.

CustomTemplate

Defines the layout template info for the layout item.

CustomTemplate

This object returns settings for a legend, north arrow and scale bar (if any).

mapSurroundInfoOptions

The pageUnits from layoutTemplateInfo.

CustomTemplate

Loading state of the template.

CustomTemplate

The type of CustomTemplate.

CustomTemplate

Property Details

declaredClass

Inherited
Property
declaredClass Stringreadonly
Inherited from Accessor

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

description

Property
description String |null |undefinedreadonly

The template's description.

format

Property
format String |null |undefined

The output format for the printed map.

Possible Values:"jpg" |"png8" |"png32" |"pdf" |"gif" |"tiff" |"aix" |"eps" |"svg" |"svgz"

id

Property
id Stringreadonly
Since: ArcGIS Maps SDK for JavaScript 4.33 CustomTemplate since 4.18, id added at 4.33.

Unique id for the template.

label

Property
label String |null |undefinedreadonly

The text that appears inside the Select template button. This is the label for the template as defined in a portal.

layout

Property
layout String |null |undefinedreadonly

The layout used for the print output. When the value is map-only or is empty, the output map does not contain any page layout surroundings (for example: legend, scale bar, and so forth). The print service provides out-of-the-box templates listed in possible values. The server administrator can add additional templates to the print service.

Possible values are listed below:

Value Description
map-only Map does not contain any layout elements. Only the map image is printed.
a3-landscape A3 Landscape
a3-portrait A3 Portrait
a4-landscape A4 Landscape
a4-portrait A4 Portrait
letter-ansi-a-landscape Letter ANSI A Landscape
letter-ansi-a-portrait Letter ANSI A Portrait
tabloid-ansi-b-landscape Tabloid ANSI B Landscape
tabloid-ansi-b-portrait Tabloid ANSI B Portrait

Possible Values:"map-only" |"a3-landscape" |"a3-portrait" |"a4-landscape" |"a4-portrait" |"letter-ansi-a-landscape" |"letter-ansi-a-portrait" |"tabloid-ansi-b-landscape" |"tabloid-ansi-b-portrait"

layoutItem

Property
layoutItem PortalItem |null |undefinedreadonly

The portal item associated with layout (if any).

layoutOptions

Property
layoutOptions Object |null |undefinedreadonly

Defines the layout elements. It's an object with the following property:

Properties
optional

Indicates whether the legend will be included in the print-out.

northArrow Boolean|null|undefined
optional

Indicates whether the north arrow will be included in the print-out.

layoutTemplateInfo

Property
layoutTemplateInfo Object |null |undefinedreadonly
Since: ArcGIS Maps SDK for JavaScript 4.33 CustomTemplate since 4.18, layoutTemplateInfo added at 4.33.

Defines the layout template info for the layout item.

Properties
pageSize Number[]
optional

The default page size(s) to be used.

pageUnits String
optional

The unit type of the page size(s) to be used.

layoutOptions Object
optional

Defines the layout elements.

Specification
hasTitleText Boolean
optional

Title text in layoutOptions.

hasAuthorText Boolean
optional

Author text in layoutOptions.

hasCopyrightText Boolean
optional

Copyright text in layoutOptions.

hasLegend Boolean
optional

Legend in layoutOptions.

customTextElements Object[]
optional

The CustomTextElements in layoutOptions.

mapSurroundInfos Object
optional

The MapSurroundInfos in layoutOptions.

mapSurroundInfoOptions

Property
mapSurroundInfoOptions Object |null |undefinedinner,readonly
Since: ArcGIS Maps SDK for JavaScript 4.33 mapSurroundInfoOptions since 4.18, mapSurroundInfoOptions added at 4.33.

This object returns settings for a legend, north arrow and scale bar (if any).

Properties
optional

MapSurroundInfo for legend.

northArrow Object|null|undefined
optional

MapSurroundInfo for north arrow.

scaleBar Object|null|undefined
optional

MapSurroundInfo for scale bar.

pageUnits

Property
pageUnits Unit |null |undefinedreadonly
Since: ArcGIS Maps SDK for JavaScript 4.33 CustomTemplate since 4.18, pageUnits added at 4.33.

The pageUnits from layoutTemplateInfo.

state

Property
state Stringreadonly
Since: ArcGIS Maps SDK for JavaScript 4.33 CustomTemplate since 4.18, state added at 4.33.

Loading state of the template.

Possible Values:"loaded" |"not-loaded" |"loading" |"error"

type

Property
type String |null |undefinedreadonly
Since: ArcGIS Maps SDK for JavaScript 4.33 CustomTemplate since 4.18, type added at 4.33.

The type of CustomTemplate.

Possible Values:"browse-template" |"default-template" |"print-service-template"

Method Overview

Show inherited methods Hide inherited methods
Name Return Type Summary Class

Adds one or more handles which are to be tied to the lifecycle of the object.

Accessor

Returns true if a named group of handles exist.

Accessor

Removes a group of handles owned by the object.

Accessor

Method Details

addHandles

Inherited
Method
addHandles(handleOrHandles, groupKey)
Inherited from Accessor
Since: ArcGIS Maps SDK for JavaScript 4.25 Accessor since 4.0, addHandles added at 4.25.

Adds one or more handles which are to be tied to the lifecycle of the object. The handles will be removed when the object is destroyed.

// Manually manage handles
const handle = reactiveUtils.when(
  () => !view.updating,
  () => {
    wkidSelect.disabled = false;
  },
  { once: true }
);

this.addHandles(handle);

// Destroy the object
this.destroy();
Parameters
handleOrHandles WatchHandle|WatchHandle[]

Handles marked for removal once the object is destroyed.

groupKey *
optional

Key identifying the group to which the handles should be added. All the handles in the group can later be removed with Accessor.removeHandles(). If no key is provided the handles are added to a default group.

hasHandles

Inherited
Method
hasHandles(groupKey){Boolean}
Inherited from Accessor
Since: ArcGIS Maps SDK for JavaScript 4.25 Accessor since 4.0, hasHandles added at 4.25.

Returns true if a named group of handles exist.

Parameter
groupKey *
optional

A group key.

Returns
Type Description
Boolean Returns true if a named group of handles exist.
Example
// Remove a named group of handles if they exist.
if (obj.hasHandles("watch-view-updates")) {
  obj.removeHandles("watch-view-updates");
}

removeHandles

Inherited
Method
removeHandles(groupKey)
Inherited from Accessor
Since: ArcGIS Maps SDK for JavaScript 4.25 Accessor since 4.0, removeHandles added at 4.25.

Removes a group of handles owned by the object.

Parameter
groupKey *
optional

A group key or an array or collection of group keys to remove.

Example
obj.removeHandles(); // removes handles from default group

obj.removeHandles("handle-group");
obj.removeHandles("other-handle-group");

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