jPDFWriter is a Java class library to create PDF documents directly from Java programs without having to install any third party drivers or software. It emulates the standard Java classes to print and draw graphics to reduce the learning curve when using the library and reuse existing code. It can create PDF files in two ways: PDF files can be created directly using jPDFWriter's very simple API (simply create a PDFDocument object, create as many PDFPage objects as necessary, draw strings, graphics, or any other elements supported by Graphics2D to the pages, and save the document), or jPDFWriter can extend the standard Java PrinterJob to create PDF files as though printing to a physical printer. This allows reuse of existing printing code and lets an application decide, at runtime, whether to send the output to a printer or to a PDF file. PDF files can be saved to files on a disk, written to a java.io.OutputStream, or written directly to a javax.servlet.ServletOutputStream to show in a browser when working within a J2EE application server. jPDFWriter is written entirely in Java, so application portability and operating system independence are not compromised.