It's a bit old now this question, but I came here via Google, and someone else might also. My solution was to create a Preflight profile (Acrobat 9 Pro) which errored on font information. Clicking on the font name in the results then jumps to the page and highlights the text. Downside is that you get a list of all fonts on all pages organised by page rather than by font name, but it provided a solution for me.
1) Create a new Custom preflight profile
Advanced|Preflight|Options|Create New Preflight Profile
2) Give the profile a name (Fontfinder, say)
3) In the left window of the dialog click "Custom checks"
4) In the right window of the dialog below the blank box click the plus symbol to create a new check and include in current profile
5) Click "text" in the Group, the bottom property is "Text size". Select this and click "Add"
6) The pane below now has more options. Click on the drop down options probably labelled "equal to" and select "less than"
7) Enter a large value in the Number field. I entered 500
8) Top left of the dialog when check fires report as... and enter something like Text size 500 pt or less and click OK. There should be a new custom check in the pane with a red cross beside it. If the cross is not red, click on the check label, and select "error" below the pane
Repeat the steps above for another error check, but changing the option for 500 to "greater than or equal to", and Check fires report as Text 500 pt or greater
9) Click OK in the Edit Profile Dialog
10) Run the profile on your PDF
I set the font to error on a large point size so that all of the errors would report in a group. The second check is simply to catch any font larger than that. I suppose you could check for pt size 50000 and have the same result.
Type3 fonts are incredibly rare in PDF files. Type3 fonts are actually PDF fonts, in that the glyphs are described in PDF page graphic operators. So you would never encounter a type 3 font outside of a PDF, since only a PDF renderer would know what to do.
The glyphs are defined in the object referenced by the CharProcs key. So Object 239 in your last example. The /FontBBox is normally just used for text selection. You could probably just union all all the FontBBoxes.
You could check the graphic operators, or even just hash the streams, to find matches. Then perhaps you could synthesize new fonts with the collected fonts. However, you also need to check the encodings. If each font is encoded differently, with different character codes mapping to different glyphs, then you need to go back and also rewrite the page content streams, using the new character codes. Finally, you probably want to keep the ToUnicode mappings correct (if you want to preserve text selection/extraction), which means also tracking character code to unicode mappings and generating new ToUnicode CMaps.
In short, repairing as a post-processing step is non-trivial.
It is typically much better/easier to go back and deal with the root of the issue, when you create the PDF files, and merge, so you don't have the issue.
Best Answer
If you are using PDF-XChange Viewer, do this:
window)