miker Posted September 25, 2014 Share Posted September 25, 2014 Hello, and thanks for reading. I'll try to be concise. In trying to format text, typical on business cards. Many layouts format with a prefix followed by the number, and include a desired space in between. Here's an example with three spaces between. T 604.323.2323 C 604.232.3232 F 604.323.2323 Here's my code; if (Field("Tell") == "") return ""; else return 'T '+Rule("TelFor"); Here are my questions; - Fusion seems to honour just one space. If I put three ('T '), only one is applied (even in this HTML formatting). How can I apply more, or tabs? - Characters have different kerning values. Even in my example above, the 604 do not line up, because of these values. How do I align my phone numbers? - Is there a method to affect tracking for the entire phone number, so they align overall? I use various cheats, but this has to be a common issue... Perhaps I missed a simple solution somewhere? Any advice would be much appreciated. Thanks Mike Fusion Mac 9.2.31 Quote Link to comment Share on other sites More sharing options...
ScottHillock Posted September 25, 2014 Share Posted September 25, 2014 -To get more than one space you need to use a non breaking space character " " -Instead of trying multiple space, just use a tab character "<t>" and set your tab stops in paragraph settings so they all left align. - I'm sure there's a way to calculate the width of the text and apply specific tracking with the FusionProTextMeasure function, there''s a couple examples on the boards here. Quote Link to comment Share on other sites More sharing options...
step Posted September 25, 2014 Share Posted September 25, 2014 Mike, one way you can control the spacing between the identifier and the number is to put each of them in separate columns of a table and then adjust the width of the columns. This is just some sample code that I think might help you out in this scenario: var numbers = [ "T: " + Field("Phone"), "C: " + Field("Cell"), "F: " + Field("Fax")]; var idWidth = 0.5; // inches var noWidth = 1.5; // inches // Filter empty numbers from the array numbers = numbers.filter(function(m){return m.replace(/[^\d]/g,'');}); // Start a table for the numbers var myTable = new FPTable; myTable.AddColumns(idWidth*7200, noWidth*7200); myTable.AddRows(numbers.length); // Add numbers for (var i=0; i<numbers.length; i++) { var id = numbers[i].replace(/([^\d]*)\d+/g,'$1'); var no = numbers[i].replace(/[^\d]*(\d+)/g,'$1'); myTable.Rows[i].SetContents(Trim(id), no); } return myTable.MakeTags(); Quote Link to comment Share on other sites More sharing options...
miker Posted September 25, 2014 Author Share Posted September 25, 2014 This is great stuff! I will be exploring your advice over the next few days. Thank you both! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.