Web 打印服务默认开启异步打印模式。创建一个打印任务的步骤如下:
- 访问 iServer 服务列表,选择 webprinting/rest 服务资源
- 依次点击 webprinting -> v1 -> jobs,进入打印任务列表资源页面
- 点击创建打印任务,进入创建打印任务资源页面
- 输入 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,具体规则如下:
- 支持设置列数。图例框大小不变时,图例子项和图例标题的字号会自动随着列数的增加而变小。
- 支持设置图例标题的字体和字号,图例子项的字体。
- 图例子项文本默认字号为图例符号高度的 90%;当子项文本长度过长时,会进行文本换行和字号缩小。
- 图例符号默认宽高比为 2:1。
- 图例子项的边距根据百分比进行自动调整,如下图所示:
- ①图例标题与图例子项的垂直距离为图例子项高度的 10%。
- ②图例子项与图例子项之间的行间距为图例符号高度的 50%。
- ③图例子项列与列之间的列间距为图例符号宽度的 25%。
- ④图例符号与图例子项文本之间的水平距离为图例符号宽度的 25%。