2016-10-04 13 views
0

JavaScriptがArcGIS APIを使用してPDFレポートを表示する必要があります。私のArcGISサーバーからレポートが作成されているため、このAPIを使用しています。JavaScript用ArcGIS API - PrintTaskは機能しません

JSコード:

function printReport(){ 
    var printTask = new PrintTask({ 
     url: ptReport, 
     mode: "async" 
    }) 
    var template = new PrintTemplate({ 
     format: "pdf", 
     exportOptions: { 
     dpi: 96 
    }, 
    outputSize:[800, 1100], 
    layout: "", 
    layoutOptions: { 
     titleText: "", 
     authorText: "" 
     } 
    }); 
    var params = new PrintParameters({ 
     view: view, 
     template: template, 
     extraParameters: { 
     "pPerdidaCablesConectores" : "1 dB", 
     "pOtrasPerdidas" : "0 dB"   
     } 
    });  
    printTask.execute(params).then(sendRequestPrint, showError); 
} 
function sendRequestPrint(data){   
    console.log(data.value); //it always is void 
} 

私はそれが正常に動作printReportメソッドを実行すると、実際には、レポートがサーバーに作成され、私はのArcGISから来る応答を分析していますので、私はそれを知っていますサーバー:sendRequestPrint方法がrunnedとき

enter image description here

この時点ですべての作業罰金は、しかし、応答は常に無効に来ます。

何が起こっているのですか。レポートが作成されたかどうかが応答に含まれないのはなぜですか。

答えて

0

PrintTaskcomplete機能パラメータを確認してください。返される型はDataFileです。

https://developers.arcgis.com/javascript/3/jsapi/datafile-amd.html

PrintTaskは、内部サーバからの応答を解析し、別のオブジェクトを返します。

function sendRequestPrint(data){   
    console.log(data.url); 
} 
0

この動作は仕様です。あなたはonCompleteイベントをリッスンし、DataFileオブジェクトを検査し、返されたURLに別の要求をしてpdfを取得する必要があります。これはあなたのコードですでにやっていることです。あなたは<> .value.urlにあるドキュメントのURLを掲載画像にはhttps://developers.arcgis.com/javascript/3/jsapi/printtask-amd.html

はPrintTask例のマニュアルを参照してください。

だからあなたのコールバックのようなものでなければなりません:あなたはあなたのため、このプロセスを自動化し、直接PrintTaskに対処しないようにプリントdijitのを使用したい場合があり

function sendRequestPrint(data){   
    var url = data.value.url; 

    // make a request to get the pdf 
    // do other stuff... 

} 

https://developers.arcgis.com/javascript/3/jsapi/print-amd.html

0

私は

を試してみました
function sendRequestPrint(data){   
    console.log(data.url); 
} 

、それはより

を働きますks多くの人。

+0

Plsは自分で投稿するのではなく、正しい答えをマークします。ありがとう –

関連する問題