Web 打印服务默认开启异步打印模式。创建一个打印任务的步骤如下:

  1. 访问 iServer 服务列表,选择 webprinting/rest 服务资源
  2. 依次点击 webprinting -> v1 -> jobs,进入打印任务列表资源页面
  3. 点击创建打印任务,进入创建打印任务资源页面
  4. 输入 POST 请求体,点击创建打印任务按钮即可开始执行任务。关于请求体如何编写请参见 打印任务列表资源的 POST 请求

创建打印任务输入的请求体由三个顶层对象构成:

{

    "content": {},

    "layoutOptions": {},

    "exportOptions": {}

}

content

content 对象是必选对象,用于定义待打印的 Web 内容。由以下参数组成:

  • type:必选,Web 打印内容支持的类型,目前支持的类型:WEBMAP。
  • url:可选,待打印的 SuperMap iPortal 数据上图 Web App 制作的 WebMap 的 url 地址。例如:http://supermapiportal:8190/iportal/web/maps/{mapid}/map.rjson。
  • token:可选,如果待打印的是 SuperMap iPortal 用户私有的 WebMap,需要提供 SuperMap iPortal 用户的 token。
  • value(可选):传递的是一个符合 SuperMap WebMap 规范的 WebMap 的 JSON 表达,也可以是一个完整的 SuperMap iPortal 数据上图制作的 WebMap 的 json 表达。如果已填了 url 参数,此参数可不传。

示例1:传入一个SuperMap iPortal 数据上图 Web App 制作的 WebMap 的 url 地址

{

    "content": {

        "type": "WEBMAP",

        "url":"http://supermapiportal:8190/iportal/web/maps/{mapid}/map.rjson"

     }

}

示例2:传入一个完整的 SuperMap iPortal 数据上图制作的 WebMap 的 json 表达

{

    "content": {

        "type": "WEBMAP",

        "value": {

            "extent": {

                "leftBottom": {

                    "x": -20037508.3427892,

                    "y": -20037508.3427891

                },

                "rightTop": {

                    "x": 20037508.3427892,

                    "y": 20037508.3427891

                }

            },

            "maxScale": "1:144447.927",

            "level": 4,

            "center": {

                "x": 11382417.9336122,

                "y": 4134167.44525748

            },

            "baseLayer": {

                "layerType": "TILE",

                "name": "ChinaDark",

                "url": "https://iserver.supermap.io/iserver/services/map-china400/rest/maps/ChinaDark"

            },

            "layers": [

                {

                    "layerType": "VECTOR",

                    "visible": true,

                    "name": "中国历史6级以上地震记录",

                    "featureType": "POINT",

                    "xyField": {

                        "xField": "经度",

                        "yField": "纬度"

                    },

                    "style": {

                        "fillColor": "#EE4D5A",

                        "strokeWidth": 1,

                        "offsetX": 0,

                        "offsetY": 0,

                        "fillOpacity": 0.9,

                        "radius": 8,

                        "strokeColor": "#ffffff",

                        "type": "BASIC_POINT",

                        "strokeOpacity": 1

                    },

                    "projection": "EPSG:4326",

                    "enableFields": [

                        "年",

                        "月",

                        "日",

                        "时",

                        "分",

                        "秒",

                        "经度",

                        "纬度",

                        "深度",

                        "震级",

                        "震级类型",

                        "参考地名"

                    ],

                    "dataSource": {

                        "name": "ChinaRecordOfOver6Earthquakes",

                        "type": "SAMPLE_DATA"

                    }

                }

            ],

            "description": "",

            "projection": "EPSG:3857",

            "minScale": "1:591658710.909",

            "title": "testdizhen",

            "version": "2.2.1",

            "rootUrl": "https://iptl.supermap.io/iportal/services/../"

        }

    }

}

layoutOptions

