Jump to content

DSweet

Registered Users - Approved
  • Posts

    256
  • Joined

Everything posted by DSweet

  1. Dan, Is the "MakeQRBarcodeGraphic" function something that came in with the 7.2 version or the newer 8.0 version? Would this script of yours work on version 7.2? I have version 7.1 and was trying to make a hybrid of the script to fit your version 2.1 VCard script using the QR.Make command. The barcode came out "looking" correct and when scanned by an Andriod and an iPhone they both recognized it as an address but no information was passed. I think I need to upgrade but it will be a time before I can do that. .
  2. "Tabular Lining" does not as much refer to the "tracking or kerning" of a font but how the number characters of a font are displayed with respect to their alignment on the baseline and sizing. Many OpenType fonts contain more characters options than the normal "lower ASCII 255" that are used by most programs. Look at a font such as "NeutraText" or "FreightMicro Pro" and you will notice that half of the "default" numbers are actually below the baseline while the remaining numbers that are on the baseline are sometimes slightly smaller than the rest. These can be changed to appear equally sized and aligned along the baseline by using Tabular Lining settings within programs such as InDesign and Quark. Although I haven't found anything online about it, I do believe that these "Tabular Lined" numbers are included in the OpenType font set, just beyond the normal 255. I too have a number of clients that like the look of the "old style" fonts for the lettering but not the jumbled look of the numbers. Currently I have to tell the customers that we cannot use the Tabular Lining effect that most page-layout programs offer but that I can attempt to match the font with a different font that "looks similar" when I need to display numbers. It would be great if I could just simply use the font like it is supposed to be used instead of having to "fake it". .
  3. RSloan, I can do you one better. If you can send me your e-mail I will send you the zip file of the project. It is a dead project now since the customer dropped us as of the end of last year and the data file I'll be sending you doesn't contain any actual patient data. I would post the zip file here for all to use but the file is nearly 10MB and that is way beyond the limit for this site.
  4. RSloan, Yes there is a "fairly simple" way of doing this. In FusionPro it was called a "Template", but they have renamed it as "Repeatable Template". What it is is a separate page of your original document template and it is defined the way that you want it to look. You can send variables to it and it returns a fully laid out graphic item (a card, a page , a coupon, etc...) and you place this item within a text box. If you had any coding background think of the overall FusionPro template as your "main program" and this repeatable template as a "sub-routine" that you can call as many times as you need from anywhere within your main program and depending on the parameters you send for each call this sub-routine can return a different value. I had a project where I needed to do insurance cards for a company. These cards were to be placed on a carrier but they could be any variety of 7 different cards based on the addressee's information and insurance plan. I created my main output page as a 8.5x11 full page with a text box for the insurance card. Then I created 7 new repeatable template pages (1 for each card used since they all had different layouts on the card), and then used a text rule to call the correct template page and pass the necessary variables to it. It was a bit complicated to begin with but after the first two cards the rest was pretty simple. Hope this gives you a nudge in the right direction. .
  5. Can a config file contain an if statement? I have a template that needs to have two different imposition layouts based on the state code within a data file. Can I combine the two imposition calls into one statement such as: if (Field("state1") == "FL") { ImpositionDefFileName=.\gedcRXpadFinal_Florida.fpi } else { ImpositionDefFileName=.\gedcRXpadFinal_nonFlorida.fpi }Just trying to make it a bit easier for our webProgrammer. I know that I can pass a parameter from the .cfg file to the Template, so can this be accomplished in reverse -- passing a parameter from the Template (i.e. a field value) to the .cfg file then use that data value in a conditional statement within it. If this is not the way to pass parameters from the template to the config file then how do we? .
  6. Dan, I have a similar problem as this one with having to decide whether a graphic is landscape or portrait oriented. However the "graphic" in question is not a single .jpg or .tif graphic, it is a two page pdf file. One of our clients purposely creates mailing postcard files that have the front of the card in a vertical format while the back of the card is horizontal oriented. i.e. the front of the card is a 4"x6" page while the back of the card is 6"x4" page. These cards are distilled in this manner so no pages are rotated. They do this to according to instructions from "their clients" to be able to read the fronts of the cards in the same fashion as the backs of the cards on the website. When FusionPro loads this pdf file it appears to only use the first page as the setting for the "entire document" regardless of which page is actually loaded using the "pagenumber" setting. If I read in and use only page 2, the 6"x4" side, FusionPro believes that this page too is still a 4"x6" page instead of the actual dimensions. Is this something that is an Acrobat issue and not really FusionPro (in which case I'm back to square one with this problem) or does this have something similar to do with the fact that FusionPro will always "un-rotate" any page(s) that have been rotated in Acrobat? BTW - I'm still a bit confused about how FusionPro knows that one too. When I used your coding in this thread it worked and chose the proper graphic box based on the first page of the pdf, but when compiled using the second page it still used the dimension of the first page to choose the box orientation. Is there a way for FusionPro to simply use the current page as the "whole document" basing all entries and rules on that page while completely disregarding the rest of the document settings? .
  7. Going back to your original post...your command to set the borders of the table includes the "thickness", "color" and "locations". MUST all these be equal? If I wanted to have a top and bottom border different from the left and right border how would I code this? I tried something like text.Rows[0].Cells[0].SetBorders.Top("Thin", "Red"); text.Rows[0].Cells[0].SetBorders.Bottom("Thin", "Green"); text.Rows[0].Cells[0].SetBorders.Right("Medium", "Blue"); text.Rows[0].Cells[0].SetBorders.Left("Medium", "Black"); but that caused an error stating that text.Rows[0].Cells[0].SetBorders.Top is not a function I would like to know how to set each one in a tag. Thanks. .
  8. I believe that this question was answered in a earlier posting but I cannot find it. How can you determine the final size of a font that was altered within the copyFit function? I know it must be a function of FusionProTextMeasure somehow, but can't find it. Example...If the original text has a font size value of 14, but the output of the copyFit altered text has a value of "10.8" how can you retrieve within FusionPro what the final altered point size is? I need to be able to use that same point size in several different text boxes in which the data contained in the each box may or may not need to have been altered to begin with. Our customer wants all the variable text in different locations to be the same point size in the output. I need to determine what the smallest font that is required to fit any of the boxes and then adjust "all text boxes" to be that same point size. .
  9. Thanks for the tip on that Aaron, and I have tried it with others like this. However we are not really able to control where that page info slug goes on the sheet. I've included two samples which illustrate this. The page info on one of them is even imprinted on top of the card itself! Another problem is that some printers can not even print the full area that close to an edge so you get a cut-off number or no number at all depending on the imaging area of that machine. I know that I can shift or rotate the imposition page as needed, but we've had problems sending pdf files to our Indigo machines that are not in a specific orientation...for some reason our Indigo rips rotate the sheet 90 degrees and the information is printed all wrong. Operators are still trying to figure that one out. Maybe if we could just somehow be given the ability to specify the placement of that page info on the sheet when that option is selected... .
  10. That is exactly what I do use Eric, only my "slug line" as you call it is a counter I created that increments by 1 for every 8 records that FP processes (a fully imposed sheet). My only problem occurs when that sheet is not fully imposed such as at the end of the file and the "8th record" that is processed is now somewhere in the middle of the sheet. The only place that I am allowed to put any text is at the bottom left edge of the full 12x18 pre-printed shell. That is where I put my counter value. I suppose the only option that is available to me for the moment would be to append blank records to the end of the data file to force it to always come out to even sheets. I just seems a bit odd to me that since the imposer pre-counts the records anyway why some type of counting number could not be placed on the imposed sheet somewhere. .
  11. We are in the middle of a job that entails processing several million pieces of mail per month over several different pre-printed stock shells. The problem is that we are NOT allowed to put any type of sequence numbering on them so it is quite scary having all those sheets of multi-up stocks printed without having some kind of check to keep them in their sorted order. I came up with a method of putting a sheet number on the shell-sheet outside of any of the pre-printed areas of the postcards so after they are cut down you don't see the sequence number. The only way I had of doing this was to put a text box off the edge of the piece and use a counting number that only printed (via a rule) for every 8th record that was processed (the stock is imposed 8-up). This method worked fine when the entire sheet was full and my "sheet-number" would appear at the bottom right position (the 8th record) on the sheet. The only problem was that when there was not a full sheet filled (towards the end of the file) the 8th position might not be at the bottom right. However the "sheet-number" would still be placed below the 8th printed piece which would step it's way back through the sheets until the end of the file. This would now have an extra number printing on top of potentially important information of the postcard itself. We normally wouldn't worry about the potential of at most seven cards out of 3 million being ruined in this fashion, but it would just be our luck that one of those cards would be a seed name that would find its way back to our customer and they would question it. I found a way around this as well by trying to think like FP Imposer and how it would break up the data files into the imposed file and when it would start to not fill up an entire sheet. The only method that I found was using a set of rules in an OnJobStart rule to determine how many records the file was and doing an integer division by the imposition factor (in this case 8) and then stepping back by a remainder of that division to set the upper boundary of the "full sheet-limit". Then in my counter rule I would only place the incrementing sheet-counter on every 8th record only when that number was less than the sheet-limit as determined in the OJS rule. But when you are counting 3 million records at a time (even the 250K that we broke it down to) that eats up quite a bit of memory and the whole composition processed is a bit slowed. I want to be able to open the file into a temporary location, count the records and then close the file to free up the memory for speed. I suppose the best way to do this would be to be able to do some type of simple programming within FP Imposer itself to put some kind of sheet-counter number on it that way, but as for now you can't do any programming like that in Imposer. Imposer hasn't REALLY been changed since it came out around version 3.2 or 3.4. .
  12. When I envoke the commands var myNewFile = new ExternalDataFileEx(FusionPro.Composition.inputFileName, ","); recTotal = myNewFile.recordCount;in an OnJobStart rule to count the number of records in the data file, I understand that the data file is fully read into the RAM memory of the computer first then the file size is determined by the command in the second line. However, does the ExternalDataFile command still use up RAM memory in the computer until the composition is over and then released? Is there another way to count the number of records without having to use up memory, or a way to release that memory after the recordCount is taken? If the file is only a few thousand then the memory usage is not to taxing for most computers, but when the data file is a few hundred thousand or a few million this could cause serious memory issues. .
  13. Thanks, that helps. However, I have another question and a comment in regards to charting. My question is how do I put a border on a pie chart? If one of the colors that you are requested to use is white...then that slice of the pie actually looks like it is missing. There is no border around the individual slices nor the whole circle of the pie itself. I've even checked to see that the property "Draw Chart Border" is checked, but nothing shows for either a regular or an exploded pie chart. How do I get a border? My comment is in regards to adding "custom" colors to the chart. I would like to be able to name these colors instead of just having a bunch of colors named "custom". Thanks. .
  14. We do a lot of 401K and other such financial statements for certain clients. They currently have their information in a table form, but they are telling us that they are looking elsewhere to do this since other companies are telling them they can more visually pleasing and easier to read charts in a smaller area than we can with FusionPro (3D, single slice exploded pie, legend numbers within the chart bars and slices, etc.) Currently I'm just looking to being able to program even the simple charts within FusionPro instead of having to make a separate .txt file for each chart. .
  15. Dan, Is there anything in the works about being able to do this simpler form of JavaScript programming to create charts on the fly as well? Thanks .
  16. Hello, I'm doing a project that needs to have tables flow from one page to another. I'm coding the tables within a rule using the data dynamically from the data file. Here is my code var strVal = ""; strVal += '<table columns = 3 alignment = "left" HeaderShading="Black,10" Margins="top:70;bottom:10"'; strVal += 'BoxRules="top:medium,Black;bottom:thin,Black" cell rules="top:thin,Black;bottom:thin,Black">'; strVal += '<column width = 23200>'; strVal += '<column width = 7200>'; strVal += '<column width = 19800>'; strVal += '<row type = "header"><cell><f Name="Minion Pro Bold">Executive Programs<f Name="Minion Pro"><cell><cell>'; if (ToUpper(Trim(Field("EAF"))) == "Y") { strVal += '<row><cell>Executive Auto Program<cell><cell>Maximum up to $20,000 per year'; } if (StringToNumber(Trim(Field("EPCE"))) > 0) { strVal += '<row><cell>Executive Physical<cell><cell>$' + Field("EPCE") + ' value per year'; } if (StringToNumber(Trim(Field("EFCE"))) > 0) { strVal += '<row><cell>Executive Financial Planning<cell><cell>$' + Field("EFCE") + ' value per year'; } if (StringToNumber(Trim(Field("ELB"))) > 0) { strVal += '<row><cell>Executive Life Insurance<cell>Volume:<cell>$' + Field("ELB") + ' (3 x annual base pay)'; } if (StringToNumber(Trim(Field("ELTDB"))) > 0) { strVal += '<row><cell>Executive Long-Term Disability<cell>Volume:<cell>$' + Field("ELTDB") +' per month'; } strVal += '<row><cell>Air Travel Lounge<cell><cell>Maximum $500 annually'; strVal += '</table><p>'; return strVal; I've coded the Margins to default at 70 (top) and 10 (bottom) within the main table definition section. These settings give me enough of a margin and the top and bottom to make the type appear to be nearly centered within the table row. I've attached a sample of the output that is created when a table flows from one page to the next. Notice that the margins are correct at the top and then they seem to be dropped when the same table flows to page two. All the conditions are working correctly and the header is repeated as it should be on the second page, however all the type is now touching the bottom line. I've even tried to code the margins within each cell definition, but I get the same results. I'm not using an OverFlow page for this but just linking the two text boxes together with the "Connect TextFrame" link button on the toolbar. Is this a bug, or have I missed something? .
  17. Yes that would work, however I think that George was trying to not have to change the template time and time again for something as small a change as only a new "letter mailing date". It would be simpler to have an external spot to change something as simple as a run-date on a letter. This was you can run the job off of FusionPro Server and never need to change the template - unless the body of the letter actually changed. .
  18. George, I have a sort-of-work-around that you can try to use. Why not code the date in a text file that can be read in and assign that date at the very beginning of composition? Try this.... 1) Create a text file called "dateFile.txt" and store it in the same location as the template you are running. In this file give it a record header of "projDate" and then on the next line place whatever date your client wishes to have appear on this run of the letter. 2) In the template itself encode these two rules... as an OnJobStart rule... assignDate = new ExternalDataFileEx("dateFile.txt", "\t"); projectDate = assignDate.GetFieldValue(1, "projDate"); then as a regular text rule... return projectDate 3) You can format the date however you wish within step 2 and use it wherever you wish then in the template by referring to the text-rule you assigned in step 2. By doing this you do not need to alter the template in anyway in order to change the value of "projectDate". It will be assigned whatever value that you place in the text file "dateFile.txt" which can be changed over and over again prior to the start of a composition. And it will be read in and assigned anew everytime the project is run. Hopefully this is a bit more than just 2 cents worth. Good Luck. .
  19. I thought as much for the color feature; but for the situation that guiprepress described, it just might work. I don't know how "solid" the drop shadow could be made into or even if the 0 vert. and horiz. are even possible. It was just a half-baked suggestion for this unique situation. .
  20. Not had the change to try this as we are still in the process of testing our templates before we make the full plunge into FP 6.1; but, if the drop shadow color can be made into a different color other than the text, has anyone every tried to make a drop shadow that has no vertical or horizontal shift, increase the spread a bit and leave the "shadow" effect at 100% solid? In theory if you are using light blue text and the "drop shadow" is slightly bigger (increased spread) than the text AND is 100% black without any adjustment shift, this might give you a bit of an "outlined effect". Again just in theory of course. .
  21. I haven't tried to do this, but I think you should be able to do it within an OnRecordStart rule. It would be a pretty conveluded "if-else" statement and combine this a "FusionPro.Composition.composeThisRecord = false;" and you should be able to specify a range that you want. However, it wouldn't be in the actual composition menu, you would have to compose the entire file to do this - or at least enough to cover your range values. FusionPro.Composition.composeThisRecord = false; If (CurrentRecordNumber() == 2) { ...FusionPro.Composition.composeThisRecord = true; } else if ((CurrentRecordNumber() >= 345) && (CurrentRecordNumber() <= 351)) { ...FusionPro.Composition.composeThisRecord = true; } else if ..... and so on This way you only turn on the value to compose that specific record if it is within your range values in the if statements. Good Luck
  22. Chad, I've used this in the OnJobStart callback rule to get the incoming file name. You could then store it off to a variable and call it when you do your output file creation as in the rule mentioned in the above postings. This was done on a PC so if you need a Mac version simply put in the correct string to look for in the lastIndex rule. inFile = ToLower(FusionPro.Composition.inputFileName); var i = inFile.lastIndexOf("\\"); myInputFile = Mid(inFile, i+2, (inFile.length - i)); replaceCheck1 = ReplaceSubstring(myInputFile, ".csv", ""); finalFileName = ReplaceSubstring(replaceCheck1, ".txt", ""); This will give you the finalFileName value of instance file that you are using for your composition but without any extension. I don't know if you normally use a "csv" or a "txt" file for your data, but you should leave both in there to remove either case. Again if you're on a Mac you do need to watch out for those few programmers that like to use dots within the middle of filenames since that string might appear twice. Good Luck
  23. DSweet

    SlipSheets

    Kim, Just checking here, but you did assign the 12x18 body page to be an "unused" body page - right?
  24. DSweet

    Bullet Rule

    I'm assuming that you are only allowing one of the three statements to print. In that case try this.... if (Field("Bullet1") == "") { .....return ""; } else if (Field("Bullet1") == "Happy Friday") { .....return Resource("BLT1"); } else { .....return '<p br="false" override="true" lindent="900" tabstops="0;900,Left"><color Name="Red">•<t>' + Field("Bullet1"); } You just need to make sure that the two values ("lindent" and "tabstops") equal each other - in this case 900 which would be 1/8". Depending upon the style and size of the font that you are using, you may want to adjust this to suit your needs.
  25. DSweet

    Bullet Rule

    If you really want to use tags for this I would create a Formatted Text Resource and use the text editor's paragraph and tab setup options to begin your design. You would do as Dan suggested and use the Left Indent setting of the Paragraph, but I would go one step further in saying that you keep the First Line setting at zero. This will keep your bullets all aligned at the left edge while the wrap of any lengthy text line will indent. Then I would set a tab value at an equal value to align the first character of your bullet statement (after the bullet of course) up with the wrapped line indentation. Otherwise you could get a line that looks like this.... • bullet line 1 • bullet line two that is ... very lengthy here • bullet line 3 but what you really want is... • .bullet line 1 • .bullet line two that is ....very lengthy here • .bullet line 3 Then each entry would consist of 1) the bullet, 2) a tab, 3) the bullet statement you want to enter, and 4) an end-of-line return. After you get the results looking the way that you want them to, you can then select the View Source button in the Resource Editor and it will give you all the tagged data that FusionPro created for this. You can't do any editing in this view widow, but you can highlight and copy the coding. This is the best way I know of to get the exact coding that FusionPro requires for paragraph tags. Then if you wish to create your own tagged data statements, you have a coding basis to use as an example. Good Luck
×
×
  • Create New...