ibmi-brunch-learn

Announcement

Collapse
No announcement yet.

Redirecting printer OUTQ to IFS with Overlay as a PDF

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Redirecting printer OUTQ to IFS with Overlay as a PDF

    Ok, I'll try to put as much detail without being too word'y, so here is some background info:
    The current setup is that we have an ancient third part overlay designer called Create!Form from BottomLine Tech., no longer supported.
    The Create!Form software is loaded on a Windows XP desktop(Latest Version of Windows it will work on) and after the overlay is designed on the XP desktop, its overlay definition is sent to the as400/i5, which has the corresponding Create!Form Server application.
    When a spool file is sent to the designated OutQue, the form type is what determines which overlay is used.

    Ok now here is the current printing process as far as I can determine, please bear with me as I am not a printing/OutQue expert.
    Example below is for a Work Order:
    The work order is sent to the OutQue where the overlay is applied. There is a Gauss server that either picks up or has an associated printer queue, and stores it as a .PDF on Gauss for anyone to lookup in SpyView. (Oh yeah, currently we have a Gauss Server, which runs an application called SpyView,.which uses work order number as an index to be looked up in SpyView)

    Here is what is needed:
    Gauss & SpyView are being decommissioned. So the powers that be would like ME, to store the spool file with its overlay, as a .PDF on the IFS for anyone(any other server or application) to pickup or reference. I am struggling mightily to figure out how to get the overlay applied and then store the spool file as a PDF. I know about the CPYSPLF to a PDF and save it to the IFS, and I thought I had it all figured out with this command, but when I apply that command on a spool file in the specified Outque described below, it does not have the overlay applied in the pdf, ,,.......HELP!!?!!?


    Like I said I am not very knowledgeable about all these printing/Outque parameters and options.
    So here/below is an example of what I am talking about, it is used with the Gauss server, which seems to be associated as a remote printer queue.
    Not sure how most of this(Outque parameters) works, so any/all help and explanations of "How To's" of possible solutions is appreciated! As I have never before setup Remote Outques or any of this User Data Transform stuff.
    Also, let me know if you need any other info.

    Outque Description (Wasn't sure if I should insert an image or just copy/paste the parms, oh well):

    Queue: MAGELDEV1 Library: QUSRSYS
    • Status:
    • Writer active . . . . . . . . . . . : Y
    • Writer name(s) if active . . . . . . : MAGELDEV1
    • Output queue held . . . . . . . . . : N
    • Maximum spooled file size:
    • Number of pages . . . . . . . . . . : *NONE
    • Starting time . . . . . . . . . . . :
    • Ending time . . . . . . . . . . . . :
    • Writers to autostart . . . . . . . . . : 1
    • Display any file . . . . . . . . . . . : *NO
    • Job separators . . . . . . . . . . . . : 0
    • Operator controlled . . . . . . . . . : *YES
    • Order of files on queue . . . . . . . : *FIFO
    • Data queue . . . . . . . . . . . . . . : *NONE
    • Library . . . . . . . . . . . . . . :
    • Authority to check . . . . . . . . . . : *OWNER
    • Remote system . . . . . . . . . . . . : KNLEGMAD
    • Remote printer queue . . . . . . . . . : KNLEGMAD
    • Queue for writer messages . . . . . . : QSYSOPR
    • Library . . . . . . . . . . . . . . : *LIBL
    • Connection type . . . . . . . . . . . : *IP
    • Destination type . . . . . . . . . . . : *OTHER
    • Host print transform . . . . . . . . . : *NO
    • User data transform . . . . . . . . . : CFS100 (I believe this is a program that is used by the Create!Form to apply the overlay. I just don't know how this parameter works.)
    • Library . . . . . . . . . . . . . . : CFSSYS270
    • Manufacturer type and model . . . . . : *WSCST
    • Workstation customizing object . . . . : HPPJLPS
    • Library . . . . . . . . . . . . . . : LASERS
    • Image configuration . . . . . . . . . : *NONE
    • Destination options . . . . . . . . . : *NONE
    • Print separator page . . . . . . . . . : *NO
    • User defined option . . . . . . . . . : *NONE
    • User defined object:
    • Object . . . . . . . . . . . . . . . : *NONE
    • Library . . . . . . . . . . . . . :
    • Object type . . . . . . . . . . . . :
    • User driver program . . . . . . . . . : *NONE
    • Library . . . . . . . . . . . . . . :
    • Spooled file ASP . . . . . . . . . . . : *SYSTEM
    • Text description . . . . . . . . . . . : *BLANK

  • #2
    Have you looked into IBM's Infoprint Server? You could probably make do without it but it will make your task a lot easier.

    Comment


    • #3
      Normally, overlays are added when the program prints a document. You are asking that it be applied after it has already been placed in the output queue which is a strange idea to me. Not sure how that would work? I guess that you'd have to modify the document in a user data transform program, but that would be much more advanced programming.

      A much simpler approach would be to apply the overlays when the program prints it. This can be done either using the OVRPRTF command, or better yet in the DDS for the print file itself. You can also use OVRPRTF to make it output as a PDF in the IFS, avoiding the output queue altogether. But, if the overlay has already been applied, your CPYSPLF idea would work, too. I think OVRPRTF would be simpler, though, from what you've told us.

      Comment


      • #4
        Thank you for the responses. Again purchasing any additional products is out as they are in the process of moving away from the as400/i5.

        Ok then let me simplify my question, since I have been reading for the past two weeks and have still gotten nowhere,...

        Can I print a spool file to the IFS, via any native IBM command or methods, such as SNDTCPSPLF or use a CRTDEVPRT to setup a virtual outq to the IFS, ect... which allows me to utilize the USRDTATFM parameter to apply the overlay when printing to the IFS?

        If it is possible please let me know how or point me to an example, please.
        Last edited by aidan2474; August 26, 2019, 12:42 PM.

        Comment


        • #5
          It is not normal for an outq to apply an overlay!!

          Normally an overlay is applied when the document is created, NOT by virtue of the outq. That's what I was trying to tell you in the previous message.

          Comment


          • #6
            Thank you Scott, and I understand what you are reinforcing in your reply, but I am trying to do something out of the ordinary, yet work within the confines of what I am able to use. I wouldn't be here asking this question if I had normal methods at my disposal. And I also want to thank you for being a great contributor to this career field, I have used many of your solutions in the past.

            The company I am contracted with is using a third party application to design and implement the Overlay/Barcodes/ect... Since the company is moving away from the IBMi/i5/as400, they would like an interim solution, without an expanded workload of redesigning the hundreds of spool files or additional cost.
            I have never seen or used the User data transform parameter on an Outq, so I do not know what it does or how it works, but I am guessing??? that this is how the Overlay/Barcodes/ect.. are being applied and I can't find much or any information on this parameter/examples of it/or why its there. I have found other commands such as LPR and SNDTCPSPLF that seem to be very close to what I think I need with having the same parameters (USRDTATFM) for how I believe the third party app is implementing the overlay, but again I am trying to do something that is not normally done, so the info I am looking for is not readily available. Which is why I am posting here.

            If it can't be done then I am good with that answer, but to say something is not normally done that way and leave it at that, is not figuring out if it is possible. And I need to figure out if it is possible.
            Thanks again for even taking the time to reply and have this discussion, it is much appreciated.

            Comment


            • #7
              User Data Transform procedures are meant for people writing their own printer drivers. The idea is that the data is in the spool in IBM's own SCS or AFPDS format, and it will call your user data transform program in various stages to transform it to the printer's language.

              Could you use it to apply an overlay? Of course. Since you're writing the appropriate language for the printer, you could also insert printer code to add additional elements to the page. But, this would be up to you to write by inserting the appropriate printer language to print the overlay. That is why people purchase packages for this sort of thing, in order to take advantage of the code that someone else wrote, especially if they aren't well versed in writing printer drivers.

              I've written user data transform programs to do simple things like add commands for duplexing, stapling, hole punching, etc. I called the IBM Host Print Transform API to get something relatively close to what my printer's language should be, and then inserted my own commands into the data stream. You could do that for overlays, perhaps.

              But, this does require some pretty tricky programming, as well as knowledge of the workings of the printer's language.

              Comment


              • #8
                This is by far the most clearly written explanation I have seen to date. It explains everything I was unsure about and more. Thank you!

                Now I just have to figure out how I can have some virtual or remote printer Outq/Driver process it and send back the finished output to the IFS
                Last edited by aidan2474; August 27, 2019, 01:40 PM.

                Comment


                • #9
                  Do you have a solution yet? We put PDFs on the IFS of most of our overlay docs.

                  Comment


                  • #10
                    No solution yet, please let me know what you use and/or how you do it.

                    Comment


                    • #11
                      > The form type is what determines which overlay is used.

                      Assuming the original spoolfile is SCS...

                      The redbook IBM i Printing VI SG246250 contains an example OUTQ monitor program which you could build upon. When a spoolfile goes to RDY status an entry is added to a DTAQ, which the monitor program is waiting on. When the entry is received you have the info needed to manipulate the SPLF. Using the QUSRSPLA API you can determine what form type is being used by the SPLF. Using the form type you could lookup in a table which OVERLAY to use.

                      Using CPYSPLF CTLCHAR(*FCFC) you can copy the SPLF to a PF, then CPYF to a PRTF which has the proper FRONTOVL specified (or OVRPRTF then CPYF) and direct it to a second OUTQ. Have a second OUTQ monitor on this queue only this time CPYSPLF to a PDF in the IFS.

                      I think that will create a spoolfile in the second OUTQ with the overlay applied. If it doesn't then plan B is to define the second OUTQ as remote printer with HPT(*YES) (CRTDEVPRT) at the loopback address and have the second OUTQ monitor on this "remote" queue (which is a third OUTQ) and have it do the CPYSPLF to a PDF in the IFS.

                      I haven't tested this but I think something along these lines this will work. Infoprint Server cascades OUTQs in this manner.

                      Comment

                      Working...
                      X