Example: Create Spooled File
/////////////////////////////////////////////////////////////////////////
// Example that shows creating a spooled file on an AS/400 from an input stream.
//
// For more information about AS/400 Printing, refer to :
// OS/400 Printer Device Programming, SC41-3713
// IBM AS/400 Printing IV Redbook, GG24-4389
//
/////////////////////////////////////////////////////////////////////////
//
// This source is an example of AS/400 Toolbox for Java "SpooledFileOutputStream".
// IBM grants you a nonexclusive license to use this as an example
// from which you can generate similar function tailored to
// your own specific needs.
//
// This sample code is provided by IBM for illustrative purposes
// only. These examples have not been thoroughly tested under all
// conditions. IBM, therefore, cannot guarantee or imply
// reliability, serviceability, or function of these programs.
//
// All programs contained herein are provided to you "AS IS"
// without any warranties of any kind. The implied warranties of
// merchantablility and fitness for a particular purpose are
// expressly disclaimed.
//
// AS/400 Toolbox for Java
// (C) Copyright IBM Corp. 1997
// All rights reserved.
// US Government Users Restricted Rights -
// Use, duplication, or disclosure restricted
// by GSA ADP Schedule Contract with IBM Corp.
//
/////////////////////////////////////////////////////////////////////////
import java.io.*;
import java.util.*;
import com.ibm.as400.access.*;
class NPExampleCreateSplf
{
// method to create the spooled file on the specified system, in the specified
// output queue from the given input stream.
public SpooledFile createSpooledFile(AS400 system,
OutputQueue outputQueue,
InputStream in)
{
SpooledFile spooledFile = null;
try
{
byte[] buf = new byte[2048];
int bytesRead;
SpooledFileOutputStream out;
PrintParameterList parms = new PrintParameterList();
// create a PrintParameterList with the values that we want
// to override from the default printer file...we will override
// the output queue and the copies value.
parms.setParameter(PrintObject.ATTR_COPIES, 4);
if (outputQueue != null)
{
parms.setParameter(PrintObject.ATTR_OUTPUT_QUEUE, outputQueue.getPath());
}
out = new SpooledFileOutputStream(system,
parms,
null,
null);
// read from the inputstream in until end of stream, passing all data
// to the spooled file output stream.
do
{
bytesRead = in.read(buf);
if (bytesRead != -1)
{
out.write(buf);
}
} while (bytesRead != -1);
out.close(); // close the spooled file
spooledFile = out.getSpooledFile(); // get a reference to the new spooled file
}
catch (Exception e)
{
//...handle exception...
}
return spooledFile;
}
}