#1
|
|||
|
|||
![]()
I've read in the user guide that I can supposedly add a .js file to the Plugins folder so that I can have my most common functions easily available.
However, I've never been able to get it to work. I write the file just as the guide says, but it seems to have an issue with Line 1. Here is what I'm trying to use. Whenever I pull up the building blocks, it tells me "line 1: SyntaxError: illegal character:" Code:
Presets = new Object; Presets.LBLNUM = function (str) { return Int(Field(\“LBLNMBR\”)); } Presets.LBLNUM.description = “Remove Leading Zeroes from Label Number” Presets.LBLNUM.syntax = "LBLNUM(<string>)";
__________________
FusionPro VDP Creator 13.0.2 | MacOS 13.1 | Acrobat DC Last edited by Dmiller35; June 29th, 2022 at 08:03 AM.. |
#2
|
||||
|
||||
![]()
This functionality does work, but you have to use valid JavaScript syntax. In this case, you do indeed have an illegal character.
When I copy that code into a .js file and put it in my plug-ins folder, it says the error is on line 4. The illegal characters are the curly double quotes. They're also on lines 6 and 7. These were probably put in by whatever application you were using to type in the code. (You probably want to use an actual code editing app like Xcode or Sublime Text instead of something that wants to format curly quotes like TextEdit.) You also don't want those the backslash escapes for the double-quotes. Changing those to straight double-quotes and removing the backslashes, and removing the unnecessary string parameter from your function, this works for me: Code:
Presets = new Object; Presets.LBLNUM = function() { return Int(Field("LBLNMBR")); } Presets.LBLNUM.description = "Remove Leading Zeroes from Label Number"; Presets.LBLNUM.syntax = "Presets.LBLNUM()";
__________________
Dan Korn FusionPro Developer / JavaScript Guru / Forum Moderator PTI Marketing Technologies | Printable | MarcomCentral I am a not a Support engineer, and this forum is not a substitute for Support. My participation on this forum is primarily as a fellow user (and a forum moderator). I am happy to provide help and answers to questions when I can; however, there is no guarantee that I, or anyone else on this forum, will be able to answer all questions or fix any problems. If I ask for files to clarify an issue, I might not be able to look at them personally. I am not able to answer private messages, emails, or phone calls unless they go through proper Support channels. Please direct any sales or pricing questions to your salesperson or inquiries@marcom.com. Complex template-building questions, as well as all installation and font questions or problems, should be directed to FusionProSupport@marcom.com. Paid consulting work may be required to fulfill your template-building needs. This is a publicly viewable forum. Please DO NOT post fonts, or other proprietary content, to this forum. Also, please DO NOT post any "live" data with real names, addresses, or any other personal, private, or confidential data. Please include the specific versions of FusionPro, Acrobat, and your operating system in any problem reports or help requests. I recommend putting this information in your forum signature. Please also check your composition log (.msg) file for relevant error or warning messages. Please post questions specific to the MarcomCentral Enterprise and Web-to-Print applications in the MarcomCentral forum. Click here to request access. Or contact your Business Relationship Manager (BRM/CPM) for assistance. Please direct any questions specific to EFI's Digital StoreFront (DSF) to EFI support. How To Ask Questions The Smart Way The correct spellings are JavaScript, FusionPro, and MarcomCentral (each with two capital letters and no spaces). Acceptable abbreviations are JS, FP, and MC (or MCC). There is no "S" at the end of "Expression" or "Printable"! The name of the product is FusionPro, not "Fusion". "Java" is not is not the same as JavaScript. Check out the JavaScript Guide and JavaScript Reference! FusionPro 8.0 and newer use JavaScript 1.7. Older versions use JavaScript 1.5. return "KbwbTdsjqu!spdlt\"".replace(/./g,function(w){return String.fromCharCode(w.charCodeAt()-1)}); ![]() |
#3
|
|||
|
|||
![]()
I realized the issue with the quotes and fixed that but the other things you mentioned might have still been causing it not to work.
After fixing those, it now does not give me an error, but it also doesn't give me the returned function. It will only display "Presets.LBLMUM ()" and tells me that it does not return a value. Am I just not using this functionality correctly? I just want an easy way to repeat code that I use a lot.
__________________
FusionPro VDP Creator 13.0.2 | MacOS 13.1 | Acrobat DC Last edited by Dmiller35; July 13th, 2022 at 06:56 AM.. |
#4
|
||||
|
||||
![]()
Well, I don't know. How are you using it? You haven't posted the rule that's calling it.
My guess is that your .js file is fine, but that you're not calling the function correctly in your rule, or at least not capturing its return value and using it in your rule correctly. I assume your rule would do something like this: Code:
return Presets.LBLNUM(); Or, more realistically, something like this: Code:
var lablnum = Presets.LBLNUM(); // Some code to do a calculation with lablnum and return something. //etc. Code:
Presets.LBLNUM(); It would be the same if your rule just did this: Code:
Int(Field("LBLNMBR")) Code:
return Int(Field("LBLNMBR")) (Though that might not always be true, if your .js file just does something like setting a property such as FusionPro.Composition.repeatRecordCount, or something else that might be called in a context like OnRecordStart. But generally, your custom function is going to be returning a value to do something with.)
__________________
Dan Korn FusionPro Developer / JavaScript Guru / Forum Moderator PTI Marketing Technologies | Printable | MarcomCentral I am a not a Support engineer, and this forum is not a substitute for Support. My participation on this forum is primarily as a fellow user (and a forum moderator). I am happy to provide help and answers to questions when I can; however, there is no guarantee that I, or anyone else on this forum, will be able to answer all questions or fix any problems. If I ask for files to clarify an issue, I might not be able to look at them personally. I am not able to answer private messages, emails, or phone calls unless they go through proper Support channels. Please direct any sales or pricing questions to your salesperson or inquiries@marcom.com. Complex template-building questions, as well as all installation and font questions or problems, should be directed to FusionProSupport@marcom.com. Paid consulting work may be required to fulfill your template-building needs. This is a publicly viewable forum. Please DO NOT post fonts, or other proprietary content, to this forum. Also, please DO NOT post any "live" data with real names, addresses, or any other personal, private, or confidential data. Please include the specific versions of FusionPro, Acrobat, and your operating system in any problem reports or help requests. I recommend putting this information in your forum signature. Please also check your composition log (.msg) file for relevant error or warning messages. Please post questions specific to the MarcomCentral Enterprise and Web-to-Print applications in the MarcomCentral forum. Click here to request access. Or contact your Business Relationship Manager (BRM/CPM) for assistance. Please direct any questions specific to EFI's Digital StoreFront (DSF) to EFI support. How To Ask Questions The Smart Way The correct spellings are JavaScript, FusionPro, and MarcomCentral (each with two capital letters and no spaces). Acceptable abbreviations are JS, FP, and MC (or MCC). There is no "S" at the end of "Expression" or "Printable"! The name of the product is FusionPro, not "Fusion". "Java" is not is not the same as JavaScript. Check out the JavaScript Guide and JavaScript Reference! FusionPro 8.0 and newer use JavaScript 1.7. Older versions use JavaScript 1.5. return "KbwbTdsjqu!spdlt\"".replace(/./g,function(w){return String.fromCharCode(w.charCodeAt()-1)}); ![]() Last edited by Dan Korn; July 13th, 2022 at 03:33 PM.. |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|