ibmi-brunch-learn

Announcement

Collapse
No announcement yet.

Printing IFS documents on network printers

Collapse
This is a sticky topic.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • csanchez
    replied
    Re: Printing IFS documents on network printers

    Originally posted by as400boy View Post
    hello all,
    sorry if i resume an old thread... but i'm in the situation that i need to printout from AS/400 several pdf to a printer... prtstmf doesn't work in my printer, and wouldn't like to use AcroRd32... someone have found a solution?

    thanx in advance
    Hello, here is a possible solution to the problem. It looks very promissing, but I have not used this one. Let me know if you try it out and what the results are. Charlie


    Select "Wiki" located on the top left green bar
    Select "Search"
    Enter Pdf2PsOutq
    Click on Pdf2PsOutq

    This will give you the details needed to implement this solution.

    Leave a comment:


  • as400boy
    replied
    Re: Printing IFS documents on network printers

    hello all,
    sorry if i resume an old thread... but i'm in the situation that i need to printout from AS/400 several pdf to a printer... prtstmf doesn't work in my printer, and wouldn't like to use AcroRd32... someone have found a solution?

    thanx in advance

    Leave a comment:


  • csanchez
    replied
    Re: Printing IFS documents on network printers

    I found this solution that is working well for me. It consists of installing AFP Fonts on your PC and running STRPCO on the PC to move the PDF files from the IFS to an iSeries output queue. Here are some details. Charlie
    Actions Needed:
    --Create an iSeries output queue - crtoutq pdfprint (no special settings are needed)
    --Create a NetServer Print Share using iSeries Navigator providing only the Share Name and Output Queue
    --On the PC, create a Network Printer that connects to the Share decribed here. See the process below.
    --An iSeries CL program that uses STRPCO to move the IFS objects to an iSeries output queue. Code Sample below.

    Create a Network Printer on the PC:
    --From the desktop, select "Start | Printers and Faxes | Add a Printer"
    --Click Next on the wizard window
    --Select "Network Printer" and press Next
    --Select "Connect to this printer" and use name "\\<yourSysnameHere>\PDFPRINT$"
    *Press OK if an error window appears indicating "The server for the printer does not have the correct printer driver installed",
    --Select "Have Disk" on the "Add Printer Wizard" window
    --Click "Browse" on the "Install From Disk" window and select "C:\ca400\CWBAFP\cwbasp.inf". Then select Ok
    --Select "Generic IBM 600dpi AFP" Printer and click OK <----- Maybe we can use 300dpi here
    --Select "No" on the "Default Printer" prompt and click Next
    --Select "Finish"
    CL Program to move the IFS objects to an iSeries output queue:
    PHP Code:
    Pgm                                            
                                                   
    Dcl        
    var(&QshCmd)    type(*charlen(256)
    Dcl        var(&PDFCount)  type(*charlen(8)  
    Dcl        var(&FileName)  type(*charlen(100)
    Dcl        var(&SysName)   type(*charlen(8)  
                                                   
    DclF       file(libname/PDFFILELST)     <--- this file was created using the crtpf with record length 200                                               
    RtvNetA    sysname
    (&SYSNAME)                   

    StrPco                                                           
    MonMsg     msgid
    (IWS4010)                                        
    /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
    CrtDtaAra  dtaara(QGPL/PDFCounttype(*CHARlen(8)              
    MonMsg     msgid(CPF0000)                                        
                                                                     
    ChgVar     var(&QSHCMDvalue('ls -tr +                          
                   /home/PDFFiles | wc -l | datarea  +        
                   -w /qsys.lib/qGPL.lib/PDFCount.dtaara'
    )           
    Qsh        cmd(&QshCmd)                                          
    MonMsg     msgid(CPF0000)                                        
                                                                     
    RtvDtaAra  dtaara(QGPL/PDFCountrtnvar(&PDFCount)               
    DltDtaAra  dtaara(QGPL/PDFCount)                                 
    MonMsg     msgid(CPF0000)                                        
    If         
    cond(&PDFCount *EQ '       0'then(Do)               
       
    SndPgmMsg  msg('There are no files available for printing +   
                       in /home/PDFFiles.'
    )                   
       GoTo       
    End                                                
    EndDo                                                            

    ChgVar     
    var(&QSHCMDvalue('ls -tr +                          
                 /home/PDFFiles/* > +                         
                 /qsys.lib/yourLibName.lib/PDFFileLst.file/PDFF+         
                 FILELST.mbr'
    )                                         
    Qsh        cmd(&QshCmd)                                          
    MonMsg     msgid(CPF0000)                                        
                                                                     
    Read:    RcvF                                                             
    MonMsg     msgid
    (CPF0864exec(GOTO End)                         
                                                                     
    ChgVar     var(&QSHCMDvalue('START AcroRd32.exe /p /t +        
                 "e:' 
    *tcat &PDFFILELST *tcat +                       
                 
    '" "\\' *tcat &SysName *tcat '\PDFPRINT$"')           
    StrPCCmd   pccmd(&QSHCMDpause(*NO)                             
                                                                     
    GoTo       
    cmdlbl(Read)                                          
    /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */

    End:    EndPgm 

    Leave a comment:


  • csanchez
    replied
    Re: Printing IFS documents on network printers

    Vitaemachina,

    You mentioned in a post regarding this topic that you'd found a solution that worked well for printing PDF documents to an iSeries Network Printer.

    I've been trying to figure out how to do this for a good amount of time and have looked for solutions on the web, but none have worked for me. All of the examples I've seen point to similar solutions, but there seems to be a missing piece.

    Can you provide details about your solution?

    Thanks

    Leave a comment:


  • AlanF
    replied
    Re: Printing IFS documents on network printers

    Bump,

    I am looking at this same scenario in which I need to print IFS stored PDF's to a network printer, Hey Vitaemachina did you get your code streamlined? Could you post what you have?
    Thanks

    Leave a comment:


  • jamief
    replied
    Re: Printing IFS documents on network printers

    cool cant wait to see it....


    Jamie

    Leave a comment:


  • vitaemachina
    replied
    Re: Printing IFS documents on network printers

    Success! I'll post back when I've got this developed into a more streamlined process, but I was able to print the PDF!

    Leave a comment:


  • vitaemachina
    replied
    Re: Printing IFS documents on network printers

    Originally posted by K2r400 View Post
    On green screen does the LPR command works fine ?
    I believe it's working just fine. I assume it's working fine during the QSH session as well, because I do end up with data in a spooled file.

    I tried a different method of printing - Scott Klement's PRTSTMF command, http://www.scottklement.com/PrtStmf.zip - unfortunately, it doesn't appear my printer will understand PDF data natively, so I'm now looking at methods to convert to PCL or PS via GhostScript.

    Leave a comment:


  • mjhaston
    replied
    Re: Printing IFS documents on network printers

    I did get this working from CLP. Could have sworn I had more examples than this ...

    Code:
    PGM                                                
                                                       
    STRPCO                                             
                                                       
    MONMSG     MSGID(IWS4010)                          
                                                       
    STRPCCMD   PCCMD('START AcroRd32.exe /t +          
                 "T:\MHASTON\TEST.PDF"') PAUSE(*NO)    
                                                       
    ENDPGM

    My T:\ is mapped to the IFS.

    Leave a comment:


  • K2r400
    replied
    Re: Printing IFS documents on network printers

    On green screen does the LPR command works fine ?

    Leave a comment:


  • vitaemachina
    replied
    Re: Printing IFS documents on network printers

    I hate to bump a slightly over year-long thread, but I'm pretty much attempting to do the same thing mjhaston is here - printing a PDF stored in the IFS to a network attached printer. I feel like perhaps I'm missing a step here somewhere, however.

    I'm able to run the following, and have output show up in

    PHP Code:
    echo Hello iSeries Rfile -wbQ -"ovrprtf file(qprint) outq(BP4) splfname(pdfprt) hold(*yes)" qprint 
    However, trying to modify the second example ends up with a file that I can't release to the printer - it just flashes back to *HLD immediately.

    PHP Code:
    before='ovrprtf qprint devtype(*userascii) spool(*yes)'                                                                 
    after="lpr file(qprint) rmtsys(my-iseries-ip) prtq(BP4) transform(*no)"                                             
    cat -/01.pdf Rfile -wbQ -"$before-"$afterqprint 
    My gut feeling at this point is something to do with how the printer is configured on our system - I'm not exactly a hardware guy. Anyone have any ideas where I can start looking? I'm not able to do anything with remote PC commands, or moving the PDF to a different system - I have to print it entirely self-contained from a network printer from our IBM i.

    Thanks!

    Leave a comment:


  • mjhaston
    replied
    Re: Printing IFS documents on network printers

    Code:
    > before='ovrprtf qprint devtype(*userascii) spool(*yes)'                                                                 
      $                                                                                                                       
    > after="lpr file(qprint) rmtsys(my-iseries-ip) prtq(ricoh3045) transform(*no)"                                             
      $                                                                                                                       
    > cat -c /invoices/INV3103646.pdf | Rfile -wbQ -c "$before" -C "$after" qprint                                            
      Rfile: [B]001-2354 Message CPF0006 running CL command[/B] lpr file(qprint) rmtsys(my-iseries-ip) prtq (ricoh3045) transform(*no)  
      $

    Leave a comment:


  • mjhaston
    replied
    Re: Printing IFS documents on network printers

    From my PC I can run this command ...

    Code:
    AcroRd32.exe /t "\\ifs\invoices\INV3103646.pdf" "\\172.16.0.5\ricoh3045"

    I guess I'll have to play around with that and STRPCCMD?



    Sorry ... typed this at the same time as your post Jamie!
    Last edited by mjhaston; October 6, 2009, 12:17 PM.

    Leave a comment:


  • jamief
    replied
    Re: Printing IFS documents on network printers

    Pete Who knew



    ISERIES PROGRAMMER TIPS
    Printing from Qshell

    Shalom Carmel
    03.16.2006
    While Qshell is a valuable tool in the iSeries professional's toolbox, some features it has are hard to discover. For example, instructions on how to print Qshell output to an iSeries printer are hidden in an obscure page in the InfoCenter. To send the output of a Qshell command to an output queue, use the Rfile command. Entered by itself, the following command "echo Hello iSeries" will echo to the screen the words "Hello iSeries". We will redirect that to a printer file via Rfile echo Hello iSeries | Rfile -wbQ -c "ovrprtf file(qprint) outq(outqname) splfname(qshprt) hold(*yes)" qprint

    The InfoCenter has an example on how to send ASCII files and Qshell output to remote printers.
    more...

    1. Print the spool file named QPRINT and number 1 for a job using a qualified job name. catsplf -j 386687/SHELLTST/QZSHCHLD QPRINT 1
    2. Print the spool file named QPRINT and number 1 for a job using a pid. catsplf -p 942 QPRINT 1
    3. Print all of the spool files for a job. catsplf -a -j 386687/SHELLTST/QZSHCHLD


    and more
    PHP Code:
    STRQSH
    before='ovrprtf qprint devtype(*userascii) spool(*yes)'
    after="lpr file(qprint) rmtsys(printserver) prtq (printername) transform(*no)"
    cat -/qibm/userdata/mydir/mypdf.pdf Rfile -wbQ -"$before-"$afterqprint 

    Leave a comment:


  • Pete
    replied
    Re: Printing IFS documents on network printers

    You could use the rfile command through QSH.

    Pete

    Leave a comment:

Working...
X