Copy link to clipboard
Copied
I have folder level Javascript at 'C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\Javascripts'. The script at this location executes when Adobe App is opened, and in this script we already have code to add custom menu items. At this point "app.activeDocs" is null or empty.
I would like to execute a javascript at Document level so that I can get current 'Doc' object and set Actions (DidSave,WillClose) using 'myDoc.setAction("DidSave", "TrustedCustomSave();");'
Also, this Document level javascript needs to be applicable for all pdf documents.
version- AdobeAcrobat Standard DC
Please suggest a way to set actions (DidSave,WillClose) on Document load.
Any help would be much appreciated.
You'll seed to set an interval that will look for changes to the items in app.activeDocs and keep track of which files you've updated... maybe by setting a metadata property.
Yes.
Copy link to clipboard
Copied
Folder level JavaScript runs and completes before any document is opened. Acrobat has no mechanism for the folder level script to sit and wait for docs to open. You have to take some action (interactive or external) to run the script at document level.
Copy link to clipboard
Copied
Thanks for the information and prompt response. 'setInterval' idea seems to be working out, but not 100% there yet.
Appreciate your help.
Copy link to clipboard
Copied
You'll seed to set an interval that will look for changes to the items in app.activeDocs and keep track of which files you've updated... maybe by setting a metadata property.
Copy link to clipboard
Copied
It seems to be working. I will provide a detail update tomorrow. Thank you very much for the 'interval' idea and prompt response.
But, When setAction(willClose,didSave) is added via Javascript, even though there were no changes to the document by the user, when I try to close- it gives Adobe save warning "Do you want to save changes to [filename] before closing?". Technically, it makes sense as javascript updated 'doc' object. However, from the perspective of the user no changes were made to the document, so they should not see the warning message, right.
So, do you have any suggestions how to work around this issue/behaviour?
Appreciate your help.
Copy link to clipboard
Copied
I think checking for document dirty will do the trick?
Copy link to clipboard
Copied
Yes.
Copy link to clipboard
Copied
If you don't save the file after setting the action it won't work, of course...
Copy link to clipboard
Copied
Add
doc.save(doc.path)
to your script after injecting the actions
Copy link to clipboard
Copied
Is there a way to remove injected actions? for example, removing willClose action.
Copy link to clipboard
Copied
Use a empty script at setAction.
Copy link to clipboard
Copied
I am trying save document using javascript - doc.save(doc.path). But it throws an error - TypeError:doc.save is not a function.
Copy link to clipboard
Copied
Use this.saveAs
Copy link to clipboard
Copied
Can I differentiate between app close and document close? or is there a set action for App close?
I have a custom function for Will Close and in that custom function I am making couple of Net.Http calls. This works if document is closed, meaning - all calls are made. But if I close application will close custom function is executed but not all methods in will close function, just the first one gets executed and it exits.
Copy link to clipboard
Copied
The app closing does not trigger any event you can use.