Os exemplos deste artigo compartilham com você o código específico de Java convertendo a imagem em PDF para sua referência. O conteúdo específico é o seguinte
Primeiro, o componente pdfbox 1.8.4 é usado usando o Apache.
pacote pdf; importar java.awt.image.bufferiMage; importar java.io.file; importar java.io.ioException; importar java.util.date; importar java.util.list; importar javax.imageio.imageio; importar org.apache.pdfbox.pdmodel.pddocument; importar org.apache.pdfbox.pdmodel.pdpage; public class Pdfbox {@suppresswarnings ("RawTypes") public static void main (string [] args) lança ioexception {string p = system.getProperty ("user.dir") + "/"+"zk.pdf"; PdDocument doc = pddocument.load (p); int pageCount = doc.getNumberOfPages (); System.out.println (PageCount); Data start = new date (); tente {list páginas = doc.getDocumentCatalog (). getAllPages (); for (int i = 0; i <páginas.size (); i ++) {PDPage Page = (pdPage) páginas.get (i); @Suppresswarnings ("não utilizado") int width = new float (Page.getTrimbox (). GetWidth ()). Intvalue (); @Suppresswarnings ("não utilizado") int alting = new float (Page.getTrimbox (). GetHeight ()). IntValue (); BufferImage imagem = página.convertToimage (); Imageio.write (imagem, "jpg", novo arquivo ("img" + file.separator + (i + 1) + ".jpg")); System.out.println ("Imagem na página ->"+(i+1)); }} catch (Exceção e) {e.printStackTrace (); } finalmente {if (doc! = null) {doc.close (); }} Data final = new Date (); System.out.println (end.gettime ()-start.gettime ()); System.out.println ("over"); }}Mas o problema está no problema:
Quando o documento PDF é 180m, ele relata diretamente uma exceção de análise
O processamento é muito lento quando o número de páginas em PDF é superior a 500 páginas
Mais tarde, tentei usar o PDF Renderer versão 1.0.5
pacote pdf; importar java.awt.image; importar java.awt.rectangle; importar java.awt.image.bufferiMage; importar java.io.file; importar java.io.fileOutputStream; importar java.io.ioException; importar java.io.randomaccessfile; importar java.nio.MapDByteBuffer; importar java.nio.channels.FileChannel; import com.sun.image.codec.jpeg.jpegcodec; importar com.sun.image.codec.jpeg.jpegencodeParam; import com.sun.image.codec.jpeg.jpegImageEncoder; importação com.sun.pdfview.pdffile; importação com.sun.pdfview.pdfpage; public class PdFrenderer {public static void main (string [] args) lança ioexception {string pdfrealepath = System.getProperty ("user.dir") + "/"+"zk.pdf"; Arquivo de arquivo = novo arquivo (pdfrealepath); RAF RAFACESSFILE RAF = novo RandomAccessFile (arquivo, "r"); Canal filechannel = raf.getChannel (); MapedByteBuffer buf = canal.map (filechannel.mapmode.read_only, 0, canal.size ()); Pdffile pdffile = novo pdffile (buf); for (int i = 1; i <= pdffile.getNumpages (); i ++) {PDFPage Page = pdffile.getPage (i); Retângulo ret = novo retângulo (0, 0, ((int) página.getBbox () .getWidth ()), ((int) página.getBbox (). GetHeight ()); Imagem img = Page.getImage (Rect.Width, Rect.Height, Rect, Null, True, True); Tag bufferiMage = new bufferImage (ret.width, ret.height, bufferImage.type_int_rgb); tag.getgraphics (). drawImage (img, 0, 0, rect.width, ret.height, null); FileOutputStream Out = new FileOutputStream ("img" + file.separator + (i + 1) + ".jpg"); // saída para fluxo de arquivo jpegImageEncoder coder = jpegcodec.createjpegencoder (out); JpegencodeParam param2 = coder.getDefaultJPEGENCODEPARAM (TAG); param2.setQuality (1f, false); // 1f é para melhorar o codificador de qualidade de imagem gerado.setjpegencodeParam (param2); coder.encode (tag); // jpeg coding Out.close (); System.out.println ("Imagem na página ->"+(i+1)); }}}Mas o problema está no problema: quando a versão do PDF não é 1.4, um erro é relatado diretamente: 'esperado' xref 'no início da tabela
Comparado com o PDFBox, a conversão é muito menos eficiente. Um PDF com cerca de 200 páginas leva cerca de 6 vezes o tempo que leva para o último. Ao mesmo tempo, existem alguns problemas com o apoio às fontes chinesas.
No entanto, não há problema em que a versão em PDF não possa ser convertida.
O PDFrenderrer não pode converter 1.4 ou acima versões. Encontrei a solução, mas não fui encontrado.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.