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文檔。如下:


再次執行查看效果:

 

問題解決了~~~

----------------歡迎來訪,拒絕轉載----------------


版權聲明:本文為博主原創文章,未經博主允許不得轉載。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM