Copy link to clipboard
Copied
I have a form that is used on both my Mac and Windows computers. It uses both document level and folder level scripts. The folder level scripts are identical on the two computers.
A menu item calls four folder level scripts that save different fdf files to 4 subfolders under the same parent folder. On the Mac, all four scripts work as intended. On the PC, the first of the four scripts works but the other three seem to be completely ignored. No errors are thrown.
For purposes of my question, please assume the path to the subfolders is correctly structured. So here’s my question: are anomalies that are characterized by some scripts not quite working right somewhat common when using the same form on more than one operating system?
Security settings in Acrobat could easily block data export. This would be reported in the Console.
Have you check your security preferences? Is Protected Mode turned on?
Have you tried running the non-working scripts from the console window?
Copy link to clipboard
Copied
The same version of Adobe Acrobat?
Why does you use four folder level script files for one menu item?
Copy link to clipboard
Copied
Because sometimes I call only one of them rather than all four.
Copy link to clipboard
Copied
It's rarely the operating system. Did you check the JavaScript console? (You say "no errors are thrown" but some people assume JavaScript errors will result in a pop-up message).
Copy link to clipboard
Copied
I wasn't suggesting that it was the operating system, but rather asking if it is known that when using the same form in Acrobat on different operating systems, there occasionally may be something that works just fine in one system but not the other. I prefaced that by saying for purposes of my question, please assume the path to the subfolders is correctly structured because I know that that is not the issue.
Copy link to clipboard
Copied
The PDF form scripts work identically on both platforms. The problem certainly lies elsewhere.
Copy link to clipboard
Copied
Yes, and that's why I asked my question. When the scripts work in Mac with no problem, they should work on on a PC also.
Copy link to clipboard
Copied
Security settings in Acrobat could easily block data export. This would be reported in the Console.
Have you check your security preferences? Is Protected Mode turned on?
Have you tried running the non-working scripts from the console window?
Copy link to clipboard
Copied
Scripts in Acrobat are 99.9% platform-independent, meaning they should work just the same on both Windows and Mac computers. When the script doesn't work on Windows, is there an error message of some kind? Did you check the JS Console?
Copy link to clipboard
Copied
Sorry for the slow response. Yes, the console is reporting this:
"GeneralError: Operation failed.
Doc.exportAsFDF:7:Field btn.Image.Folder:Mouse Up"
To repeat briefly, the only difference between the Mac version and the Windows version of my form are the paths with file names for the fdf files that saved by the scripts. Otherwise the scripts are exactly the same and work on the Mac but only partially on the PC.
The scripts construct absolute paths for each fdf file to be saved. The paths, file names and extensions are passed to the folder level scripts by parameters. I placed an app alert in each folder level script that shows me the path & file name represented by each "pathAndFile" parameter below, and confirmed that the path and filename for each is correctly constructed as "/C/Users/Dropbox/MyFolder/MyFile.fdf"
As to the console message, here are extracts of each instance of exportAsFDF from my folder level scripts, but I see nothing wrong with these:
this.exportAsFDF({bAllFields: true, cPath: "" + pathAndFile});
this.exportAsFDF({bAllFields: true, cPath: "" + pathAndFile});
this.exportAsFDF({bAllFields: true, aFields: ["txtProperty", "txt.Property"], cPath: "" + pathAndFile});
this.exportAsFDF({bAllFields: true, aFields: ["txtP","txtE", "txtSB", "chkTypeInd", "chkTypeCorp"], cPath: "" + pathAndFile});
And, once again, the scripts work with the mac but on the PC, just the first instance of exportAsFDF() in my scripts works, the rest do not.
Copy link to clipboard
Copied
So what code is on line 7 of the script? Is is the first "exportAsFDF"?
I would suggest you do two things.
1) Run the code on the system that doesn't work from the console window. Code run from the console has privilege, so we'll know a bit more if the code does or doesn't run.
2) Check the Acrobat Enhanced Security Preferences. It's entirely possible that Acrobat on one of the computer is in Protected mode.
Copy link to clipboard
Copied
Why are you exporting twice to the same file path in a row?
Copy link to clipboard
Copied
I'm not. The pathAndFile parameters in my post are representative. In my script they are actually "toTransactions" and "toClientFolder" and passed to the function with this:
var fdfFilesTransaction = app.trustedFunction(function(toTransactions, toClientFolder) {
app.beginPriv();
//Export to client folder, saved by file# + filename + fdf
this.exportAsFDF({bAllFields: true, cPath: "" + toClientFolder});
//Export to 'transaction' folder, save by property address + the file number + fdf
this.exportAsFDF({bAllFields: true, cPath: "" + toTransactions});
app.endPriv();
}
);
Copy link to clipboard
Copied
Did you ever check the Acrobat Security Preferences?
And which specific line is throwing the exception?
Copy link to clipboard
Copied
Thanks for the suggestion. I had the security preferences protected mode turned off.
The only console message I'm getting is this:
"GeneralError: Operation failed.
Doc.exportAsFDF:7:Field btn.Image.Folder:Mouse Up"
The thing that is so puzzling is that even on the Windows 11 PC the first exportAsFDF() in the script works as intended and the other four (which are constructed just like the first one) that follow the first one do not work (yet all of them work on the Mac). I'm trying to locate the source. I have a full time job that limits my ability to follow up posted suggestions quickly. Will keep at it.
Copy link to clipboard
Copied
Couple of notes about this code:
1. You should pass a reference to the Doc object as a parameter, instead of using the "this" keyword, which might not always point to it in this context.
2. Add a command to print out the full path of the file name you're trying to save as to the Console. That might help locating issues with it. If you could post those paths here, that would be good too.
Copy link to clipboard
Copied
This sounds normal if Protected Mode is on. The specific purpose of Protected Mode is to stop files from being written by the Acrobat process. Switch it off. (Preferences > Security (Enhanced)), don't mix it up with Protected View.
Copy link to clipboard
Copied
Thanks, but protected mode was already off. Also, the parent of all of the relevant sub folders was already added as a trusted folder in enhanced security.
Copy link to clipboard
Copied
Please do share the path name from the one successful and four failing actions.
Copy link to clipboard
Copied
(That is, the path name from your code, exactly as passed to the export ... call - not a telling of what you expect it to be. Probably best to write it to the console)
Copy link to clipboard
Copied
Here are the four fdf files being exported. The script camel-cases the file name. The images are in the order in which they are to be saved.
Copy link to clipboard
Copied
Replying further to try67's suggeston to use the Doc object instead of "this."
In the Mac if I change all four exportAsFDF() scripts from this.exportAsFDF() to doc.exportAsFDF(), the first in line of the export operations works, the remainder do not work. If I leave the first as doc.exportAsFDF() and the other three as this.exportAsFDF() they all work. If I leave them all as this.exportASFDF() they all work.
In the Windows 11 PC, if I change all four exportAsFDF() scripts from this.exportAsFDF() to doc.exportAsFDF(), none of them work. If I leave the first as doc.exportAsFDF() and the other three as this.exportAsFDF(), none of them work. If I leave them all as this.exportAsFDF() then the first in line works, the remainder do not work.
Copy link to clipboard
Copied
Did you change the folder level function to include the doc object?
If "this" and "doc" are the same the it makes not sense for them to work differently.
Have you tried running each export separately? It's possible that this function is non-blocking. Which means there could be a timing issue for two back to back calls. Perhaps separating the calls would fix the issue.
var fdfFilesTransaction = app.trustedFunction(function(oDoc, toTransactions, toClientFolder) {
app.beginPriv();
//Export to client folder, saved by file# + filename + fdf
oDoc.exportAsFDF({bAllFields: true, cPath: "" + toClientFolder});
//Export to 'transaction' folder, save by property address + the file number + fdf
oDoc.exportAsFDF({bAllFields: true, cPath: "" + toTransactions});
app.endPriv();
});
Copy link to clipboard
Copied
Mystery solved. You previously asked if protected mode was enabled. I answered that it was not and that I had added the relevant folders are trusted folder paths. I would have lost money betting on my certainty that it protected mode was off. Checked again today and found it was ON. Turned it off and now all works as it should. It still seems odd that one of the scripts would work when protected mode is enabled, yet the others were blocked by protected mode.
Thanks to everyone who helped with this. It's vey much appreciated.
Copy link to clipboard
Copied
It might stem from the folder to which you're saving the file. If you try to save it to a "protected" folder, like the root C folder, or the Windows folder, the Protected Mode could stop that. You didn't provide the actual paths you're saving the files to, though, so this is just a guess.