Jump to content

Trouble with Ticket Layout


mwhayes

Recommended Posts

I have a ticket that I want to print 4 tickets and a filler on a sheet. I need the 4 tickets to number consecutive and the fifth filler to be the same on each page. The filler is not numbered. The ticket and the filler are 2.5 x 7.75. They will print 5 across on 12.5 x 7.75.

I amusing Fusion Pro 9.37.

How do I do this?

 

Thanks

Link to comment
Share on other sites

In FP Imposer, create an imposition with a 12.5" x 7.75" press sheet, 2.5" x 7.75" pages, and a horizontal repeat of 5, and save the FPI file. Create a FusionPro template with two pages (2.5" x 7.75"). In the Page Usage dialog, name both pages something like "ticket" and "filler". Then create the OnRecordStart callback rule with this syntax:

if (!(CurrentRecordNumber() % 4))
   FusionPro.Composition.repeatRecordCount = 2;
var isFiller = FusionPro.Composition.repeatRecordNumber == 2;
FusionPro.Composition.SetBodyPageUsage("ticket", !isFiller);
FusionPro.Composition.SetBodyPageUsage("filler", isFiller);

On the "ticket" page, create a text frame, edit it, select $inputrecordnumber from the Variables list, and click Insert. Assign the FPI file on the Imposition tab of the Composition Settings dialog, select your record range (ticket numbers) on the Input tab, and compose.

Link to comment
Share on other sites

Attached is a pdf file of what I am trying to do.

Okay. If you do what I suggested in my previous post, it should make that output. The only differences are:

  1. You need to set up a duplexed imposition in FP Imposer, with 2 pages per record.
  2. You need front and back pages for the ticket and the filler. So I would make four pages named something like "TicketFront", "TicketBack", "FillerFront", and "FillerBack".
  3. You'll need to set the usage of all four pages in OnRecordStart:
    if (!(CurrentRecordNumber() % 4))
       FusionPro.Composition.repeatRecordCount = 2;
    var isFiller = FusionPro.Composition.repeatRecordNumber == 2;
    FusionPro.Composition.SetBodyPageUsage("TicketFront", !isFiller);
    FusionPro.Composition.SetBodyPageUsage("TicketBack", !isFiller);
    FusionPro.Composition.SetBodyPageUsage("FillerFront", isFiller);
    FusionPro.Composition.SetBodyPageUsage("FillerBack", isFiller);


  4. Instead of using the $inputrecordnumber variable in the text frame for the ticket number, you can make a rule that does this and use it:
    return return FormatNumber("00000", FusionPro.Composition.inputRecordNumber);


Link to comment
Share on other sites

Dan I was trying out your code but on the imposed file, the filler shift one position to the left for each set of four. I assumed the OP wanted the filler to always be the right most position.

Hmm, maybe the first line should be:

if (!(FusionPro.Composition.inputRecordNumber % 4))

Although, I think the logic is correct for putting the front filler page on the right side of the sheet. That statement is true only when the record number is a multiple of four.

Link to comment
Share on other sites

OK, I have a TicketFront pdf file, a TicketBack pdf file and a FillerFront pdf file. The fileer is only printed on the front.

I have set up a duplexed imposition with 2 records, 5 tickets across on 12.5 x 7.75 press sheet. Now, which pdf file do I use to create the the imposed job?

This is where I am getting lost

 

Michael

Link to comment
Share on other sites

OK, I have a TicketFront pdf file, a TicketBack pdf file and a FillerFront pdf file. The fileer is only printed on the front.

I have set up a duplexed imposition with 2 records, 5 tickets across on 12.5 x 7.75 press sheet. Now, which pdf file do I use to create the the imposed job?

This is where I am getting lost

All of the pages should go into a single PDF, which is your FusionPro VDP template (background) PDF.

Link to comment
Share on other sites

I am a rookie. I do not understand what I name TicketFront, TicketBack, FillerFront. Do I name the pdf file which is the template or the FP Imposer file?

I really wish you could help me step by because the more I try the more confused I get.

 

Thanks for all the help

 

Michael

Link to comment
Share on other sites

I am a rookie. I do not understand what I name TicketFront, TicketBack, FillerFront. Do I name the pdf file which is the template or the FP Imposer file?

I really wish you could help me step by because the more I try the more confused I get.

I recommend learning more about the product before jumping in. The User Guide and tutorials are a good place to start. We also offer training.

 

You can also contact Support. As my signature says, this forum is not a substitute for Support, and, while I can point you in the right direction, I'm not able to go step by step with you through the entire template-building process. Although someone else here on the forum may be able to do that, if they want to.

 

That said, step one is creating a FusionPro VDP template is to get all of the pages into a single PDF, then click the orange F icon in the FusionPro tools to assign a data source. This PDF will be your FusionPro template PDF.

 

Once you've done that, you need to go into the menu, under FusionPro -> Manage Pages -> Page Usage, select each page, and type in a name for the page. That's what I mean by naming the pages.

Link to comment
Share on other sites

All your pages should be set to unused and the OnRecordStart should be:

 

if (!(FusionPro.Composition.inputRecordNumber % 4))
   FusionPro.Composition.repeatRecordCount = 2;
