-
Posts
294 -
Joined
-
Days Won
11
ThomasLewis last won the day on April 29
ThomasLewis had the most liked content!
Converted
-
FusionPro Products
Yes
Converted
-
FusionPro VDP software version
13.0.4
Converted
-
OS
Windows 10
Converted
-
Acrobat Version
Acrobat DC
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
ThomasLewis's Achievements
-
Multi-line Rule in Bulleted List form.
ThomasLewis replied to Jen's topic in Issues, Questions, Etc.
You can setup the paragraph formatting inline. Something like this: var data = FusionPro.GetMultiLineRecords(); var result = '<p br=false lindent=2400 findent="1400" tabstops="0;2400">'; for (var r = 1; r <= data.recordCount; r++) { var comment = data.GetFieldValue(r, "Referral Comment"); if (comment) result += '<p>•<t>' + comment; } return result; As far as the other items you mention go. Again, it would be helpful to have a sample data file. I don't really see why the above code wouldn't work though. Attached is a working example. multilinesample.zip -
ThomasLewis started following Show/Hide FP Text Frames? , Multi-line Rule in Bulleted List form. , Changing Font or Color for part of a field. and 7 others
-
Multi-line Rule in Bulleted List form.
ThomasLewis replied to Jen's topic in Issues, Questions, Etc.
You already have the framework setup for a loop, but it looks like its never getting more than 1 value. It's hard to tell without seeing a sample of your input file, but maybe this would work out better for you. You would only need the 2 rules for this, one for each column. var data = FusionPro.GetMultiLineRecords(); var result = ""; for (var r = 1; r <= data.recordCount; r++) { var comment = data.GetFieldValue(r, "CPR Comment"); if (comment) result += comment + "<br>"; } return result; -
Changing Font or Color for part of a field.
ThomasLewis replied to Dmiller35's topic in Formatting Text
Your syntax isn't quite right. Try this instead: return '<b>' + emailarray[0] + '</b>' + "@" + emailarray[1]; -
if (!variable) FindGraphicFrame("name").suppress = true; or FindGraphicFrame("name").suppress = (!variable);
- 1 reply
-
- 1
-
-
I realized that code came from an older piece that was setup for 2 page documents only and didn't check it close enough to realize it isn't as versatile as I thought. The code needs to change a little to work for records that are more than 2 pages. Attached is a revision that should work better. Revised code in sample: //name each graphic frame just the page number var pages_per_record = 4; var path_and_PDF_name = "16pager.pdf"; //================================================== var r = CreateResource(path_and_PDF_name,'graphic',true); FusionPro.Composition.repeatRecordCount = r.countPages / pages_per_record; for (i = 1; i <= pages_per_record; i++) { r.pagenumber = i + (FusionPro.Composition.outputRecordNumber * pages_per_record) -pages_per_record; FindGraphicFrame(i).SetGraphic(r);} impose_existing_pdf_sample.zip
-
Here's something a little easier with instructions and a sample. Make a new blank PDF that matches the page count of each record in your PDF. So lets say its a 2 page postcard. Set your data file to be "None". Make a graphic frame on each page and name it the page number, ie "1" on page 1 and "2" on page 2. Add an Event rule for OnRecordStart with the following code: //name each graphic frame just the page number var pages_per_record = 2; var path_and_PDF_name = "16pager.pdf"; //================================================== var r = CreateResource(path_and_PDF_name,'graphic',true); FusionPro.Composition.repeatRecordCount = r.countPages / pages_per_record; for (i = 0; i < pages_per_record; i++) { r.pagenumber = i + (FusionPro.Composition.outputRecordNumber * pages_per_record) -1; FindGraphicFrame(i +1).SetGraphic(r);} Edit the pages per record if its different than 2 Put in the name of the PDF. If it's in a different location than the template you will need to add the path. Use "\\" for each folder, ie "C:\\temp\\mypdf.pdf" Compose as 1 record. impose_existing_pdf_sample.zip
-
Smallcap is a way of making lowercase letters into smaller capital letters. For instance "Hello World" would keep the H and W the way they are and change "ello" and "orld" to the smaller caps. In your example "EXT" is all caps. You would need to change it to "Ext" or "ext" if you want to see the results. Also, don't forget to adjust the small caps ratio under Paragraph... Global Settings
-
I get the concern in overcomplicating things but I think there would be a strong argument that if you are just going for most commonly needed things, uppercase would probably beat strikeout by a mile. Either way I'm really excited to hear about future improvements. If you guys do move forward with more complex editing like you mentioned, please consider giving us a "view source" button just like what's in the resource editor for formatted text. It's extremely helpful for diagnosing issues as they come up. I don't know how many times I've had to copy stuff from the variable text editor and paste it into the resource editor to see what's going on.
-
I've always wondered why this isn't part of the Variable Text Editor. You have underline and superscript which follow the tags method, why not add an Uppercase button that add the <uppercase> tags?
-
Creating a QR Code for a vCard and a Telephone Extension
ThomasLewis replied to mclisa81's topic in FusionPro® VDP Creator
I've run into this same issue. I don't think phone extensions are part of the vCard spec. Putting it under NOTE: or omitting it entirely, depending on the client, is how I've handled it. This is an easy to read resource for all the other options available: https://www.evenx.com/vcard-3-0-format-specification There are more under the version 4.0 spec but I'm not sure how widely adopted that is: https://en.wikipedia.org/wiki/VCard -
Only Compose Certain Text Boxes Based On Field
ThomasLewis replied to mailstarinc's topic in The JavaScript Library
What you are looking for is this: FindTextFrame("Frame Name").suppress = true; On newer versions of FusionPro you can also group them in the Document Overview palette and then use: ShowFrameGroup("Group Name", false) or HideFrameGroup("Group Name") -
You can do this by setting your data source to none. Then bring your data in as an external data file. You would set it up to loop the content in 3s and then repeat the record count to build out all your pages. However, this is an overly complicated way to do it and has potential for errors unless you are really familiar with how that method works. Personally, I would just setup a Pitstop action for the artwork that crops it down to 1, then use FusionPro Imposer to rebuild the imposition.
-
One way to do this is stack all the text frames on top of each other and turn them all off via script. Then turn on the one that's needed. Make a new Event rule for OnRecordStart and add this: FindTextFrame("Name1").suppress = true; FindTextFrame("Name2").suppress = true; FindTextFrame("Name3").suppress = true; FindTextFrame("Name4").suppress = true; if (Field("Version") == "Ver1") FindTextFrame("Name1").suppress = false; else if (Field("Version") == "Ver2") FindTextFrame("Name2").suppress = false; else if (Field("Version") == "Ver3") FindTextFrame("Name3").suppress = false; else if (Field("Version") == "Ver4") FindTextFrame("Name4").suppress = false; You need to name your text frames appropriately and swap out the names in the script with whatever is in your document. The "Ver1", "Ver2", etc values should be whatever value would be in your Version field to determine which frame gets turned on. If this doesn't work out for you, I would suggest posting your template and sending a sample data file that doesn't contain anything personal in it.
-
Special Characters Copyright, Registered Trademark and Trademark
ThomasLewis replied to traba5058's topic in Formatting Text
You're using a regular expression to do the replacement there in your script. The () aren't treated as literal characters in case, they split up segments into groups. You can escape them so they are treated as characters like this: return Field("Designation").replace(/\(TM\)/g,'<superscript>TM</superscript>'); But a better solution would be to just use a simple string replacement: return Field("Designation").replace("(TM)",'<superscript>TM</superscript>'); Or better yet use the actual TM entity: return Field("Designation").replace("(TM)", "™"); -
Performance Question - BodyPageUsage versus Text Resources
ThomasLewis replied to gandalf98's topic in FusionPro® VDP Creator
Not sure if this will help at all since it sounds like you are dealing with mostly text, but there is an optimization setting in the Output tab that allows for Advanced or Basic compression. Advanced significantly slows things down for me. I had one particularly heavy image job that composed in about 20 minutes using Basic, I did a test with Advanced and it took just over 2 and half days to complete. It seems the default setting is Advanced for some reason, I would recommend changing this over to Basic for most things, as it is significantly faster and Advanced only gives minimal file size savings.