ArcGIS API for javascript开发笔记(三)——解决打印输出的中文为乱码问题

感谢一路走来默默支持和陪伴的你~~~

----------------------欢迎来访,拒绝转载----------------------


1.      调用ArcGIS API的Print实现地图的打印输出,部分代码如下:

            //打印输出的参数数组,为打印输出的模板提供参数准备
            var layouts = [{
                name:"Letter ANSI A Landscape",
                label:"Landscape(PDF)",
                format:"pdf",
                options:{
                    "legendLayers":[legendlayer0,legendlayer1,legendLayer3],
                    'scalebarUnit':"Miles",
                    'titleText': dom.byId('print_title').value,
                    "authorText":dom.byId('print_author').value,
                    "copyrightText":dom.byId('print_copyright').value
                }
            },{
                name:"Letter ANSI A Portrait",
                label:"Portrait(Image)",
                format:"jpg",
                options:{
                    "legendLayers":[legendlayer0,legendlayer1,legendLayer3],
                    "scalebarUnit":"Miles",
                    "titleText": dom.byId('print_title').value,
                    "authorText":dom.byId('print_author').value,
                    "copyrightText":dom.byId('print_copyright').value
                }
            }];

            //定义打印输出的模板
             var templates = array.map(layouts,function(lo){
                 var t = new PrintTemplate();
                t.layout = lo.name;
                t.label = lo.label;
                 t.format = lo.format;
                t.layoutOptions = lo.options;
                return t;
                });

            //打印输出功能
                printer = new Print({
                    map: map,
                    templates:templates,
                    url: "http://192.168.18.102:6080/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task"
                }, dom.byId("printButton"));
               printer.startup();
               });


在浏览器端执行,输入图名、单位等信息并进行打印输出,选择打印的方式,如下:


 

以为你会愉快的运行,然而却遇到了一个酱紫的问题:输出的中文全部为乱码,怎么办呢?



-----------------------这是一条华丽丽的分割线---------------------

2.问题分析

 

仔细查阅,打印的API中也并为提供对PrintTemplate的字体的设置,然而PrintTask服务也是调用了ArcGIS Server中内置的出图模板,找到目录,打开模板进行查看:


打开在代码中所使用的相应的模板进行查看,惊奇大发现:所有输出为乱码的图名、单位名称等在模板中的默认字体均为Arial欧洲字体,怎能不可乱码~~~



-----------------------这是一条华丽丽的分割线---------------------

3. 问题解决:

很简单喽,修改每一处的字体为中文字体:以图名为例,右键单击图名选址properties,点击Change Symbol,修改字体类型。修改完毕后保存并关闭MXD文档。如下:


再次执行查看效果:

 

问题解决了~~~

----------------欢迎来访,拒绝转载----------------


版权声明:本文为博主原创文章,未经博主允许不得转载。

 

转载于:https://www.cnblogs.com/gishh/p/4967445.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值