You can download jt400.jar from https://sourceforge.net/projects/jt400/ OR find it here in your system IFS path /QIBM/ProdData/HTTP/Public/jt400/lib
PrintPDFAS400.java Source
package com.mysamplecode;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.Properties;
import com.ibm.as400.access.AS400;
import com.ibm.as400.access.OutputQueue;
import com.ibm.as400.access.PrintObject;
import com.ibm.as400.access.PrintParameterList;
import com.ibm.as400.access.SpooledFileOutputStream;
public class PrintPDFAS400 {
static Properties props;
public static void main(String[] args) {
String filePath = null;
String outputQueue = null;
PrintPDFAS400 printPDF = new PrintPDFAS400();
if (args.length < 2)
{
System.err.println("Usage: java " + printPDF.getClass().getName() +
" File_Path Output_Queue");
System.exit(1);
}
filePath = args[0].trim();
outputQueue = args[1].trim();
printPDF.sendToPrinter(filePath, outputQueue);
}
public boolean sendToPrinter(String filePath, String outputQueue){
boolean printed = false;
try {
props = new Properties();
props.load(new FileInputStream("properties/as400connection.properties"));
//Connect to AS400
AS400 as400 = new AS400(props.getProperty("iSeries").trim(), props.getProperty("userId").trim(), props.getProperty("password").trim());
//Get Access to Output Queue
String outputQueuePath = "/QSYS.LIB/QGPL.LIB/" + outputQueue.trim() + ".OUTQ";
OutputQueue outQ = new OutputQueue(as400, outputQueuePath);
//Parms for Spool file
PrintParameterList parms = new PrintParameterList();
parms.setParameter(PrintObject.ATTR_COPIES, 1);
parms.setParameter(PrintObject.ATTR_OUTPUT_QUEUE, outQ.getPath());
SpooledFileOutputStream osSpool = new SpooledFileOutputStream(as400, parms, null, null);
InputStream fisPDF = null;
//PDF needs to be downloaded from the WEB link
if (filePath.toLowerCase().indexOf("http") == 0) {
URL url = new URL(filePath);
URLConnection urlConnect = url.openConnection();
if (urlConnect.getContentType().equalsIgnoreCase("application/pdf")) {
fisPDF = url.openStream();
}
}
//PDF is stored locally on the server
else {
fisPDF = new FileInputStream(filePath);
}
byte[] buf = new byte[2048];
int bytesRead;
do {
bytesRead = fisPDF.read(buf);
if (bytesRead != -1) {
osSpool.write(buf, 0, bytesRead);
}
}
while (bytesRead != -1);
osSpool.flush();
osSpool.close();
fisPDF.close();
printed = true;
}
catch (Exception e)
{
System.out.println("Exception occured while creating the spooled file.");
e.printStackTrace();
}
return printed;
}
}
as400connection.properties Source
iSeries=192.168.100.123 userId=SAMPLE password=******
No comments:
Post a Comment
NO JUNK, Please try to keep this clean and related to the topic at hand.
Comments are for users to ask questions, collaborate or improve on existing.