Download library from here :
New: 100% Java PDF Renderer and Viewer
then create two file:
import java.awt.*;
import java.awt.geom.*;
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
import javax.swing.*;
import com.sun.pdfview.*;
public class Renderer {
private Image image;
private String fileName;
private PDFFile pdfFile;
private double height;
private double width;
private int numpages;
private Image[] images;
public Renderer(String file,int pagenum){
fileName=file;
try{
RandomAccessFile raf = new RandomAccessFile (new File (fileName), "r");
FileChannel fc = raf.getChannel ();
ByteBuffer buf = fc.map (FileChannel.MapMode.READ_ONLY, 0, fc.size ());
pdfFile = new PDFFile (buf);
}
catch(IOException e){
System.out.println("the file wasn't found");
}
numpages = pdfFile.getNumPages ();
System.out.println ("Number of pages = "+numpages);
/*if (pagenum > numpages)
pagenum = numpages;
*/
images=new Image[numpages];
int counter=1;
for(int i=0;i<images.length;i++){
PDFPage page = pdfFile.getPage (counter);
Rectangle2D r2d = page.getBBox ();
width = r2d.getWidth ();
height = r2d.getHeight ();
width /= 72.0;
height /= 72.0;
int res = Toolkit.getDefaultToolkit ().getScreenResolution ();
width *= res;
height *= res;
image = page.getImage ((int) width, (int) height, r2d, null, true, true);
images[i]=image;
counter++;
}
}
public Image[] getImagePDFArray(){
return this.images;
}
public Image getPDFImage(){
return this.image;
}
public double getWidth(){
return this.width;
}
public int getNumOfPages(){
return this.numpages;
}
public int getHeight(){
return (int)this.height;
}
}
the seocnd one:
import java.awt.*;
import java.awt.geom.*;
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
import javax.swing.*;
import com.sun.pdfview.*;
import java.awt.event.*;
public class PDFViewer extends JFrame
{
// static Image image;
public PDFViewer (String title)
{
super (title);
setDefaultCloseOperation (EXIT_ON_CLOSE);
pack ();
}
public static void main (final String [] args) throws IOException
{
int pagenum=1;
final Renderer rend=new Renderer(fileName,pagenum);
Runnable r = new Runnable ()
{
int y=0;
JViewport view;
public void run ()
{
PDFViewer pdf= new PDFViewer ("PDF Viewer: "+"<Your pdf file>");
JToolBar toolBar=new JToolBar();
JButton buttonScroll=new JButton("Next");
toolBar.add(buttonScroll);
toolBar.setVisible(true);
JLabel[] labels=new JLabel[rend.getNumOfPages()];
JPanel main=new JPanel();
main.setLayout(new BoxLayout(main,BoxLayout.Y_AXIS));
for(int i=0;i<labels.length;i++){
labels[i]=new JLabel(new ImageIcon (rend.getImagePDFArray()[i]));
labels[i].setVerticalAlignment (JLabel.BOTTOM);
main.add(labels[i]);
}
JScrollPane pane=new JScrollPane (main);
JSplitPane splitPane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,toolBar,pane);
splitPane.setDividerSize(4);
view = pane.getViewport();
Point p = new Point(0,y);
view.setViewPosition(p);
y=rend.getHeight();
buttonScroll.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int r=0;
double rp=0.0;
rp=view.getViewPosition().getY();
r=(int)rp/rend.getHeight();
y=rend.getHeight()*r+rend.getHeight();
Point p = new Point(0,y);
view.setViewPosition(p);
}
});
pdf.setContentPane (splitPane);
pdf.setSize(800,600);
pdf.setVisible (true);
}
};
EventQueue.invokeLater (r);
}
}
Search where you have PDFViewer pdf= new PDFViewer ("PDF Viewer: "+"<Your pdf file>"); and insert your own file pdf to open