On Bing maps I just confirmed that MAP_STYLE_AERIAL_WITH_LABELS is what doesn't print vs your version of MAP_STYLE_AERIAL. Strangely similar to the textsymbol bug. Thanks.
Also a bug...the print dijit is sending the wrong layer.type property to the print service. It is sending "BingMapsaerialWithLabels" instead of "BingMapsHybrid". Here's a workaround: http://jsfiddle.net/axPwz/The key is using esri.setRequestPreCallback to update the JSON that's sent to the print service. Here's the relevant code:
function fixBingHybrid(ioArgs) {
// look for requests to the print service
if ( ioArgs.url == app.printUrl + "/execute" ) {
var webmapJson = dojo.fromJson(ioArgs.content.Web_Map_as_JSON);
// check that the webmap JSON has operational layers
// bing is always considered an operational layer
if ( webmapJson.operationalLayers.length ) {
dojo.forEach(webmapJson.operationalLayers, function(lyr) {
// correct the type property for the bing hybrid layer
if ( lyr.type && lyr.type == "BingMapsaerialWithLabels" ) {
lyr.type = "BingMapsHybrid";
}
});
ioArgs.content.Web_Map_as_JSON = dojo.toJson(webmapJson);
}
}
return ioArgs;
}
And this line in the init function:
esri.setRequestPreCallback(fixBingHybrid);