Tengo una aplicación de mapas de ArcGIS Javascript que utiliza la tarea de impresión para exportar el mapa a un PDF. He dado a los usuarios la posibilidad de añadir gráficos al mapa, como puntos o polígonos, junto con la posibilidad de añadir un gráfico TextSymbol para personalizar la salida del mapa en PDF. El problema que tengo es con la apariencia del TextSymbol en la impresión del PDF. Por alguna razón no puedo cambiar el color del texto en la salida. Aunque el texto en el mapa web es rojo, el color del texto en el pdf es negro. He aplicado código para cambiar el color de los textLayers realizando un esriRequest.setRequestPreCallback para interceptar el JSON que va al servicio de impresión. Sin embargo, el texto sigue siendo negro en la salida. Mi código para eso está abajo. He hecho console.logs para ver cómo queda el objeto después de cambiar el color y sí lo cambia, pero el texto sigue apareciendo en negro en la salida del pdf. ¿Alguien sabe cómo cambiar el color del texto en la salida del PDF o sabe cómo añadir algún tipo de fondo rectangular en el TextSymbol para que las etiquetas puedan ser más visibles en las salidas del 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(webMapAsJson);
for (var w in webMapObj.operationalLayers){
if (webMapObj.operationalLayers[w].id = "map_graphics" && webMapObj.operationalLayers[w].url == undefined){
for (var l in 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){
//currently I am just trying to change the text to be turquoise but it keeps returning black text on pdf output
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);
}
return ioArgs;
});
}