Copy link to clipboard
Copied
Hi,
I am new to framemaker. We have a list of Framemaker document files (*.fm files) coming into a folder. We need to pick up these files and convert to xml format (same as the saveAs opertion from the File menu).
I have written the follwing function to Save fm files to xml
| Code to Save fm files to xml files |
|---|
function saveAsXml (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 (/\.[^\.\\]+$/,".xml");
var i = GetPropIndex(params, Constants.FS_FileType); params.propVal.ival = Constants.FV_SaveFmtXml; // Save the document as XML. doc.Save(saveName, params, returnParamsp); } |
How to automate this process so that code checks -
1) New fm files in the folder
2) Saves the fm file as xml
3) Moves the saved fm file to a different folder
Thanks,
GC
[Message moved to Scripting Forum by moderator]
Copy link to clipboard
Copied
Have a look at the sample script below. The "while" loop waits for the specified number of milliseconds, then reads the contents of a directory and processes every individual file in the directory. In my example, it just prints the file path to the console. You would replace this part with your Open / Save as / Move sequence.
For more file system commands, refer to Adobe's Javascript Tools Guide, "File object functions".
var stop = false;
while( stop==false ) {
// Wait for 20.000 ms
$.sleep(20000);
var fld = new Folder("c:/incoming");
var filesInFld = fld.getFiles("*.fm");
for(var f=0; f < filesInFld.length; f++) {
// process the individual file
$.writeln(filesInFld
); }
// Exit the loop after 19:00
var time = new Date();
if( time.getHours() > 19 ) stop = true;
}
Copy link to clipboard
Copied
JoH's script is good but it may eventually time out or run out of memory. Where are the .fm files coming from? A better approach may be to have a script on their machine that will automatically save and send an XML file to the incoming folder whenever they close the .fm document.
Get ready! An upgraded Adobe Community experience is coming in January.
Learn more