View Single Post
  #5 (permalink)  
Old 09-28-2008, 07:37 AM
serjant's Avatar
serjant serjant is offline
Senior Member
 
Join Date: Jun 2008
Location: Ukraine,Zaporozhye
Posts: 356
serjant is on a distinguished road
Send a message via ICQ to serjant Send a message via Skype™ to serjant
Download library from here :
New: 100% Java PDF Renderer and Viewer
then create two file:
Code:
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:
Code:
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
Reply With Quote