We have customers using code 39 & 128 barcode fonts. We provide IDAutomation and think it's a good solution for it. If you're using Code 128 it has the necessary Java classes that you can add to your Maximo install to be able to use it in reports. As you mentioned, Code 39 just requires it to be installed (though remember that WebSphere caches fonts from the system on startup so it will require a restart to pick up the new font). All of our customers embed it into reports (sometimes in a bulk label report that gets executed from the list tab if they use Maximo to print the barcode for the parts). Printing works for us, though we also don't embed it as dynamic images (just text on a report) so I'm not sure about the issue you reported. If the user doesn't have the font on their local computer, the HTML viewer won't work since that uses local fonts but any export (PDF, Excel, etc.) or direct print (which generates a PDF) should work.
On the Anywhere front, the only use case related to barcode is for items (primarily in the inventory apps, such as Issues & Returns). Most of which use only the camera on the device which works OK for infrequent requests. We've had some request information on the bluetooth scanner support, but I don't think any have actually gone that approach for scanning. None have requested printing barcodes from the Anywhere app. If you're on a recent version of Maximo (I think 18.104.22.168+) and connected, you could execute a report via the REST API but I'm not sure how you would then send it to the printer. There are probably some cordova plugins that would enable you to send the output to a printer but it would definitely require some R&D to see if it's possible. It also gets into a gray area as Anywhere has licensing restrictions currently that enhancements to the app must not change the intent of the app or something along those lines. So while adding new fields and implementing custom validation and logic in the apps is OK, making the apps do something different than their intent is not OK.