Page 1 of 1

PDF Forms 2 Per Page

Posted: Wed Feb 01, 2017 2:05 pm
by John
I have just started printing PDF forms like W-2s and 1099s. Right now I get a quality PDF from the IRS and print it to a PDF with the new windows 10 Print to PDF thing and get just one page of it. Then I use that PDF single page as a background for my PDF creation and then print on top of it with position commands, etc to fill in all the little boxes. This is all working extremely well and creates a sharp crisp PDF file in the end.

However - I want to put a second W-2, or 1099 on the bottom half of the page. How does one go about doing this? I've tried using pictures of W-2s, but they don't look sharp and crisp like the other one does.

Re: PDF Forms 2 Per Page

Posted: Wed Feb 01, 2017 2:08 pm
by bluesfannoz
Hit up FNGeorge he has a function to print 4UP W2's

Re: PDF Forms 2 Per Page

Posted: Wed Feb 01, 2017 2:12 pm
by Mikhail
John, do you have Adobe Acrobat? (Not Adobe Reader)

What I normally do to print 1099-R copies B and C on the same page is:
1) extract only the pages I need into separate single page files
2) make the bottom margin of each of these files 5.5 inches. This makes them look like half pages
3) combine copy B and copy C into one single PDF. At this point copies B and C are still on separate pages
4) print this PDF using the PDF print driver, and in the print options specify to print 2 pages to 1 sheet

and viola!

These instructions are from memory, I hope I didn't miss anything.

If my instructions are confusing, let me know, I can just show you.

Re: PDF Forms 2 Per Page

Posted: Wed Feb 01, 2017 3:23 pm
by John
Thank you, Mikhail, I'll look into purchasing Adobe Acrobat and using this method.

bluesfannoz, I was hoping FNGeorge would reply too - he may still :)

Re: PDF Forms 2 Per Page

Posted: Sun Feb 12, 2017 3:54 pm
by gtisdale
I have a library set of functions that prints my tax forms. I showed it a couple of years ago at s conference.
The function places information, text numbers calculated amounts totals stuff like that at designated places on the page. The page can be a preprinted form, a PDF or a PCL OVERLAY the function call tells it which to do.

Some forms I download from the Internet and create single page PDF overlays and pcl overlays others I create using NWP to create the form.

I like Mikhael's solution for the two up. Printing the form is really easy using my functions. The beauty of the library is (are) that

in a subsequent year you can CLONE the prior year form, make a couple of changes and in minutes have the new form ready to go

Because BR is an interpretive language you can actually put formulas, including IF statements in the data line and the function does a EXECUTE. On each line of the form and prints the result. This lets me put a graphic signature on a form being overlaid with a PDF or a PCL signature on a form using a PCL overlay. I can also change certain information on a tax form such as an unemployment return based on the quarter that is being filed or put a number in one position if it is positive or. Mother if negative. All this controlled by the form function. I just call the form and print.

Another benefit is being able to tell the form how many lines to put on a form. For example when you print a two up W2 you specify in the call that two people go on each form. You then pass the function an array of all you employees and it prints two to s page until the entire array is processed at which point the function returns control to the calling program.

Let me know if you want more information.

Re: PDF Forms 2 Per Page

Posted: Mon Feb 13, 2017 2:09 pm
by John
George,
I'd like to check out your function. Is your function in fnSnap? What's it called?

Re: PDF Forms 2 Per Page

Posted: Mon Feb 13, 2017 2:38 pm
by gtisdale
It is a little more complicated than what would work in FNSNAP. I will drop copies to the BRForum

Programs needed are:
formfill.br
formprn.br

Formfill allows you to name your form and set the data location for each field that you will be using as well as the justification, size, format and contents of the field. The contents of the field can the contents of an array cell, a static value or a formula. If a formula the formula can be an actual formula or perhaps a graphic.

Formprn is a program that holds the PCL of the form to be printed or some other stuff (fonts macros images) in a BR internal file about 30,000 chrs long records (the max that BR will allow). You import your form into FORMPRN using EXACTLY the same name as you did when you set the form up in Fornfill. That way the two data files can talk to each other.

When you want to print the form you pass 4 arrays to the function:
Mat A$
Mat A
Mat E$
Mat E

A$ and A are one dimensional arrays that generally hold static data for your form, like the employer info for a W-2

E$ and E are two dimensional arrays that hold the detail data, such as the employee name address etc. in the string array E$ and the wages, withholdings etc., numeric values for each employee in the E array

As you print your W-2's you tell the printing function how many employees on a page. The function prints that many employees then deletes them from the E$ and E arrays and starts a second page. This continues until E$ and E are NULL. At that point the function stops. The printfile number is returned as the value of the function to the calling program. This allows you to nest detail records and summary records in the same function call. For example you can say

Code: Select all

47236   LET FORMFIL=FNPRFORMFILL(PEDATE,ASK,"[FONT LINEPRINTER]","prsysc", RPAD$("94011-1",8),MAT A$,MAT A,MAT AS$,MAT AS,0,0,LOCATION$): !:                                              
  LET FNPRFORMFILL(PEDATE,ASK,"[FONT LINEPRINTER]","prsysc", RPAD$("94011-2",8),MAT A$,MAT A,MAT AS$,MAT AS,0,0,LOCATION$) !:                                                        
   IF UDIM(MAT AS,1)>1 OR A(33)>0 THEN CLOSE #FNPRFORMFILL(PEDATE,ASK,"[FONT LINEPRINTER]","prsysc", RPAD$("94011-A",8),MAT A$,MAT A,MAT AS$,MAT AS,0,0,LOCATION$): !:                
    LET FORMFIL=0 !:                                                                         
     ELSE CLOSE #FORMFIL: : LET FORMFIL=0 !:                                                 
       ! 0=ASK 1=PDF 2=NWP 3=PCL
The above line of code prints the 940 form for 2011 as well as the 940-A form for the credit reduction by state.

If you are interested let me know and I will send you more information regarding this. Mike Storlazzi is using these functions and I'm sure he can tell you what his experience is with them in a high volume setting.

FNGeorge