Blacking a name out is easy, and it costs you the file: nobody can read it, and it no longer ties to the 1099 or the workpaper it belonged with. A tax file set is nothing but ties. So every identifying value is replaced instead — and the same real value becomes the same stand-in in every file, so the set still hangs together and no number moves.
One client, three files. The name and the SSN tie the W-2 and the 1099 together; the workpaper ties to both by company name. Hover a value to see where else it appears.
Put through the pipeline and rendered: the stand-ins are typed into the space each value occupied, the city, state, ZIP and every dollar amount are untouched, and the page still reads as a W-2. Nothing is selectable in it — the document was rebuilt from pixels, so the original characters are not in the file to be copied, recovered or indexed.

It runs on the accountant's own machine, over every document in a demo client — as each one lands, before anyone has to remember to ask.
They decide which return gets filed and which local tax applies, and a city does not identify a household. The street line does — so the street line is what goes.
Wages, withholding, basis, balances. A number is not an identity, and a tax document with its numbers taken out is not a tax document.
A two-word name becomes a two-word name. A hyphenated ID keeps its hyphens. A legal suffix stays an LLC. It still reads as a W-2, because a document nobody can read proves nothing.
Every file in a set agrees with every other, and the stand-in is never a name borrowed from somebody who exists.
A name is read and a stand-in is chosen for it — in the same script, the same register, the same shape — and recorded. Every later file uses the one already chosen, so the W-2, the 1099 and the spreadsheet name the same person.
Stand-ins are drawn from ranges that cannot be issued: a social security number in a block that was never assigned, a phone number in the range reserved for fiction, an email on a domain that can never be registered. A fake that could be someone's real number is a new problem, not a fix for the old one, so the rebuilt pages are read back by a person before anything is shown.