var isFiller = FusionPro.Composition.repeatRecordNumber == 2;
FusionPro.Composition.SetBodyPageUsage("TicketFront", !isFiller);
FusionPro.Composition.SetBodyPageUsage("TicketBack", !isFiller);
FusionPro.Composition.SetBodyPageUsage("FillerFront", isFiller);
FusionPro.Composition.SetBodyPageUsage("FillerBack", isFiller);

When I test the imposition is correct.

 

Leo

Link to comment
Share on other sites

one way is to create a data file in excel using the fill sequence. An example attached. The seq is

Sequence Ticket

T_00001 TicketFront

T_00002 TicketFront

F_00001 FillerFront

F_00002 FillerFront

F_00003 FillerFront

T_00003 TicketFront

T_00004 TicketFront

F_00004 FillerFront

F_00005 FillerFront

 

change the InputRecordNumber rule

var str = Field("Sequence");
var result = str.substr(2, 5);
return result;

This will return the number such as 00001.

 

Change the OnRecordStart rule

 

if (Field("Ticket")=="TicketFront")
{
FusionPro.Composition.SetBodyPageUsage("TicketFront", true);
FusionPro.Composition.SetBodyPageUsage("TicketBack", true);
}

else if (Field("Ticket")=="FillerFront")
{
FusionPro.Composition.SetBodyPageUsage("FillerFront", true);
FusionPro.Composition.SetBodyPageUsage("FillerBack", true);
}

the output should be 2 sequenced tickets and 3 filler tickets per sheet.

 

There are other ways to get the results for this that are more simple and elegant.

AB_Ticket_Data.txt

Link to comment
Share on other sites

Yes you can...name them. (FillerFront1, FillerFront2, FillerFront3)

In your data file follow the same pattern.

In FusionPro you would have 4 templates - Ticket and 3 Fillers.

 

Using the same logic - add bodypage usage.

else if (Field("Ticket")=="FillerFront1") 
{ FusionPro.Composition.SetBodyPageUsage("FillerFront1", true); 
FusionPro.Composition.SetBodyPageUsage("FillerBack", true); }

and so on.

I would suggest going through training videos

https://marcom.com/resources/support-training/fusionpro-video-tutorials/

and as Dan suggested the Users guide and examples.

Link to comment
Share on other sites

I am just a small family printer. I have been using FusionPro for 5 years. Up until now, all I did was addresses and numbering. I have this customer that needs these tickets. This is all new to me. I am trying to get by with ya'lls help this time. When this project is over, I will have time to go through the videos and the manual. I do appreciate very much any help I can get with this.

I want to very much thank the ones that helped.

 

Michael

Link to comment
Share on other sites

It goes in the OnRecordStart Rule -- Not in the body of your form.

If you are using a data file that is sequence with two "TicketFront" followed by FillerFront1, FillerFront2, FillerFront3.

and you have corresponding forms 1 ticket, 3 fillers, and a couple backs named in the SetBodyPageUsage.

 

//OnRecordStart

if (Field("Ticket")=="TicketFront")
{
FusionPro.Composition.SetBodyPageUsage("TicketFront", true);
FusionPro.Composition.SetBodyPageUsage("TicketBack", true);
}

else if (Field("Ticket")=="FillerFront1")
{
FusionPro.Composition.SetBodyPageUsage("FillerFront1", true);
FusionPro.Composition.SetBodyPageUsage("FillerBack", true);
}
else if (Field("Ticket")=="FillerFront2") 
{
FusionPro.Composition.SetBodyPageUsage("FillerFront2", true); 
FusionPro.Composition.SetBodyPageUsage("FillerBack", true);
}

else if (Field("Ticket")=="FillerFront3") 
{
FusionPro.Composition.SetBodyPageUsage("FillerFront3", true); 
FusionPro.Composition.SetBodyPageUsage("FillerBack", true);
}

Link to comment
Share on other sites

It goes in the OnRecordStart Rule -- Not in the body of your form.

If you are using a data file that is sequence with two "TicketFront" followed by FillerFront1, FillerFront2, FillerFront3.

and you have corresponding forms 1 ticket, 3 fillers, and a couple backs named in the SetBodyPageUsage.

 

//OnRecordStart

if (Field("Ticket")=="TicketFront")
{
FusionPro.Composition.SetBodyPageUsage("TicketFront", true);
FusionPro.Composition.SetBodyPageUsage("TicketBack", true);
}

else if (Field("Ticket")=="FillerFront1")
{
FusionPro.Composition.SetBodyPageUsage("FillerFront1", true);
FusionPro.Composition.SetBodyPageUsage("FillerBack", true);
}
else if (Field("Ticket")=="FillerFront2") 
{
FusionPro.Composition.SetBodyPageUsage("FillerFront2", true); 
FusionPro.Composition.SetBodyPageUsage("FillerBack", true);
}

else if (Field("Ticket")=="FillerFront3") 
{
FusionPro.Composition.SetBodyPageUsage("FillerFront3", true); 
FusionPro.Composition.SetBodyPageUsage("FillerBack", true);
}

Or:

var isTicket = Field("Ticket") == "TicketFront";
FusionPro.Composition.SetBodyPageUsage("TicketBack", isTicket);
FusionPro.Composition.SetBodyPageUsage("FillerBack", !isTicket);
FusionPro.Composition.SetBodyPageUsage(Field("Ticket"), true);

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...