在vue中使用arcgis for javascript 的地图打印使用 PrintTemplate设置打印模板
loadModules([
"esri/tasks/PrintTask",
"esri/tasks/support/PrintTemplate",
"esri/tasks/support/PrintParameters",
], {
url:'',
css:''
}).then(([PrintTask, PrintTemplate, PrintParameters]) => {
let webmap = new WebMap({
portalItem: {
id: "d6d830a7184f4971b8a2f42cd774d9a7"
}
});
let view = new MapView({
container: "viewDiv",
map: webmap
});
let printTask = new PrintTask({
url: "https://utility.arcgisonline.com/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task"
});
let template = new PrintTemplate({
exportOptions: {
dpi: 96,
},
attributionVisible:false,
format: "jpg",
layout: "a3-landscape",
preserveScale: false,
scalePreserved: true,//打印地图保留地图比例还是地图范围比例
layoutOptions:{
},
});
let params = new PrintParameters({
view:view,
template: template
});
printTask.execute(params).then(result, errorResult);
function result(evt) {
console.log(evt.url)//打印图片地址
}
function errorResult(err) {
console.log(err)
}
})
PrintTemplate
用户生成打印页面的布局模板选项
名称 类型 说明 attributionVisible Boolean 如果为false,则属性不会显示在打印输出上 exportOptions Object 定义贴图宽度、高度和dpi forceFeatureAttributes Boolean 如果为true,则要素的属性将包含在要素集合层中,即使渲染不需要这些属性 format String 打印地图的输出格式
pdf、png32、png8、jpg、gif、eps、svg、svgz
layout String 当值为
map-only
或为空时,输出地图不包含任何页面布局环境(例如,标题、图例、比例尺等)。打印服务提供在可能值中列出的开箱即用模板。服务器管理员可以向打印服务添加其他模板layoutOptions Object 布局 outScale Number 打印地图的可选地图比例 scalePreserved Boolean 定义打印的地图应保留地图比例还是地图范围 showLabels Boolean 如果为true,则标签将显示在布局上
layoutOptions 定义布局元素
名称 类型 说明 titleText String 标题文本元素,则用于地图标题的文本 authorText String 作者文本元素,则为作者使用的文本 copyrightText String 版权文本元素,则用于版权的文本 scalebarUnit String 比例尺单位:默认:Miles;
Miles(英里)、Kilometers(公里)、Kilometers(米)、Feet(英尺)
legendLayers [] 如果打印不需要图例 legendLayers =[] customTextElements [] 页面布局上自定义文本元素的文本,值必须是字符串,自定义文本元素必须存在于打印服务中 如果打印图例出现乱码问题或者地图标注中文问题,设置字体为宋体或者其他字体
参考一下链接解决中文乱码问题:
https://www.pianshen.com/article/25991065688/