Aside from sending automatically the pdf files directly to the printer
without invoking the Acrobat dialog box, I also create hyperlinks to
each of the pdf file generated so that the user can open each in the
browser and print it in case the previous process fails.

It would be nice if i can allow the user to generate multiple
pdfs(actually, student certificates) and automatically print them from
his local printer.

here's my code to print it automatically after generating the pdf:

public boolean uploadFile(String directory, String filename, String
student, String school){

boolean filecreated = false;

       String myfile = filename.trim();
       String mystudent = student.trim();
       String myschool = school.trim();
       String mydirectory = directory.trim();
       int charsize = mystudent.length();
       int charsize2 = myschool.length();
       // step 1: creation of a document-object
       Document document = new Document(PageSize.A4.rotate());

try {

           // step 2:
           // we create a writer that listens to the document
           // and directs a PDF-stream to a file
           PdfWriter writer = PdfWriter.getInstance(document, new
FileOutputStream(myfile));


// we add a Watermark that will show up try { Watermark watermark = new Watermark(Image.getInstance(mydirectory), 50, 20); document.add(watermark); } catch(Exception e) { System.err.println("watermark image in wrong path.."); }

           // step 3: we open the document
           document.open();

           // step 4: we grab the ContentByte and do some stuff with it
           PdfContentByte cb = writer.getDirectContent();


// we tell the ContentByte we're ready to draw text cb.beginText();

           BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA,
BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
           cb.setFontAndSize(bf, 14);

           // we draw some text on a certain position
           int xpos = 400 - (charsize*3);
           cb.setTextMatrix(xpos, 316);
           cb.showText(mystudent);
           System.out.println("xpos="+xpos);

           int xpos2 = 400 - (charsize2*3);
           cb.setTextMatrix(xpos2, 270);
           cb.showText(myschool);
           System.out.println("xpos2="+xpos2);

           // we tell the contentByte, we've finished drawing text
           cb.endText();
           filecreated = true;
       }
       catch(DocumentException de) {
           System.err.println(de.getMessage());
           filecreated = false;
       }
       catch(IOException ioe) {
           System.err.println(ioe.getMessage());
           filecreated = false;
       }

       // step 5: we close the document
       document.close();


return filecreated; }

   public boolean printFile(String filename){
       boolean fileprinted = false;

String myfile = filename.trim();

try{

             String osName = System.getProperty("os.name" );
             //FOR WINDOWS 95 AND 98 USE COMMAND.COM
             if( osName.equals( "Windows 95" ) || osName.equals(
"Windows 98" )){
                 Runtime.getRuntime().exec("command.com /C start
acrord32 /p /h" + myfile);
                 System.out.println("printing pdf..95.."+ myfile);
             }
             //FOR WINDOWS NT/XP/2000 USE CMD.EXE
             else {
                 Runtime.getRuntime().exec("cmd.exe /C start acrord32
/p /h" + myfile);
                 System.out.println("printing pdf..2000.."+ myfile);
             }
             fileprinted = true;
         }
         catch(IOException ioe) {
               System.err.println(ioe.getMessage());
               fileprinted = false;
         }


return fileprinted;


Rich Shonk wrote:


Since you are attempting to access a local printer, the printing needs to be handled on the user machine. You will need to send the pdf to the user and print from Acrobat Reader.

Rich

> local printers attached to a user machine
>
>
> Yuri,
>
> > My problem is: once my app is deployed  in the unix box
> > (test/production servers), i can generate the pdf files and store
them
> > in the server but i won't be able to execute the runtime command to
> send
> > the files to the local machine's printer.
>
> Are you attempting to print to network printers accessible by IP
> address or local printers attached to a user machine?
>
> Rich

___________________________________________________________________________ To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff SERVLET-INTEREST".

Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html



Reply via email to