We are developing an InDesign plug-in that, in part, helps automate the bundling process for DPS. The system is distributed and so there is no guarantee document fonts will conform across multiple workstations, potentially in different parts of the planet.
As such, the automation downloads non-resident files and their linked assets from remote storage and begins to process them...however, if on open the document links cannot be found or if fonts are missing, ID throws both a missing links and missing fonts alert.
The former is easy to circumvent simply by setting linking preferences (checkLinksAtOpen, findMissingLinksAtOpen) to false. HOWEVER, the big bogeyman is the missing fonts alert. On the scripting side, suppressing those alerts works via setting user interaction levels to NEVER_INTERACT within the scripting preferences. But this doesn't work for a native EB plug-in.
Has anyone out there run into this issue and discovered a way to suppress alerts? Thanks in advance.
Yes, but to do what? The goal here is to suppress user interaction within the CSEB plug-in where a bunch of well-defined processing code already is executing, not to rewrite and transer that functionality to JS. But you've identified the real issue: can the Find Fonts dialog be aborted? (Have you checked that yet?).
Since the plug-in already has access to application ScriptPreferences and CAN set the interaction flags, it seems to me that the Find Fonts dialog is not subject to the user interaction level given what we're seeing. Furthermore, while ID does, indeed, know that a modal dialog is active (the modal open flag is set true in the app when when the dialog appears), when the Dialogs array maintained by the app is empty, there's nothing there so you can't call destroy on the thing.
It just seems to be one of those little anomalies that probably has an opaque work around someone on the Adobe team will have to elucidate.