If you use
SimpleOpen() to open book files non-interactively, files with missing graphics, missing fonts, or other issues will not open. Use
Open() with an appropriate set of parameters to solve this problem.
The following function sets up open preferences that allow files of the following types to open without user interaction:
- Files which reference missing files.
- Files that are in an old FM version.
- Files with missing font issues.
- Files that are locked.
function getOpenPrefs() {
var params, i;
params = GetOpenDefaultParams();
i = GetPropIndex(params, Constants.FS_RefFileNotFound);
params[i].propVal.ival =
Constants.FV_AllowAllRefFilesUnFindable;
i = GetPropIndex(params, Constants.FS_FileIsOldVersion);
params[i].propVal.ival = Constants.FV_DoOK;
i = GetPropIndex(params, Constants.FS_FontChangedMetric);
params[i].propVal.ival = Constants.FV_DoOK;
i = GetPropIndex(params, Constants.FS_FontNotFoundInCatalog);
params[i].propVal.ival = Constants.FV_DoOK;
i = GetPropIndex(params, Constants.FS_FontNotFoundInDoc);
params[i].propVal.ival = Constants.FV_DoOK;
i = GetPropIndex(params, Constants.FS_LockCantBeReset);
params[i].propVal.ival = Constants.FV_DoOK;
i = GetPropIndex(params, Constants.FS_FileIsInUse);
params[i].propVal.ival = Constants.FV_OpenViewOnly;
return (params);
}
The function to open the book using these parameters is shown here:
function openBookFiles(book) { var doc, component, compName; var openParams, openReturnParams; openParams = getOpenPrefs (); openReturnParams = new PropVals(); component =book.FirstComponentInBook; while(component.ObjectValid() ){ compName = component.Name; doc = Open(compName, openParams, openReturnParams); component = component.NextComponentInBook; } }