【问题标题】:Copy stream file to printer file将流文件复制到打印机文件
【发布时间】:2012-08-21 06:55:35
【问题描述】:

我需要使用 IBM i 系统。该任务包括将存储的文件(PCL 格式)存储到 IFS 中并将其(完全二进制)复制到输出队列。

为此,我遵循 4 个步骤:

1) Create a FILE in QTEMP.
2) Copy IFS file to the file in QTEMP.
3) Create a Printer File linked to a Output Queue
4) Copy the QTEMP file to Printer File.

但在第二步中,文件似乎被系统截断了。

有谁知道如何复制流文件而不被截断?

我运行的命令如下:

1) CRTPF QTEMP/IFSFILETP RCDLEN(8201) MBR(IFSFILETP) LVLCHK(*NO)
2) CPYFRMSTMF FROMSTMF([IFS_FILE_PATH]) TOMBR('/QSYS.LIB/QTEMP.LIB/IFSFILETP.FILE/IFSFILETP.MBR') MBROPT(*REPLACE) CVTDTA(*NONE) ENDLINFMT(*FIXED) TABEXPN(*NO)
3) CRTPRTF FILE(QTEMP/PRINTFILE) DEVTYPE(*USERASCII) OUTQ(MYLIBRARY/MYOUTPUTQUEUE)
4) CPYF FROMFILE(QTEMP/IFSFILETP) TOFILE(QTEMP/PRINTFILE)

谢谢!

【问题讨论】:

    标签: ibm-midrange ibm-ifs


    【解决方案1】:

    我手头没有 PCL 文件,但可以试试这样的方法

    QSH CMD('cat -c [IFS_FILE_PATH] | Rfile -wbQ -c "ovrprtf qprint outq(mylibrary/myoutputqueue) devtype(*userascii)" qprint')
    

    这个想法是完全绕过复制到中间 QSYS.LIB 文件。 Rfile 是 IBM i 独有的。

    【讨论】:

    • 嗨,我试过了,但输出队列中的文件与原始文件不完全相同,似乎如果寄存器大小为(例如 128 字节),命令完成它虽然不是必要的,包括末尾的 0x40 个字符:S
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-27
    • 2014-07-22
    • 1970-01-01
    • 2021-04-03
    相关资源
    最近更新 更多