PdfExportExample.java
package sos.examples;
import com.lowagie.text.*;
import com.lowagie.text.pdf.*;
import java.awt.*;
import java.awt.print.*;
import java.io.*;
import sos.reports.*;
public class PdfExportExample
{
public static void export( JReportPane reportPane, OutputStream outputStream )
{
try
{
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance( document, outputStream );
document.open();
PageFormat format = new PageFormat();
int width = (int)format.getWidth();
int height = (int)format.getHeight();
Pageable pagedReport = reportPane.getFittedPageable( format );
DefaultFontMapper mapper = new DefaultFontMapper();
for( int i = 0; i < pagedReport.getNumberOfPages(); i++ )
{
if( i > 0 )
document.newPage();
PdfContentByte cb = writer.getDirectContent();
PdfTemplate tp = cb.createTemplate( width, height );
Graphics2D g2 = tp.createGraphics( width, height, mapper);
Printable printable = pagedReport.getPrintable( i );
try
{
printable.print( g2, format, 0 );
g2.dispose(); cb.addTemplate( tp, 0, 0 );
}
catch( PrinterException pe )
{
pe.printStackTrace();
}
}
document.close();
}
catch( DocumentException de )
{
de.printStackTrace();
}
}
}