Примеры в этой статье делятся с вами конкретным кодом Java преобразования PDF -изображения для вашей ссылки. Конкретный контент заключается в следующем
Во -первых, компонент PDFBox 1.8.4 используется с использованием Apache.
Пакет PDF; Импорт java.awt.image.bufferedImage; Импорт java.io.file; импортировать java.io.ioexception; импортировать java.util.date; импортировать java.util.list; Импорт javax.imageio.imageio; Импорт org.apache.pdfbox.pdmodel.pddocument; Import org.apache.pdfbox.pdmodel.pdpage; открытый класс pdfbox {@suppresswarnings ("rawtypes") public static void main (string [] args) бросает ioException {string p = System.getProperty ("user.dir") + "/"+"zzk.pdf"; Pddocument doc = pddocument.load (p); int pagecount = doc.getNumberOfPages (); System.out.println (Pagecount); Дата начала = новая дата (); try {list pages = doc.getDocumentCatalog (). getAllPages (); for (int i = 0; i <pages.size (); i ++) {pdpage page = (pdpage) pages.get (i); @Suppresswarnings ("unared") int width = new float (page.getTrimbox (). GetWidth ()). IntValue (); @Suppresswarnings ("неиспользованный") int height = new float (page.getTrimbox (). Getheight ()). Intvalue (); BufferedImage image = page.converttoImage (); Imageio.write (image, "jpg", новый файл ("img" + file.separator + (i + 1) + ".jpg")); System.out.println («Изображение на странице ->»+(i+1)); }} catch (Exception e) {e.printstackTrace (); } наконец {if (doc! = null) {doc.close (); }} Date end = new Date (); System.out.println (end.getTime ()-start.getTime ()); System.out.println ("Over"); }}Но проблема заключается в проблеме:
Когда документ PDF составляет 180 м, он напрямую сообщает об исключении разбора
Обработка очень медленная, когда количество PDF -страниц составляет более 500 страниц
Позже я попытался использовать PDF-renderer версию 1.0.5
Пакет PDF; импортировать java.awt.image; импортировать java.awt.rectangle; Импорт java.awt.image.bufferedImage; Импорт java.io.file; Импорт java.io.fileOutputStream; импортировать java.io.ioexception; Импорт java.io.randomaccessfile; импортировать java.nio.mappedbytebuffer; Импорт java.nio.channels.fileChannel; Импорт com.sun.image.codec.jpeg.jpegcodec; Import com.sun.image.codec.jpeg.jpegencodeparam; Импорт com.sun.image.codec.jpeg.jpegimageencoder; Импорт com.sun.pdfview.pdffile; Импорт com.sun.pdfview.pdfpage; открытый класс pdfrenderer {public static void main (string [] args) бросает ioException {String pdfrealepath = System.getProperty ("user.dir") + "/"+"zzk.pdf"; File file = new File (pdfrealepath); Randomaccessfile raf = new randomaccessfile (файл, "r"); FileChannel Channel = raf.getChannel (); Mapedbytebuffer buf = channel.map (filechannel.mapmode.read_only, 0, channel.size ()); Pdffile pdffile = new pdffile (buf); for (int i = 1; i <= pdffile.getNumpages (); i ++) {pdfpage page = pdffile.getPage (i); Прямоугольник прямоугольник = новый прямоугольник (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 (). DrawMage (Img, 0, 0, rect.width, rect.height, null); FileOutputStream OUT = new FileOutputStream ("img" + file.separator + (i + 1) + ".jpg"); // Вывод в потоку файла jpegimageencoder encoder = jpegcodec.createjpegenceder (out); Jpegencodeparam param2 = encoder.getDefaultjpegenceDeparam (TAG); param2.setquality (1f, false); // 1F - это улучшение сгенерированного качества изображения encoder.setjpegencodeparam (param2); encoder.encode (Tag); // jpeg, кодирующий out.close (); System.out.println («Изображение на странице ->»+(i+1)); }}}Но проблема заключается в проблеме: когда версия PDF не составляет 1,4, сообщается о ошибке: ожидается «xref» в начале таблицы
По сравнению с PDFBox, конверсия гораздо менее эффективна. PDF с около 200 страниц занимает около 6 раз больше времени, которое требуется для последнего. В то же время есть некоторые проблемы с поддержкой китайских шрифтов.
Тем не менее, нет проблем с тем, что версия PDF не может быть преобразована.
PDFrenderer не может преобразовать версии 1.4 или выше. Я нашел решение, но не был найден.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.