Il n'est pas rare d'avoir des workflows FrameMaker « mixtes », où les membres d'une équipe utilisent différentes versions de FrameMaker. Les documents enregistrés dans une version inférieure peuvent être ouverts avec des versions supérieures, mais il est impossible d'ouvrir avec une version inférieure de FrameMaker les documents enregistrés dans une version supérieure. Il existe deux solutions : premièrement, vous pouvez utiliser la version supérieure pour « enregistrer dans une version inférieure ». Toutefois, vous ne pouvez enregistrer que vers la version immédiatement inférieure, par exemple de FrameMaker 12 à FrameMaker 11. Deuxièmement, vous pouvez enregistrer le document au format MIF (Maker Interchange Формат), auquel cas vous pourrez l'ouvrir avec n'importe quelle version inférieure de FrameMaker.
Le principal écueil de l'enregistrement au format MIF est qu'il faut y penser. Mais avec ExtendScript, vous pouvez l'automatiser. Vous pouvez créer un script qui enregistrera automatiquement le document au format MIF chaque fois que vous choisissez File > Save ou appuyez sur Control+S. Lorsque vous êtes prêt à transmettre le fichier MIF à un autre membre de l'équipe susceptible d'utiliser une version inférieure de FrameMaker, vous savez qu'il reflètera toujours les dernières modifications enregistrées.
Voici comment mettre en place le script ci-dessous :
Notification (Constants.FA_Note_PostSaveDoc, true);
function Notify (note, object, sparam, iparam) {
switch (note) {
case Constants.FA_Note_PostSaveDoc :
saveAsMif (object);
break;
}
}
function saveAsMif (doc) {
// Get required parameters for the save function.
var params = GetSaveDefaultParams();
var returnParamsp = new PropVals();
// Replace the .fm extension with .mif.
var saveName = doc.Name.replace (/\.[^\.\\]+$/,".mif");
// Get the FileType save parameter and set it to MIF.
var i = GetPropIndex(params, Constants.FS_FileType);
params[i].propVal.ival = Constants.FV_SaveFmtInterchange;
// Save the document as MIF.
doc.Save(saveName, params, returnParamsp);
}