Previous | Next | (P-PDF) Developers
Topic: Re: GetJSObject() from C++
Conf: (P-PDF) Developers, Msg: 105982
From: kirkoman
Date: 2/14/2004 08:15 AM
> Then what if you use the new AddDocumentJavaScript() command to
> add a JS and then call it from your ExecuteThisJavaScript()??
I tried this, but it did not work. Turns out I was not quite right about the restrictions on SaveAs(). It is actually in the JS Ref, but I did not read carefully enough: SaveAs() is disabled except from console, batch, and menu events. In other words, you just plain *have* to open the the Acrobat app and touch a button or type something in order to save in a different format. This policy seems intentionally to disallow externally-scripted conversion of files. I guess I can understand this, since they have to protect Acrobat from being turned into a server.
So I'm giving up on this feature - maybe in the future we will write a plugin or some kind of workflow that starts from Acrobat.
Thanks for your help, Leonard.
To anyone else trying to find out how to get the OLE Automation interface working from C++: Even though the IDispatch object returned by GetJSObject() does not give up its ITypeLib, you *can* find and invoke methods and properties on it by name. As I discovered after my initial post, the only problem with my attempt to get the dispatch ID of the "app" object (see the code from my first post) is that I was not using a wide string for the "app" constant (oops!). It should read:
OLECHAR FAR *rgszNames = (unsigned short *)L"app"; // Note the "L"
Good luck