advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement

Tutorials : Using FOP with Java - Part 2 :

Using FOP with Java - Part 2

by Samuda Gupta

Introduction

Last month, we examined FOP and how to use it in context of producing formatted output in formats such as PDF, PostScript etc. The primary goal of producing documents in different formats is to increase the exchangability. In this context, one of the major issues would be to be able to print this document in both real-time and off-line. This month, we will examine different issues regarding printing the documents produced with FOP.

Issues related to Print

One of the fundamental issues related to printing any document is that the printer needs to interpret the binary data that it receives and decode it correctly to produce a desired print output. The piece of software that does this job for the printer is called the printer driver. The driver is responsible for translating any binary data to the printer in an understandable format.

Because of this driver, most of the printers are capable of understanding commonly used document standards such as Ms-Word document, Excel document etc. However, for documents like PDF etc, we need software like Adobe Acrobat Reader, which can translate the PDF document to a printer readable format.

Thus, to successfully print any custom formatted document we need either a pre-installed driver or application software capable of translating the document to a printer readable format.

FOP and Print problems

>We have seen that it is easy to produce formatted outputs such as PDF using FOP. However, printing the produced PDF document from within FOP may be a bit more tricky. The issue is if we directly send the PDF document binary to the printer, the printer will not be able to decode it properly.

However, the situation is different with Postscript. Most modern printers by default support PostScript format. So if you have a Postscript enabled printer, you can send the Postscript document to the printer straight away.

It is important to mention, that the problem of printing Postscript or any such documents using FOP can be resolved and in the next sections we will see more than one way of resolving them.

Printing Solution 1

The first question to ask is do you really need to store the output from FOP as a document? What I mean is that it may be good enough for you just to be able to print the document and not storing it as PDF or PS or any other format. If that is the case, there is a solution using the FO document format. Now, many of you might recall from my previous article that FOP produces an intermediate document format called FO document with .fo extension. This FO document contains a XSL-FO definition of the content to be printed or formatted to any other final desired output format. In essence, XSL-FO contains the data and the layout definition for the final output.

If you don’t need to physically produce a PDF or PS document, then this XSL-FO document can do the printing job for you. Next, we shall produce an example of a printing program using FOP. This solution is based on the Java AWT Printing API. The Java AWT provides two interfaces java.awt.Printable and java.awt.Pageable. One can write a class implementing these two interfaces, which is capable of handling the page layout and page content for any printable object. Details of discussion about Java AWT print is beyond the scope for this article, but a nice tutorial can be found at the JavaBoutique website.

How to Add Java Applets to Your Site

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.

 Avaya Developer Showcase
 MSDN Spotlight
 PHP for Windows Showcase
XML error: undefined entity at line 34
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

IBM Brings Developers Into the Cloud
Apache at 10: You Can't Buy Us
Microsoft's CodePlex Foundation Moving Forward
Apple Claims 100,000 Apps, Google Analyzes Them
Nokia Latest to Play Opera Mobile 10 Browser
PayPal Opens Up Payment Platform to Devs
Ubuntu Linux 9.10 'Karmic Koala' Starts Its Climb
IBM Links Rational Developer Tools, Tivoli Apps
Libraries Give Vista Apps a Windows 7 Look
Ubuntu: The 'Default Alternative' to Windows?

Delivering Web-based Embedded Fonts in CSS 3
Adobe Helps PHP Developers Create Rich Internet Applications
Java Developers Finding a Home at Adobe Flex
Virtualization Delivers a Dynamic Infrastructure
Consuming XML Web Services in iPhone Applications
Build a More Agile Business with IBM
POJO-Based Solutions for LDAP Access: One Good, One Better
IBM Offers Enhanced Measurement and Management for Energy Usage
IBM Helps Transformation to an Information-Based Enterprise
Top Five Touch UI-Related Design Guidelines

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Reprints, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs