Prévisualiser la page de couverture d'un PDF

Aller en bas

Prévisualiser la page de couverture d'un PDF Empty Prévisualiser la page de couverture d'un PDF

Message  Gus le Sam 26 Fév - 13:39

Pour se faire une idée du contenu d'un eBook PDF, il peut être intéressant de prévisualiser la première page qui est souvent l'image de couverture du eBook. Nous allons montrer deux entités permettant de récupérer la première page d'un fichier PDF sous forme d'image, soit par l'API JPedal, soit par l'API PDFBox

Par l'API JPedal :
gus.file.read.pdf.asimage
Code:
package gus05.entity.gus.file.read.pdf.asimage;

import java.awt.Image;
import java.io.File;
import org.jpedal.Display;
import org.jpedal.PdfDecoder;

import gus05.framework.core.Entity;
import gus05.framework.features.Transform;

public class ReadPdfAsImage implements Entity, Transform {

    public String getName()            {return "gus.file.read.pdf.asimage";}
    public String getCreationDate()      {return "2011.07.15";}

    public Object transform(Object obj) throws Exception
    {
       File file = (File) obj;
       return firstPageAsImage(file);
    }
   
    private Image firstPageAsImage(File file) throws Exception
    {
       PdfDecoder decoder = new PdfDecoder();
       decoder.setDisplayView(Display.SINGLE_PAGE,Display.DISPLAY_CENTERED);
       decoder.openPdfFile(file.getAbsolutePath());
       decoder.decodePage(1);
       Image image = decoder.getPageAsImage(1);
       decoder.closePdfFile();
       return image;
    }
}

Par l'API PDFBox:
gus.file.read.pdf.asimage2
Code:
package gus05.entity.gus.file.read.pdf.asimage2;

import java.awt.Image;
import java.io.File;
import java.util.List;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
import org.apache.pdfbox.pdmodel.PDPage;
import gus05.framework.core.Entity;
import gus05.framework.features.Transform;

public class ReadPdfAsImage2 implements Entity, Transform {

    public String getName()            {return "gus.file.read.pdf.asimage2";}
    public String getCreationDate()      {return "2011.07.30";}

    public Object transform(Object obj) throws Exception
    {
       File file = (File) obj;
       return firstPageAsImage(file);
    }
   
    private Image firstPageAsImage(File file) throws Exception
    {
       PDDocument doc = PDDocument.load(file);
       PDDocumentCatalog catalog = doc.getDocumentCatalog();
       List allPages = catalog.getAllPages();
       if(allPages==null || allPages.isEmpty()) return null;
       
       PDPage page = (PDPage) allPages.get(0);
       Image image = page.convertToImage();
       doc.close();
       
       return image;
    }
}
Gus
Gus
Admin

Messages : 249
Date d'inscription : 01/09/2009

Voir le profil de l'utilisateur http://www.gus05.com

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum