Re: Printing Problem
Make a script (like a Windows batch script [a .bat file])
that wraps your PDF Creator call. Make that script take
no input at all. Use it with a default file to try at
first.
Yes I have made a batch file with default file.
1. Does it work when you call the *script* manually ?
It works perfectly when called manually.
2. Does it work when you call that same script from
a standalone Java app using Runtime.exec ?
gives correct output when called through a standalone Java app using
Runtime.exec.
3. Does it work when you call that same script from
your JSP/Servlet ?
PDF creator is called but does not give output... nor writes anything
in the output file.
I have tried all the things. ikts not that I haven't. just that I dont
have anyone to guide me here, no ones from programming background that
I'm get stuck.
Now, If I'm doing the same thing using JPS a blank file is being
created.
My revised code:
package pack;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterJob;
import java.io.FileInputStream;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.DocAttributeSet;
import javax.print.attribute.DocAttribute;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Copies;
import javax.print.attribute.standard.JobName;
import javax.print.attribute.standard.OrientationRequested ;
public class Printjob {
public static void main(String[] args)
{
String filename = "C:\\1.doc" ;
new Printjob().printPDFPages(filename);
}
public void printPDFPages(String fileLocation) {
try {
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet
();
pras.add(OrientationRequested.PORTRAIT);
pras.add(new Copies(1));
pras.add(new JobName(fileLocation, null));
PrintService ps1 = null;
PrintService pss[] = PrintServiceLookup.lookupPrintServices(null,
null);
String printerName = "PDFCreator";
for (int i = 0; i < pss.length; i++) {
if (pss[i].getName().equalsIgnoreCase(printerName)) {
ps1 = pss[i];
break; }
}
System.out.println("Default printer: "+ps1.getName());
System.out.println("Printing to " + ps1);
System.out.println("Filename " + fileLocation);
DocAttributeSet attributeSet = new HashDocAttributeSet ();
FileInputStream fin = new FileInputStream(fileLocation);
Doc doc = new SimpleDoc(fin,
DocFlavor.INPUT_STREAM.AUTOSENSE,null);
ps1.createPrintJob().print(doc, pras);
fin.close();
Thread.sleep(30000);
System.out.println("All Done !!");
} catch (Exception ie) {ie.printStackTrace();}
}
}
A blank pdf file is created with name as .pdf and not 1.pdf as
required when I execute the program.