Les exemples de cet article partagent avec vous le code spécifique de Java convertissant l'image PDF pour votre référence. Le contenu spécifique est le suivant
Tout d'abord, le composant PDFbox 1.8.4 en utilisant Apache
package pdf; Importer java.awt.image.bufferedImage; Importer java.io.file; Importer java.io.ioException; Importer java.util.date; Importer java.util.list; import javax.imageio.imageio; import org.apache.pdfbox.pdmodel.pdDocument; import org.apache.pdfbox.pdmodel.pdpage; classe publique pdfbox {@SuppressWarnings ("RawTypes") public static void main (String [] args) lève ioException {String p = System.getProperty ("user.dir") + "/"+"zk.pdf"; PdDocument doc = pdDocument.load (p); int pageCount = doc.getNumberofPages (); System.out.println (PageCount); Date start = new Date (); essayez {list pages = doc.getDocumentCatalog (). getAllPages (); for (int i = 0; i <pages.size (); i ++) {pdpage page = (pdpage) pages.get (i); @SuppressWarnings ("inutilisé") int width = new float (page.getTrimbox (). GetWidth ()). IntValue (); @SuppressWarnings ("inutilisé") int height = new float (page.getTrimbox (). Getheight ()). IntValue (); BufferedImage Image = Page.Converttoimage (); Imageo.write (image, "jpg", nouveau fichier ("img" + file.separator + (i + 1) + ".jpg")); System.out.println ("image dans la page ->" + (i + 1)); }} catch (exception e) {e.printStackTrace (); } enfin {if (doc! = null) {doc.close (); }} Date fin = new Date (); System.out.println (end.getTime () - start.getTime ()); System.out.println ("Over"); }}Mais le problème réside dans le problème:
Lorsque le document PDF est de 180 m, il signale directement une exception d'analyse
Le traitement est très lent lorsque le nombre de pages PDF dépasse 500 pages
Plus tard, j'ai essayé d'utiliser la version 1.0.5 du rendu PDF
package pdf; import java.awt.image; import java.awt.rectangle; Importer java.awt.image.bufferedImage; Importer java.io.file; Importer java.io.fileOutputStream; Importer java.io.ioException; import java.io.randomaccessfile; Importer java.nio.mappytebuffer; Importer java.nio.channels.fileChannel; import com.sun.image.codec.jpeg.jpegcodec; import com.sun.image.codec.jpeg.jpencencodeparam; import com.sun.image.codec.jpeg.jpegImageEncoder; import com.sun.pdfview.pdffile; import com.sun.pdfview.pdfpage; classe publique PdfRenderrer {public static void main (String [] args) lève ioException {String pdfrealepath = System.getProperty ("user.dir") + "/"+"zk.pdf"; Fichier fichier = nouveau fichier (pdfrealepath); RandomAccessFile RAF = new RandomAccessFile (fichier, "r"); FileChannel Channel = raf.getChannel (); MappedByteBuffer buf = channel.map (filechannel.mapMode.read_only, 0, canal.size ()); Pdffile pdffile = new pdffile (buf); for (int i = 1; i <= pdffile.getNumpages (); i ++) {pdfpage page = pdffile.getPage (i); Rectangle rect = new rectangle (0, 0, ((int) page.getBbox () .getWidth ()), ((int) page.getBbox (). Getheight ())); Image img = page.getImage (rect.width, rect.height, rect, null, true, true); BufferedImage Tag = new BufferedImage (rect.width, rect.height, bufferedImage.type_int_rgb); tag.getGraphics (). DrawImage (img, 0, 0, rect.width, rect.height, null); FileOutputStream out = new FileOutputStream ("img" + file.separator + (i + 1) + ".jpg"); // Sortie en flux de fichiers jpegImageEncoder Encoder = jPegCodec.CreateJPegenCoder (Out); JpeGencodeParam Param2 = Encoder.getDefaultJPegencodeParam (TAG); param2.setquality (1f, false); // 1f doit améliorer l'encodeur de qualité d'image généré.SetJpencecodeParam (param2); Encoder.encode (TAG); // JPEG Encoding Out.Close (); System.out.println ("image dans la page ->" + (i + 1)); }}}Mais le problème réside dans le problème: lorsque la version de PDF n'est pas 1,4, une erreur est signalée directement: «xref» attendu au début du tableau
Par rapport à PDFbox, la conversion est beaucoup moins efficace. Un PDF avec environ 200 pages prend environ 6 fois le temps nécessaire pour ce dernier. Dans le même temps, il y a des problèmes avec le soutien aux polices chinoises.
Cependant, il n'y a aucun problème que la version PDF ne puisse pas être convertie.
PDFRENSERER ne peut pas convertir les versions 1.4 ou supérieures. J'ai trouvé la solution mais je n'ai pas été trouvée.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.