|
In this solution, we are creating a Java Process by
initializing the print queue. As Unix lp command supports
piping of data, we are obtaining the outputStream of the
print Process and setting that as the OutputStream for
the FOP Driver instance. This means that FOP Driver will
write the formatted output straight to the OutputStream of the
printer process generated. A similar concept can be exploited in
Windows based operating system as well if you want to. You also
might have noticed that we are setting the Renderer to
PostScript renderer just before we call the driver.run()
method to let the Driver produce a Postscript output.
If you have a print queue "testQueue" set up in your
environment, you will see a printed PostScript output to the
printer configured for that queue.
What about PDF?
Well, in order to print a PDF document straight to the printer,
you will need Adobe Acrobat Reader installed in the machine and
then you will have to invoke the print module of the Acrobat.
This is straight forward and shouldn't be any trouble, but it's
definitely worth trying. Find the Acrobat.exe files and you will
see in the help section how to invoke Acrobat in the print mode.
Create a Java process with that Acrobat .exe and pass the
document to it. You can see that the drawback is that the
machine must have Acrobat installed on it, hence, I prefer the
other solutions. You can still store the documents in PDF, if
you want to, but for a transparent print solution, I would
recommend the Postscript solution mentioned in Listing 4.
Conclusion
In this article, we have understood that printing custom
formatted documents such as PDF and Postscript needs specialized
driver or application software. In case, where we must not have
to store the document physically, we can print it in two
different ways. One is using the intermediate XSL-FO document
and AWT Renderer (Windows only) and the other is piping the
formatted output directly to the printer (Unix). These two
solutions are interchangeable in both the OS by providing
correct Print Renderer or initiating a Java Print Process. Hope
this article will give you a guideline to approach printing
solutions using FOP.
Samudra Gupta has six
years of Java related application development experience. He has
been involved in various research based projects in Java
including e-commerece based and application design and
development projects. He is based in the United Kingdom. In his
free time, he is a columnist in different Java Magazines and
Journals and loves to play contract bridge.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|