Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17
  1. #11
    Ma il mio codice per te è corretto?

  2. #12
    Non sembra sbagliato, ma personalmente avrei diviso la parte di lettura del contenuto del PDF e la parte di creazione del JFrame per aver qualcosa di riusabile.
    Segui quanto detto da andbin, niente di più facile che sia il file ad essere corrotto.

    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  3. #13
    Ora dà un errore diverso..Non ci salto proprio fuori ahah

    Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.rangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at org.apache.pdfbox.io.RandomAccessBuffer.seek(Rando mAccessBuffer.java:84)
    at org.apache.pdfbox.io.RandomAccessFileInputStream.r ead(RandomAccessFileInputStream.java:96)
    at java.io.BufferedInputStream.fill(Unknown Source)
    at java.io.BufferedInputStream.read(Unknown Source)
    at org.apache.pdfbox.io.ASCII85InputStream.read(ASCII 85InputStream.java:73)
    at org.apache.pdfbox.io.ASCII85InputStream.read(ASCII 85InputStream.java:181)
    at org.apache.pdfbox.filter.ASCII85Filter.decode(ASCI I85Filter.java:48)
    at org.apache.pdfbox.cos.COSStream.doDecode(COSStream .java:279)
    at org.apache.pdfbox.cos.COSStream.doDecode(COSStream .java:229)
    at org.apache.pdfbox.cos.COSStream.getUnfilteredStrea m(COSStream.java:156)
    at org.apache.pdfbox.pdfparser.PDFStreamParser.<init> (PDFStreamParser.java:108)
    at org.apache.pdfbox.util.PDFStreamEngine.processSubS tream(PDFStreamEngine.java:253)
    at org.apache.pdfbox.util.PDFStreamEngine.processSubS tream(PDFStreamEngine.java:237)
    at org.apache.pdfbox.util.PDFStreamEngine.processStre am(PDFStreamEngine.java:217)
    at org.apache.pdfbox.pdfviewer.PageDrawer.drawPage(Pa geDrawer.java:119)
    at org.apache.pdfbox.pdfviewer.PDFPagePanel.paint(PDF PagePanel.java:98)
    at javax.swing.JComponent.paintChildren(Unknown Source)
    at javax.swing.JComponent.paint(Unknown Source)
    at javax.swing.JComponent.paintChildren(Unknown Source)
    at javax.swing.JComponent.paint(Unknown Source)
    at javax.swing.JLayeredPane.paint(Unknown Source)
    at javax.swing.JComponent.paintChildren(Unknown Source)
    at javax.swing.JComponent.paintToOffscreen(Unknown Source)
    at javax.swing.RepaintManager$PaintManager.paintDoubl eBuffered(Unknown Source)
    at javax.swing.RepaintManager$PaintManager.paint(Unkn own Source)
    at javax.swing.RepaintManager.paint(Unknown Source)
    at javax.swing.JComponent.paint(Unknown Source)
    at java.awt.GraphicsCallback$PaintCallback.run(Unknow n Source)
    at sun.awt.SunGraphicsCallback.runOneComponent(Unknow n Source)
    at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
    at java.awt.Container.paint(Unknown Source)
    at java.awt.Window.paint(Unknown Source)
    at javax.swing.RepaintManager$3.run(Unknown Source)
    at javax.swing.RepaintManager$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPri vilege(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unkno wn Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unkno wn Source)
    at javax.swing.RepaintManager.prePaintDirtyRegions(Un known Source)
    at javax.swing.RepaintManager.access$1100(Unknown Source)
    at javax.swing.RepaintManager$ProcessingRunnable.run( Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPri vilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilter s(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(U nknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarch y(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

  4. #14
    Quote Originariamente inviata da schumy2000 Visualizza il messaggio
    Non sembra sbagliato, ma personalmente avrei diviso la parte di lettura del contenuto del PDF e la parte di creazione del JFrame per aver qualcosa di riusabile.
    Segui quanto detto da andbin, niente di più facile che sia il file ad essere corrotto.

    Ciao.
    Ho risolto gli errori precedenti...ora non ho più errori ne in esecuzione ne in compilazione, ma purtroppo in esecuzione mi apre sempre un JFrame vuoto...

  5. #15
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da marco1462 Visualizza il messaggio
    purtroppo in esecuzione mi apre sempre un JFrame vuoto...
    Puoi postare un pochino di codice (magari di più di quello postato all'inizio)? Da quello iniziale, vedo e capisco solo che stai usando il componente (pannello) di PDFBox per mostrare una pagina.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #16
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Puoi postare un pochino di codice (magari di più di quello postato all'inizio)? Da quello iniziale, vedo e capisco solo che stai usando il componente (pannello) di PDFBox per mostrare una pagina.
    Questa è la classe che faccio riferimento:
    codice:
    /**Classe BookReader per lettura dei libri
     * Implementa metodi astratti dichiarati in 
     * Classe lettura_Panel
     */
    import java.awt.BorderLayout;
    import java.awt.Desktop;
    import java.awt.Dimension;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    import java.util.Arrays;
    import java.util.List;
    
    
    import javax.swing.JEditorPane;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JScrollPane;
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    import org.apache.pdfbox.PDFReader;
    import org.apache.pdfbox.cos.COSDocument;
    import org.apache.pdfbox.exceptions.InvalidPasswordException;
    import org.apache.pdfbox.pdfparser.PDFParser;
    import org.apache.pdfbox.pdfviewer.PDFPagePanel;
    import org.apache.pdfbox.pdmodel.PDDocument; 
    import org.apache.pdfbox.pdmodel.PDPage;
    import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;
    import org.apache.pdfbox.pdmodel.font.PDFont;
    import org.apache.pdfbox.pdmodel.font.PDType1Font;
    import org.apache.pdfbox.util.PDFImageWriter;
    import org.apache.pdfbox.util.PDFTextStripper;
    import org.apache.pdfbox.util.PDFTextStripperByArea;
    
    
    public class BookReader extends lettura_Panel{
    	JFrame f_main;
    	JFrame f_options;
    	int dim_book;
    	Book []b;
    	
    	public BookReader(JFrame f_main, JFrame f_options, Book[] b, int dim_book) {
    		super(f_main, f_options, b, dim_book);
    		
    	}
    
    
    	@Override
    	public void readerEpub(Book[] b, int selectedRow) {
    		Desktop d = Desktop.getDesktop();
    		File f = new File(b[table.getSelectedRow()].Percorso);
    		try {
    			d.open(f);
    		} catch (IOException e1) {
    			JOptionPane.showMessageDialog(f_options, "Percorso inserito non corretto");
    			return;
    		}
    	}
    
    
    	@Override
    	public void readerHtml(Book[] b, int selectedRow) {
    		File file = new File(b[table.getSelectedRow()].Percorso);
            JEditorPane jEditorPane = new JEditorPane();
            jEditorPane.setEditable(false);
            jEditorPane.setContentType("text/html");	
         
            try {
    			jEditorPane.setPage(file.toURI().toURL());
    		} catch (IOException ex) {
    			JOptionPane.showMessageDialog(f_options, "Percorso inserito non corretto");
    		}
            JScrollPane scrollPane = new JScrollPane(jEditorPane);
     
            JFrame j = new JFrame("HTML Reader");
            j.getContentPane().add(scrollPane, BorderLayout.CENTER);
            j.setSize(new Dimension(500,600));
            j.setLocationRelativeTo(null);
            j.setVisible(true);
    	}
    
    
    	@Override
    	public void readerPdf(Book[] b, int selectedRow) {
    		File PDF_Path = new File(b[table.getSelectedRow()].Percorso);
            PDDocument inputPDF = null;
            try {
                inputPDF = PDDocument.load(PDF_Path);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            List<PDPage> allPages = inputPDF.getDocumentCatalog().getAllPages();
            
            PDPage testPage = (PDPage)allPages.get(0);
            JFrame testFrame = new JFrame();
            PDFPagePanel pdfPanel;
            try {
                pdfPanel = new PDFPagePanel();
                pdfPanel.setPage(testPage);
                testFrame.add(pdfPanel);
                testFrame.setBounds(40, 40, pdfPanel.getWidth(), pdfPanel.getHeight());
                testFrame.setVisible(true);
                inputPDF.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
    	}	
    	
    	
    	
    }

    Questa è la classe che chiama quei metodi Reader:
    codice:
    /**Classe astratta lettura_Panel per la lettura dei libri presenti in biblioteca
     * Libri in formato pdf e html saranno visualizzati tramite
     * Visualizzatori che usufruiscono di librerie esterne,
     * Mentre libri in formato epub, saranno visualizzati tramite
     * Programmi presente nel pc 
     */
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.util.Vector;
    
    
    public abstract class lettura_Panel extends JPanel{
    	private static final long serialVersionUID = 1L;
    	JFrame f_main;
    	JFrame f_options;
    	Image libro;
    	MyTableModel dataModel;
    	JTable table;
    	int dimBook;
    	Book []b; 
    
    
    	public lettura_Panel(JFrame f_main,JFrame f_options,final Book[] b,int dimBook){
    		setLayout(null);
    		this.b = b;
    		this.dimBook = dimBook;
    		Toolkit t = Toolkit.getDefaultToolkit();
    		libro = t.getImage("libri.jpg");
    		MediaTracker track = new MediaTracker(this);
    	    track.addImage(libro , 1);
    		try {
    			track.waitForAll();
    		} catch (InterruptedException e) {
    		    e.printStackTrace();
    		}
    		
    		Vector v = new Vector();
    		for(int z=0;z<dimBook;z++){
    			v.add(b[z]);
    		}
    		
    		dataModel = new MyTableModel(v);
    		table = new JTable(dataModel);
    		JScrollPane scrollpane = new JScrollPane(table);
    		scrollpane.setPreferredSize(new Dimension(800,350));
    		scrollpane.setBounds(0,0,700,450);
    		add(scrollpane);
    		
    		table.addMouseListener(new MouseAdapter() {
    			public void mouseClicked(MouseEvent e) {
    				if(e.getClickCount()>1){
    					if("epub".equals(b[table.getSelectedRow()].formato)){
    						readerEpub(b,table.getSelectedRow());
    						
    					}
    					if("html".equals(b[table.getSelectedRow()].formato)){
    						readerHtml(b,table.getSelectedRow());
    					}
    					if("pdf".equals(b[table.getSelectedRow()].formato)){
    						readerPdf(b,table.getSelectedRow());
    					}
    				}
    			}
    		});
    	}
    
    
    	public void paintComponent(Graphics g){
    		super.paintComponent(g);
    		setOpaque(false);
    		g.drawImage(libro, 0, 0, null);
    	}
    	
    	public abstract void readerEpub(Book[] b, int selectedRow);
    	public abstract void readerHtml(Book[] b, int selectedRow);
    	public abstract void readerPdf(Book[] b, int selectedRow);
    }

  7. #17
    Nessuna idea?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.