Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di _RpR_
    Registrato dal
    Jan 2012
    Messaggi
    10

    Problema conversione PDF

    Ho un problema con il seguente codice: Dovrebbe teoricamente prendere un file in formato PDF nel path specificato e poi salvarmelo come immagine in un'altro path specificato, solo che quando faccio RUN (con Eclipse) e gli dico JavaApplication, mi apre una finestra con scritto : Select Java Apllication Select Type... Select Item (con una lista di vari Item)


    E qui mi blocco non sapendo come procedere... So che è una domanda stupida, ma cosa devo fare?




    codice:
    import java.awt.Rectangle;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.nio.ByteBuffer;
    import java.nio.channels.FileChannel;
    
    import javax.imageio.ImageIO;
    
    import com.sun.pdfview.PDFFile;
    import com.sun.pdfview.PDFPage;
    
    public class ProvaPdf {
    	
    	
    	public static BufferedImage[] getImgFromPDF(File pdf) {
    		// Dichiaro l'array di immagini che dovrò ritornare
    		BufferedImage[] immagini = null;
    
    		try {
    			// Faccio l'accesso al file pdf da elaborare
    			RandomAccessFile raf = new RandomAccessFile(pdf, "r");
    
    			// A questo punto per poter utilizzare la classe PDFFile di
    			// com.sun.pdfview dovrò creare un buffer in memoria
    			// che in genere, per questa libreria viene creato dal FileChannel
    			FileChannel channel = raf.getChannel();
    			// Mappandolo in un buffer il suo contenuto,
    			// FileChannel.MapMode.READ_ONLY serve per impedire che in qualche
    			// modo l'origine venga modificata
    			ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
    			// Istanzio la classe PDFFile che rappresenta il mio PDF
    			PDFFile pdffile = new PDFFile(buf);
    			// Mi facio restituire il numero delle pagine
    			int num = pdffile.getNumPages();
    			// Creo l'array delle immagini
    			immagini = new BufferedImage[num];
    
    			// Riprendo un'immagine per volta
    			for (int i = 0; i < num; i++) {
    				// La metto nell'oggetto PDFPage
    				PDFPage page = pdffile.getPage(i);
    
    				// Prendo le dimenzioni allo zoom di default del pdf
    				int width = (int) page.getBBox().getWidth();
    				int height = (int) page.getBBox().getHeight();
    
    				// Creo un rettangolo uguale alla pagina
    				Rectangle rect = new Rectangle(0, 0, width, height);
    				// Prendo la rotazione della pagina e se è impostata a 90 o 270,
    				// quindi girata in verticale
    				int rotation = page.getRotation();
    				Rectangle rectRotato = rect;
    				if (rotation == 90 || rotation == 270) {
    					// Mi creo un'altro rettangolo con le dimensioni invertite,
    					// se invece non entro in questo in i due rettangoli sono
    					// uguali
    					rectRotato = new Rectangle(0, 0, rect.height, rect.width);
    				}
    
    				// genero l'immagine con il metodo getImage di PDFPage
    				BufferedImage img = (BufferedImage) page.getImage(rect.width, rect.height, // width
    																							// &
    																							// height
    						rectRotato, // clip rect
    						null, // null per l'ImageObserver
    						true, // setto lo sfondo bianco, false lo avrebbe fatto
    								// trasparente
    						true // attendo fino a quando l'immagine non è stata
    								// creata prima di proseguire
    						);
    
    				// Setto nella posizione corrente l'immagine creata
    				immagini[i] = img;
    			}
    		} catch (FileNotFoundException ex) {
    			System.err.println(ex.getLocalizedMessage());
    		} catch (IOException ex) {
    			System.err.println(ex.getLocalizedMessage());
    		}
    
    		return immagini;
    	}
    
    	public static void main() {
    		File filePdf = new File("D:\\Documenti\\Download\\1.3.6.1.4.1.21367.2005.3.9999.758111111111803 (1).pdf");
    		BufferedImage[] buffImg = getImgFromPDF(filePdf);
    		int i=0;
    		try {
    			ImageIO.write(buffImg[0], "png", new File("C:\\" + i + "_.png"));
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    		
    		
    	}
    }
    THOMAS

    E stranamente, non so perché non glielo dissi. Ora vorrei con tutto il cuore averlo fatto. Il passato si riflette perennemente in due specchi: quello luminoso delle parole pronunciate e delle azioni compiute e quello scuro, colmo di tutte le cose che non abbiamo detto o fatto.

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013

    Re: Problema conversione PDF

    Originariamente inviato da _RpR_


    E qui mi blocco non sapendo come procedere... So che è una domanda stupida, ma cosa devo fare?
    Buttare via Eclipse potrebbe essere un ottimo inizio.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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 © 2025 vBulletin Solutions, Inc. All rights reserved.