Los ejemplos en este artículo comparten con usted el código específico de la imagen PDF de conversión de Java para su referencia. El contenido específico es el siguiente
Primero, el componente PDFBox 1.8.4 se usa usando Apache.
paquete pdf; import java.awt.image.bufferedImage; import java.io.file; import java.io.ioException; import java.util.date; import java.util.list; import javax.imageio.imageio; importar org.apache.pdfbox.pdmodel.pddocument; importar org.apache.pdfbox.pdmodel.pdpage; public class Pdfbox {@SupplesSwarnings ("RawTypes") public static void main (string [] args) lanza ioexception {string p = system.getProperty ("user.dir") + "/"+"zk.pdf"; PdDocument doc = pdDocument.load (p); int pageCount = doc.getNumberOfPages (); System.out.println (pageCount); Fecha de inicio = nueva fecha (); Pruebe {List Pages = doc.getDocumentCatalog (). getAllPages (); for (int i = 0; i <page.size (); i ++) {pdpage page = (pdpage) pages.get (i); @SupessWarnings ("no usado") int width = new Float (page.gettrimbox (). GetWidth ()). IntValue (); @SupplesSwarnings ("no usado") int hight = new float (page.getTrimBox (). Getheight ()). IntValue (); Bufferedimage image = page.convertToImage (); ImageIO.Write (Image, "JPG", nuevo archivo ("IMG" + File.separator + (i + 1) + ".jpg")); System.out.println ("Imagen en la página ->"+(i+1)); }} catch (Exception e) {E.PrintStackTrace (); } finalmente {if (doc! = null) {doc.close (); }} Fecha final = nueva fecha (); System.out.println (end.gettime ()-start.gettime ()); System.out.println ("Over"); }}Pero el problema radica en el problema:
Cuando el documento PDF es de 180 m, informa directamente una excepción de análisis
El procesamiento es muy lento cuando el número de páginas PDF es de más de 500 páginas
Más tarde, intenté usar PDF-Renderer versión 1.0.5
paquete pdf; import java.awt.image; import java.awt.rectangle; import java.awt.image.bufferedImage; import java.io.file; import java.io.fileOutputStream; import java.io.ioException; import java.io.randomaccessfile; import java.nio.MappedByteBuffer; import java.nio.channels.filechannel; import com.sun.image.codec.jpeg.jpegcodec; import com.sun.image.codec.jpeg.jpegencodeparam; import com.sun.image.codec.jpeg.jpegimageEncoder; import com.sun.pdfview.pdffile; import com.sun.pdfview.pdfpage; Public Class PDFrenderer {public static void main (String [] args) lanza ioexception {string pdfreLePath = system.getProperty ("user.dir") + "/"+"zk.pdf"; Archivo archivo = nuevo archivo (pdfreLePath); RandomAccessFile RAF = new RandomAccessFile (archivo, "r"); Canal fileChannel = 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 página = pdffile.getPage (i); Rectangle rect = new Rectangle (0, 0, ((int) Page.getBbox () .getWidth ()), ((int) Page.getBbox (). Getheight ())); Imagen img = Page.getImage (rect.width, rect.height, rect, null, true, true); TagedImage 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"); // Salida a Archivo de flujo JPegimageEncoder Encoder = jpegcodec.createjpegencoder (out); Jpegencodeparam param2 = encoder.getDefaultjpegencodeparam (TAG); param2.setQuality (1f, falso); // 1f es mejorar el codificador de calidad de imagen generado.setJpegencodeparam (Param2); encoder.encode (etiqueta); // JPEG codificando.close (); System.out.println ("Imagen en la página ->"+(i+1)); }}}Pero el problema radica en el problema: cuando la versión de PDF no es 1.4, se informa un error directamente: 'xref' esperado al inicio de la tabla
En comparación con PDFBox, la conversión es mucho menos eficiente. Un PDF con aproximadamente 200 páginas lleva aproximadamente 6 veces el tiempo que lleva para este último. Al mismo tiempo, hay algunos problemas con el apoyo a las fuentes chinas.
Sin embargo, no hay problema de que la versión PDF no se pueda convertir.
PDFrenderer no puede convertir las versiones 1.4 o superiores. Encontré la solución pero no me encontré.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.