Suite

Changement de couleur du symbole du texte d'impression Javascript d'ArcGIS

Changement de couleur du symbole du texte d'impression Javascript d'ArcGIS


J'ai une application ArcGIS Javascript Map qui utilise la tâche d'impression pour exporter la carte au format PDF. J'ai donné aux utilisateurs la possibilité d'ajouter des graphiques à la carte, tels que des points ou des polygones, ainsi que la possibilité d'ajouter un graphique TextSymbol afin de personnaliser la sortie de la carte PDF. Le problème que j'ai est avec l'apparence TextSymbol sur l'impression PDF. Pour une raison quelconque, je ne peux pas changer la couleur du texte sur la sortie. Même si le texte sur la carte Web est rouge, la couleur du texte sur le pdf est noire. J'ai appliqué du code pour changer la couleur des textLayers en effectuant un esriRequest.setRequestPreCallback pour intercepter le JSON allant au service d'impression. Cependant, le texte finit toujours en noir sur la sortie. Mon code pour cela est ci-dessous. J'ai fait console.logs afin de voir à quoi ressemble l'objet après avoir changé la couleur et cela le change, mais le texte finit toujours par être noir sur la sortie pdf. Est-ce que quelqu'un sait comment changer la couleur du texte sur la sortie PDF ou comment ajouter un certain type d'arrière-plan rectangle sur le TextSymbol afin que les étiquettes soient plus visibles sur les sorties PDF ?

function changeTextColor(){ esriRequest.setRequestPreCallback(function(ioArgs) { if (ioArgs.content && ioArgs.content.Web_Map_as_JSON){ var webMapAsJson = ioArgs.content.Web_Map_as_JSON; var webMapObj = JSON.parse(Avar dans webMapObj.operationalLayers){ if (webMapObj.operationalLayers[w].id = "map_graphics" && webMapObj.operationalLayers[w].url == undefined){ for (var l dans webMapObj.operationalLayers[w].featureCollection.layers) { if (webMapObj.operationalLayers[w].featureCollection.layers[l].layerDefinition.name == "textLayer"){ for (var f in webMapObj.operationalLayers[w].featureCollection.layers[l].featureSet.features) { // actuellement, j'essaie simplement de changer le texte en turquoise, mais il continue de renvoyer du texte noir sur la sortie pdf webMapObj.operationalLayers[w].featureCollection.layers[l].featureSet.features[f].symbol.color[0 ] = 0 ; webMapObj.operationalLayers[w].featureCollection.layers[l].featureSet.features[f].symbol.color[1] = 255 ; webMapObj.operationalLayers[w]. featureCollection.layers[l].featureSet.features[f].symbol.color[2] = 255 ; } } } } } ioArgs.content.Web_Map_as_JSON = JSON.stringify(webMapObj); } renvoie ioArgs ; }); }

J'ai résolu mon problème en utilisant la réponse à ce fil - https://geonet.esri.com/thread/118646. Je n'ai finalement pas eu besoin de faire un esriRequest.setRequestPreCallback. J'ai créé un menu déroulant d'options simple pour la couleur et la taille que l'utilisateur peut sélectionner, puis dessiner un symbole de texte à l'aide de ces options et il finit par s'afficher correctement sur la sortie PDF.