Jump to content

2D Barcode

Recommended Posts

Good Morning,


I am working on setting up a mailing where each record in the mail list will have a different number of pages in the output PDF. I was wondering if there is a way to include a 2D barcode on the even pages of the document that would tell our inserter machines when to insert. We have a rule for 2D barcodes now that works but we have to program the rule for each page that it will be placed on so that rule will not work in this instance.


I have attached a sample file of my current output. Pages 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 and 20 should all have a 2D barcode. Page 20 should include a code to tell the inserting machine that it is the last sheet and is okay to insert.

Test Run2-Output.pdf

Link to comment
Share on other sites

  • 4 years later...

We are just starting to look for an Envelope inserter and are debating whether we need to buy the vendor's intelligent software or can use FusionPro.


I noticed you tried to use FusionPro to create your own barcodes to be read by your inserter. Did you ever get it to work?


Do you have any insights that you can share?


Thank you,


Link to comment
Share on other sites

We are doing something similar. Obviously, we are including additional info in the datamatrixbarcode but see the portion of the code that utilizes FusionPro.Composition.totalPages and FusionPro.composition.currentPageNumber. The code also includes marking the SetBeg and SetEnd. Be sure to check the box 'Re-evaluate rule for every text flow'. Use the rule on multiple pages and/or overflow page(s).


result = "";
spaces15 = "               ";
spaces30 = "                              ";
spaces40 = "                                        ";
if (FieldExists("MEM_ID"))
   MemID = Field("MEM_ID") + Left(spaces15, Len(spaces15)-Len(Field("MEM_ID")));
   MemID = spaces15;

SetBeg = 0
if (FusionPro.Composition.currentPageNumber == 1)
   SetBeg = 1;
SetBeg = FormatNumber("0", SetBeg);// 1 character - 1 or 0
DocNum = FormatNumber("00000", (FusionPro.Composition.inputRecordNumber) % "100000");// 5 characters - 1 - 99,999 then resets to 1 again
TotPgs = FusionPro.Composition.totalPages;// 2 characters - tally of 'used' pages in each record set
PgNum = FusionPro.Composition.currentPageNumber;
TotPgs = TotPgs/2;
if (PgNum/2 != Int(PgNum/2))
   PgNum = Int(PgNum/2)+1;
TrayStart = 0
if (FieldExists("CTN_BRK_L"))
   if (Field("CTN_BRK_L").search("#")>-1)
       TrayStart = 1;
TrayStart = FormatNumber("0", TrayStart);// 1 character - 1 or 0 based on field value
SetEnd = 0
if (PgNum == TotPgs)
   SetEnd = 1;
TotPgs = FormatNumber("00", TotPgs);// 2 characters - Page number in set
PgNum = FormatNumber("00", PgNum);// 2 characters - Page number in set
result = MemID+SetBeg+DocNum+TotPgs+PgNum+TrayStart+SetEnd+MMMYYYY;//+Name+Address

return MakeDataMatrixBarcode(result, false, "ASCII", false, "4", false, "IDAutomationDMatrix")

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.

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...