-
Posts
296 -
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
-
ThomasLewis started following Only Compose Certain Text Boxes Based On Field , Gathering Resources With Data File Path In A Rule , Adjust line spacing based on text box fill and 7 others
-
Gathering Resources With Data File Path In A Rule
ThomasLewis replied to Jason643's topic in FusionPro® VDP Creator
Might be an issue with your slice numbers. Give this a shot: return CreateResource(PrimaryInputFile().replace(/[^\\]*$/, "") + Field("PHOTO") + ".pdf"); Although I don't really understand why you need to specify a path if the input file is in the same folder as the resources, FusionPro can generally find them by name alone without a path. -
Adjust line spacing based on text box fill
ThomasLewis replied to NoahScheitler's topic in Issues, Questions, Etc.
This will tell you if the text in a specified frame fits or not. var txt_fr = FindTextFrame("frame_14pt"); var fptm = new FusionProTextMeasure; fptm.maxWidth = txt_fr.width; fptm.CalculateTextExtent(txt_fr.content); return (fptm.textHeight < txt_fr.height); //returns true if it fits in the 14pt text frame -
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 -
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.