Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

How to include Document level JavaScript in Adobe Acrobat Standard DC for all documents.

Community Beginner ,
Aug 20, 2020 Aug 20, 2020

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.

TOPICS
Acrobat SDK and JavaScript
2.1K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 2 Correct answers

Community Expert , Aug 20, 2020 Aug 20, 2020

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. 

Translate
Community Expert , Aug 20, 2020 Aug 20, 2020

Yes.

Translate
LEGEND ,
Aug 20, 2020 Aug 20, 2020

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. 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 20, 2020 Aug 20, 2020

Thanks for the information and prompt response. 'setInterval' idea seems to be working out, but not 100% there yet.

Appreciate your help.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 20, 2020 Aug 20, 2020

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. 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 20, 2020 Aug 20, 2020

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.

 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 20, 2020 Aug 20, 2020

I think checking for document dirty will do the trick?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 20, 2020 Aug 20, 2020

Yes.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 21, 2020 Aug 21, 2020

If you don't save the file after setting the action it won't work, of course...

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 21, 2020 Aug 21, 2020

Add

doc.save(doc.path)

to your script after injecting the actions

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 24, 2020 Aug 24, 2020

Is there a way to remove injected actions? for example, removing willClose action.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 24, 2020 Aug 24, 2020

Use a empty script at setAction.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 26, 2020 Aug 26, 2020

I am trying save document using javascript - doc.save(doc.path). But it throws an error - TypeError:doc.save is not a function.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 26, 2020 Aug 26, 2020

Use this.saveAs

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 29, 2020 Aug 29, 2020

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. 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 29, 2020 Aug 29, 2020
LATEST

The app closing does not trigger any event you can use.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines