BasicStream

import java.io.*;
import javax.print.*;

public class  {
    public static void main(String[] args) {
        try {
            // Open the image file
            InputStream is = new BufferedInputStream(
                new FileInputStream("filename.gif"));

            // Prepare the output file to receive the postscript
            OutputStream fos = new BufferedOutputStream(
                new FileOutputStream("filename.ps"));

            // Find a factory that can do the conversion
            DocFlavor flavor = DocFlavor.INPUT_STREAM.GIF;
            StreamPrintServiceFactory[] factories =
                StreamPrintServiceFactory.lookupStreamPrintServiceFactories(
                    flavor,
                    DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType());

            if (factories.length > 0) {
                StreamPrintService service = factories[0].getPrintService(fos);

                // Create the print job
                DocPrintJob job = service.createPrintJob();
                Doc doc = new SimpleDoc(is, flavor, null);

                // Monitor print job events; for the implementation of PrintJobWatcher,
                // see Determining When a Print Job Has Finished
                PrintJobWatcher pjDone = new PrintJobWatcher(job);

                // Print it
                job.print(doc, null);

                // Wait for the print job to be done
                pjDone.waitForDone();
                // It is now safe to close the streams
            }

            is.close();
            fos.close();
        } catch (PrintException e) {
        } catch (IOException e) {
        }
    }
}

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.