layoutOptions 对象是必选对象,用于定义打印的布局信息。由以下参数组成:

  • templateName:必选参数,布局模板文件夹的名称。
  • title:可选参数,如果在布局上存在地图主标题文本元素的文本,则该参数为必选,也可以传递空值。当需要输入多行文本时,可在需要换行的文字前输入换行符“\n”。
  • subTitle:可选参数,如果在布局上存在地图副标题文本元素的文本,则该参数为必选,也可以传递空值。当需要输入多行文本时,可在需要换行的文字前输入换行符“\n”。
  • author:可选参数,如果在布局上存在作者文本元素的文本,则该参数为必选,也可以传递空值。当需要输入多行文本时,可在需要换行的文字前输入换行符“\n”。
  • copyright:可选参数,如果在布局上存在版权文本元素的文本,则该参数为必选,也可以传递空值。当需要输入多行文本时,可在需要换行的文字前输入换行符“\n”。
  • scaleBarOptions:可选参数,用于更新比例尺,如果不传递该参数,则使用默认的比例尺条。
  • scaleText:可选参数,比例尺文本信息,例如:1:1000000。
  • type:可选参数,比例尺的样式,包括:LINE, BAR, BAR_SUB, GRID, LINE_CROSS_RAILWAY, RAILWAY_MID_SPLIT, RULER, BARRIER, GREATWALL, SAWTOOTH。
  • intervals:可选参数,比例尺条的段数。
  • unit:可选参数,比例尺的单位制,包括:METER, FOOT, DEGREES。
  • scaleBarVisible:可选参数,比例尺条是否显示。
  • northArrowOptions:可选参数,用于更新指北针,如果不传递该参数,则使用默认的指北针。优先级:picAsBase64 > picAsUrl。
  • picAsBase64:可选参数,通过指定指北针的 base64 位图片信息,来更新布局中指北针的图片。
  • picAsUrl:可选参数,通过指定指北针的图片 url 地址,来更新布局中指北针的图片。
  • littleMapOptions:可选参数,如果布局中存在小地图,则该参数为必须参数。小地图可以是指定的主地图中的图层名称,也可以是一个 WebMap。优先级:layers>layerNames,两者必选其一。
  • scale:可选参数,小地图的比例尺。
  • center:可选参数,小地图的中心点。
  • layerNames:可选参数,指定 WebMap 中图层名称的列表,用于渲染小地图。
  • layers:可选参数,指定 WebMap 中的 layers 图层。如果您不使用主地图中的图层来渲染小地图,而是希望使用一个 WebMap 图层来渲染小地图,可以通过此参数设置。
  • legendOptions:可选参数,指定布局中图例元素的属性。优先级:picAsBase64 > picAsUrl > customItems > layers,四者必选其一。此外,图例元素支持自动排版,由 isAutoComposing 参数控制。
  • picAsUrl:可选参数,通过指定图例的图片 url 地址,来更新布局中图例的图片。图片中需包含图例名称。
  • picAsBase64:可选参数,通过指定图例的 base64 位图片信息,来更新布局中图例的图片。图片中需包含图例名称。
  • title:可选参数,图例的名称。不传递此参数将不显示图例名称。该参数是与 customItems 参数配合使用。
  • customItems:可选参数,自定义一组图例元素,用户可以传入一个 JSON 字符串。该 JSON 字符串由图例元素的名称和图片组成:name 指定图例元素的名称;picAsUrl 指定图例元素的图片 url 地址;picAsBase64 指定图例元素的 base64 位图片信息。
  • layers:可选参数,自定义用于获取图例子项的 iServer REST 地图服务的指定图层,用户可以传入一个对象组。该对象组由 REST 地图服务中一个图层 url 的字符串(必选)和表示子图层 name 的字符串数组(可选)组成:url 指定 REST 地图服务或临时图层集中的某一临时图层(指定 ID),目前只支持 TileLayer 图层类型;subLayerNames 指定子图层 name 的字符串数组,不设置该参数将打印上述 url 图层中的所有图例;useCaption 图例文本是否使用图层标题,否,则使用图层名称。
  • isAutoComposition:可选参数,是否使用图例自动排版功能。开启后系统将应用图例元素自动排版规则,打印结果将根据相应算法进行显示。默认为 true 自动排版算法请见:图例元素自动排版规则
  • itemsFont:可选参数,图例子项中的文字字体。isAutoComposition 为 true 时生效。
  • titleFont: 可选参数,图例标题的文字字体。
  • titleFontSize:可选参数,图例标题的文字字号。
  • standardMarginOptions:可选参数,设置布局模板中用于打印国家标准分幅地图的属性。包含计算参数和整饰参数两部分。计算参数中优先级:mapNumber > scaleDenominator 和 coordinate,两种参数设置必选其一。

    计算参数:

  • scaleDenominator:可选参数,仅可设置为500、1000、2000、5000、10000、25000、50000、100000、250000、500000、1000000,其中500、1000、2000为大比例尺分母。注:此参数设置后,exportOptions 中的 scale 参数将不生效。
  • coordinate:可选参数,分幅目标点坐标,即用户待分幅区域内某目标点的地理坐标。经纬度分幅为经纬度坐标,矩形分幅为公里坐标。注:此参数设置后,exportOptions 中的 center 参数将不生效,需要与 scaleDenominator 配合使用。
  • mapNumber:可选参数,分幅图幅号,需设置为新标准图幅号。注:此参数设置后,exportOptions中 的 scale 和 center 参数将不生效。当同时有 scaleDenominator、coordinate、mapNumber时,scaleDenominator 和 coordinate 不生效。
  • zoneNumber:可选参数,大比例尺地图的国家坐标系的条带号,当且仅当比例尺为大比例尺且坐标系为国家坐标系统时可选。
  • largeScaleSheetType:可选参数,大比例尺图幅分幅类型(40x50、50x50),当且仅当比例尺为大比例尺时可选。

    整饰参数:

  • frameOptions:可选参数,可选参数,国家标准分幅地图中图幅图框效果设置。
  • gridOptions:可选参数,国家标准分幅地图中格网效果设置。
  • informationOptions:可选参数,国家标准分幅地图中图幅信息设置。
  • neighborTableOptions:可选参数,国家标准分幅地图中邻接图表效果设置。
  • annotationsOptions:可选参数,国家标准分幅地图中附注信息设置。
  • title:可选参数,图幅名,默认值为“国家标准分幅地图”。
  • publisher:可选参数,出版单位,默认值为 null,即不显示。
  • safeInfo:可选参数,出版密级,默认值为 null,即不显示。
  • hasMapNumber:可选参数,是否显示图幅编号,默认值是 true,即显示。
  • hasScale:可选参数,是否显示比例尺,默认值是 false,即不显示。
  • mapGridOptions:可选参数,地图经纬网格参数。
  • originX:可选参数,左下角经度。
  • originY:可选参数,左下角纬度。
  • cellWidth:可选参数,单元格宽度。
  • cellHeight:可选参数,单元格高度。
  • markType:可选参数,坐标格式,支持的类型有 DMS(度分秒)、DecimalDegree(十进制),默认使用十进制格式。

