forked from Coded/SIPRP
git-svn-id: https://svn.coded.pt/svn/SIPRP@655 bb69d46d-e84e-40c8-a05a-06db0d633741
parent
b1d6dfe72e
commit
23f980f919
@ -0,0 +1,60 @@
|
|||||||
|
package siprp.ficha;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Graphics;
|
||||||
|
import java.awt.Graphics2D;
|
||||||
|
import java.awt.Rectangle;
|
||||||
|
import java.awt.print.PageFormat;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.RandomAccessFile;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.nio.channels.FileChannel;
|
||||||
|
|
||||||
|
import com.evolute.utils.print.A4ContinuoPage;
|
||||||
|
import com.evolute.utils.print.AbstractPrintHandler;
|
||||||
|
import com.sun.pdfview.PDFFile;
|
||||||
|
import com.sun.pdfview.PDFPage;
|
||||||
|
import com.sun.pdfview.PDFRenderer;
|
||||||
|
|
||||||
|
public class PDFFilePrinter extends AbstractPrintHandler
|
||||||
|
{
|
||||||
|
protected byte pdf[];
|
||||||
|
protected PDFFile pdffile;
|
||||||
|
|
||||||
|
public PDFFilePrinter(byte pdf[], boolean printDialog )
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
super( new A4ContinuoPage(), printDialog );
|
||||||
|
|
||||||
|
this.pdf = pdf;
|
||||||
|
ByteBuffer buffer = ByteBuffer.allocate( pdf.length );
|
||||||
|
buffer.put( pdf );
|
||||||
|
//
|
||||||
|
|
||||||
|
// File file = new File("/home/fpalma/Desktop/icons_op.pdf");
|
||||||
|
//
|
||||||
|
// // set up the PDF reading
|
||||||
|
// RandomAccessFile raf = new RandomAccessFile(file, "r");
|
||||||
|
// FileChannel channel = raf.getChannel();
|
||||||
|
// ByteBuffer buffer = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
|
||||||
|
pdffile = new PDFFile(buffer);
|
||||||
|
setNumberOfPages( pdffile.getNumPages() );
|
||||||
|
print();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void paintGraphics( Graphics g, PageFormat pf, int index )
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
PDFPage page = pdffile.getPage( index );
|
||||||
|
PDFRenderer renderer = new PDFRenderer(page, ( Graphics2D ) g,
|
||||||
|
new Rectangle(0, 0,(int) page.getWidth(), (int) page.getHeight()), null, Color.RED);
|
||||||
|
page.waitForFinish();
|
||||||
|
renderer.run();
|
||||||
|
}
|
||||||
|
catch( Exception ex )
|
||||||
|
{
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in new issue