there will be a set of characters that can be encoded in UTF8mb4, and another set of characters that can be encoded in ISO8859_1. while there will be many characters that are common to both sets, there will be some that can only be represented in one or the other.
one approach would be to store each string in multiple formats: ASCII (without accents), UTF8mb4, and ISO8859_1. then you can do searches on the ASCII version of any given string, while 1) presenting the user on-screen with the UTF8mb4 string and 2) when printing sending the ISO8859_1 to the "fiscal printer" (i have no idea what a 'fiscal' printer is).
the easiest way to introduce this sort of change is to NOT perform any conversions initially, instead arranging the user front-end so that whenever it encounters a field with one or more encodings missing, the user is prompted to enter the missing one(s) manually. while generating a degree of additional work for the user initially, over a period of time the number 'missing fields' will slowly decline.
to what extent does this sort of solution solve your problem?
cheers,
rob :-)