print

AMD: require(["geoscene/rest/print"], (print) => { /* code goes here */ });
ESM: import * as print from "@geoscene/core/rest/print";
类: geoscene/rest/print
起始版本:GeoScene Maps SDK for JavaScript 4.20

打印模块提供了一种 executePrint 方法,该方法使用 GeoScene Server 1.1 及更高版本提供的导出 Web 地图任务生成可打印的地图版本。当您希望对用户界面进行更精细的控制时使用此类,例如,如果您希望为用户提供定义打印页面上显示内容的能力。

有关使用 MAP_ONLY 布局进行打印的更多信息,请参阅 exportOptions

使用 PrintParameters 设置打印选项。

已知限制

不支持

  • 目前不支持打印 SceneViews。请改为参阅 SceneView.takeScreenshot()
  • 目前不支持打印高亮显示的要素。请改为参阅 MapView.takeScreenshot()
  • 当前不支持在定义 pixelFilter 时打印 ImageryLayers
  • 当前不支持打印从具有上下主题的 univariateColorSize.createContinuousRenderer() 中生成的渲染器。
  • 当前不支持打印作为打印输出中的客户端图像发送的图层的图例项。
  • 目前不支持在地图旋转时打印旋转的符号和标注,并且图层在打印输出中作为客户端图像发送。
  • 使用带有 above-and-below 主题的渲染器时,当前不支持打印功能。
  • 当前不支持打印使用 orderBy 属性配置的图层的绘制顺序。
  • 当前不支持打印具有混合或效果的 GroupLayers。请改为参阅 MapView.takeScreenshot()
  • blendMode 应用于图层时,当前不支持打印效果
  • 当前不支持打印具有以下 blendModes 的图层:"average", "destination-atop", "destination-in", "destination-out", "destination-over", "invert", "lighter", "minus", "plus", "reflect", "source-atop", "source-in", "source-out", "vivid-light", "XOR".

版本支持

  • 无法使用 ArcMap 发布的任何打印服务打印 CIMSymbol
  • 当前,无法使用 GeoScene Server 2.0 或任何使用 ArcMap 发布的打印服务将标注打印为 FeatureLayer 的一部分。
  • ImageryLayer 无法使用 GeoScene Server 1.5.1 及更早版本或任何使用 ArcMap 发布的 Printing 服务进行打印。
  • VectorTileLayer 打印需要 GeoScene Server 1.5.1 或更高版本。
  • 打印使用 DotDensityRenderer 渲染的图层将使用 GeoScene Server 2.0 或更早版本在打印输出中创建图层的客户端图像。
  • 打印使用 clustering 的图层将使用 GeoJSONLayer 和/或 GeoScene Server 3.0 或更早版本在打印输出中创建图层的客户端图像。
  • 对于使用 GeoScene Server 1.5.1 或 1.6 打印安全 VectorTileLayers,或使用 GeoScene Server 1.5.1 或使用 ArcMap 发布的任何打印服务打印 VectorTileLayers,print 将为 VectorTileLayer 创建客户端图像以在打印输出中使用。存在一些与大尺寸打印质量相关的限制,并且依赖于浏览器窗口的高度/宽度比。
  • 打印 MapViewWebMap 的背景颜色需要 GeoScene Server 3.0 或更高版本。
  • 使用非标准 URL 打印图层 (例如 URL 中没有 MapServer、FeatureServer 或 ImageServerr) 需要 GeoScene Server 3.1 或更高版本。
  • 使用受支持的 blendModes 打印图层需要 GeoScene Server 3.1 或更高版本。这是当前支持的类型列表:"color-burn", "color-dodge", "color", "darken", "difference", "exclusion", "hard-light", "hue", "lighten", "luminosity", "multiply", "normal", "overlay", "saturation", "screen", "soft-light".

注意事项

  • 打印使用 effects 的图层将在打印输出中创建图层的客户端图像。
  • 打印使用 binning 的图层将在打印输出中创建图层的客户端图像。
  • 打印使用饼图渲染器的图层将在打印输出中创建图层的客户端图像。
  • 打印服务器不直接打印 SVG 符号。相反,它们将转换为 PictureMarkerSymbols 以供显示。
  • 如果应用程序和打印服务位于同一来源,则可使用 fileNametitle 属性自定义可下载文件的名称。如果没有,可下载文件的名称将由托管打印服务的 GeoScene Enterprise 生成。
  • 确保打印服务器可以访问任何要打印的资源。例如,如果打印包含 PictureMarkerSymbols 的地图,则打印服务器必须可以访问这些符号的 URL 才能正常工作。
另请参阅

方法概述

名称 返回值类值 描述 对象
Promise<PrintResponse>

向打印服务发送请求,以使用 PrintParameters 中指定的选项创建地图的可打印静态图像。

更多详情
print
String

请求打印服务的模式。

更多详情
print

方法详细说明

execute(url, params, requestOptions){Promise<PrintResponse>}

向打印服务发送请求,以使用 PrintParameters 中指定的选项创建地图的可打印静态图像。

参数
url String

导出 Web 地图任务的 REST 端点的 URL。

定义打印选项。

requestOptions Object
optional

用于数据请求的附加选项

返回
类型 描述
Promise<PrintResponse> 解析为一个对象,其中包含生成的视图打印输出的 URL。
示例
require([
 "geoscene/rest/print",
 "geoscene/rest/support/PrintTemplate",
 "geoscene/rest/support/PrintParameters",
 ...
], function(print, PrintTemplate, PrintParameters, ... ) {

  // url to the print service
  const url = " ";

  const template = new PrintTemplate({
    format: "pdf",
    exportOptions: {
      dpi: 300
    },
    layout: "a4-portrait",
    layoutOptions: {
      titleText: "Gillette Stadium",
      authorText: "Thomas B."
    }
  });

  const params = new PrintParameters({
    view: view,
    template: template
  });

  // print when this function is called
  function executePrint() {
    print.execute(url, params).then(printResult).catch(printError);
  }

  function printResult(result) {
    console.log(result.url);
    window.open(result.url);
  }

  function printError(err) {
    console.log("Something broke: ", err);
  }
});
getMode(url){String}

请求打印服务的模式。仅在至少发出一次打印请求后才能检查模式。

参数
url String

导出 Web 地图任务的 REST 端点的 URL。

返回
类型 描述
String 返回打印请求执行的模式:"sync" 或 "async”。

类型定义

PrintResponse

表示 execute() 方法的响应。

属性
url String

指向生成的视图打印输出的位置的 URL。

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。请参阅浏览器弃用帖子以获取更多信息