示例1:更新布局模板、更新布局中指北针的图片为 url 地址、更新小地图为一个 WebMap 图层、更新图例为一个 JSON 字符串

{

    "layoutOptions": {

        "templateName": "A4_landscape",

        "title": "title",

        "author": "authorName",

        "copyright": "copyright",

        "subTitle": "subTitle",

        "legendOptions": {

            "title": "legend",

            "customItems": [

                {

                    "name": "Railway",

                    "picAsUrl":

                        "http://192.168.120.40:8090/iserver/services/map-China100/rest/maps/China/layers/Main_Railway_L@China@@China/legend"

                },

                {

                    "name": "River",

                    "picAsUrl":

                        "http://192.168.120.40:8090/iserver/services/map-China100/rest/maps/China/layers/River@China@@China/legend"

                },

                {

                    "name": "Mainroad",

                    "picAsUrl":

                        "http://192.168.120.40:8090/iserver/services/map-China100/rest/maps/China/layers/Main_Road_L@China@@China/legend"

                },

                {

                    "name": "Airport",

                    "picAsUrl":

                        "http://192.168.120.40:8090/iserver/services/map-China100/rest/maps/China/layers/Airport_pt@China.1@@China/legend"

                }

            ]

        },

        "northArrowOptions": {

            "picAsUrl": "file://NorthArrow.svg"

        },

        "littleMapOptions": {

            "center": {

                "x": 12024583.8595938,

                "y": 4101942.08146721

            },

            "scale": 5.4085234291297E-08,

            "layers": [

                {

                    "layerType": "TILE",

                    "name": "China",

                    "url": "http://192.168.120.40:8090/iserver/services/map-China100/rest/maps/China"

                }

            ]

        }

    }

}

exportOptions

exportOptions 对象是必选对象,用于定义打印的输出信息,由以下参数组成:

  • format:必选参数Web 打印输出的格式,目前支持:PNG、PDF。
  • dpi:可选参数,Web 打印输出的分辨率,单位为每英寸点数。默认值为 96 dpi,最大值为 400 dpi。
  • scale:可选参数,Web 打印输出的地图比例尺。
  • rotation:可选参数,Web 打印输出的地图角度。
  • center:可选参数,Web 打印输出的地图中心点。

示例:更新打印输出的格式为 PDF、打印的 dpi 为300dpi

{

    "exportOptions": {

        "format": "PDF",

        "dpi": 300,

        "center": {

            "x": 100,

            "y": -10

        },

        "scale": 0.0001

    }

}

图例元素自动排版规则

iServer Web 打印服务为用户提供了图例元素自动排版规则。当 Web 打印布局中的图例元素包含多个图例子项时,无需手动调整图例子项的字号、边距等参数,系统即可自动排版。

图例元素自动排版功能当前依照图例子项全部显示的规则,具体参数及设置方法参见:layoutOptions,具体规则如下:

  • 支持设置列数。图例框大小不变时,图例子项和图例标题的字号会自动随着列数的增加而变小。
  • 支持设置图例标题的字体和字号,图例子项的字体。
  • 图例子项的边距根据百分比进行自动调整,如下图所示:

  • ①图例标题与图例子项的垂直距离为图例子项高度的10%。
  • ②图例子项与图例子项的垂直距离为图例子项高度的20%。
  • ③图例项列与列之间的水平距离为图例子项高度的20%。
  • ④图例符号与图例文本之间的水平距离为图例子项高度的20%