Эта статья разделяет конкретный код для Java для конвертации IMG и PDF друг другу для вашей ссылки. Конкретный контент заключается в следующем
Если вы не умеете выразить, просто опубликуйте код напрямую. Пожалуйста, игнорируйте меня.
Импорт java.awt.image.bufferedImage; импортировать java.io.bytearrayoutputstream; Импорт java.io.file; импортировать java.io.fileinputstream; Импорт java.io.fileOutputStream; импортировать java.io.inputstream; Импорт java.io.randomaccessfile; Импорт java.nio.bytebuffer; Импорт java.nio.channels.fileChannel; импортировать java.util.map; импортировать java.util.map.entry; импортировать java.util.treemap; Импорт com.utils.imgfileTool; Импорт com.lowagie.text.document; Импорт com.lowagie.text.image; Импорт com.lowagie.text.rectangle; Импорт com.lowagie.text.pdf.pdfcopy; Import com.lowagie.text.pdf.pdfimportedPage; Import com.lowagie.text.pdf.pdfreader; Импорт com.lowagie.text.pdf.pdfwriter; Импорт com.sun.image.codec.jpeg.jpegcodec; Импорт com.sun.image.codec.jpeg.jpegimageencoder; Импорт com.sun.pdfview.pdffile; Импорт com.sun.pdfview.pdfpage; /** * * @author hubiao * @datetime 2014-06-07 * Этот инструмент реализует взаимное преобразование IMG и PDF. * Чтобы запустить тест, вам необходимо импортировать следующие 2 пакета JAR * ITEXT-2.0.2.jar * Pdfrenderer.jar * */@suppresswarnings («неиспользованный») открытый класс imgpdfutils {public static void main (string [] args) throws excart {// pdf extract pdf // pdfxctre ();); // pdf to jpg // pdftojpg ("e: // java // data pdf // 1.pdf", "e: // java // data pdf // 1.jpg", 1); // Объедините несколько JPG непосредственно в PDF -пакеты // extractionPdf ("f: // temp // project // data // dfdsfds // paris commune commune activist biography_img", "f: // temp // project // data // dfdsfds // paris commune commune activist biography_img.pdf"); // jpg в pdf // jpgtopdf (); // Сортировка файла // distordord (); Imgfiletool.imgmeragetopdf (new File ("f: // temp // project // data // dfdsfds // paris commune commune activist's biography_img"). Listfiles (), новый файл ("f: // temp // project // data // dfdsfds //", «Прооцененные активисты в Paris.pdf"); } private static void diStorOrder () {file [] listFiles = new File ("f: // temp // project // data // dfdsfds // parised activists в paris_img"). listfiles (); TreeMap <Integer, file> tree = new TreeMap <Integer, file> (); for (file f: listfiles) {tree.put (integer.parseint (f.getName (). rayall (". jpg $", "")), f); } for (entry <integer, file> eif: tree.EntrySet ()) {System.out.println (eif.getKey ()+"="+eif.getValue (). toString ()); }} /*** @param List Collection* @param file Path* @return True, Merge завершено* Если имя файла не является 1.JPG, 2.jpg, 3.jpg, 4.jpg. Вы должны переписать метод сортировки TreeMap самостоятельно! */public static boolean imgmeragetopdf (file [] list, файл файл) Throws Exception {// 1: естественно сортируйте файлы изображения по имени через карту treeMap <Integer, file> mif = new TreeMap <Integer, file> (); для (файл f: list) mif.put (integer.parseint (f.getName (). Replaceall (". Jpg $", "" ")), f); // 2: Получить ширину и высоту первого IMG в качестве стандарта для PDF Documents BytearRayOutputStream BAOS = New BytearRayOutputStream (2048*3); InputStream IS = New FileInputStream (MIF.GET (1)); for (int len; (len = is.read ())! =-1;) baos.write (len); baos.flush (); Image image = image.getInstance (baos.tobytearray ()); float width = image.width (); высота плавания = изображение. Хейт (); baos.close (); // 3: создание объекта документа PDF через ширину и высоту. Документ документ = новый документ (новый прямоугольник (ширина, высота)); Pdfwriter pdfwr = pdfwriter.getinstance (Document, New FileOutputStream (файл)); document.open (); // 4: Получить каждый файл изображения и преобразовать его в объект IMG. Загрузите в объект документа для (entry <integer, file> eif: mif.entryset ()) {//4.1: прочитать в память baos = new BytearrayOutputStream (2048*3); is = new FileInputStream (eif.getValue ()); for (int len; (len = is.read ())! =-1;) baos.write (len); baos.flush (); //4.2 Сгенерировать объект IMG через байтовое изображение = image.getInstance (baos.tobytearray ()); Image.getInstance (baos.tobytearray ()); Image.SetAbSolutePosition (0,0F, 0,0F); //4.3: добавить в document.add (image); document.newpage (); baos.close (); } // 5: выпустить ресурсный документ.close (); pdfwr.close (); вернуть истину; } /***** @param исходный файл исходного исходного файла* @param Целевой файл целевого файла* @param x Прочитайте страницу в исходном файле* /private static void pdftojpg (источник строки, целевая строка, int x), бросает исключение {// Создание потока файла случайного доступа и записывает (необязательно). R означает, что это просто режим доступа к нему. Randomaccessfile rea = new randomaccessfile (новый файл (источник), "r"); // Читать поток в память, а затем отобразить объект PDF FileChannel Channel = rea.getChannel (); Bytebuffer buf = channel.map (filechannel.mapmode.read_only, 0, channel.size ()); Pdffile pdffile = new pdffile (buf); Pdfpage page = pdffile.getPage (x); // Получить ширину и высоту для DOC на Zoom Zoom Zoom java.awt.rectangle rect = new Java.awt.Rectangle (0, 0, (int) page.getbbox () .getWidth (), (int) page.getbbox (). getheight ()); // Сгенерировать изображение java.awt.image img = page.getImage (rect.width, rect.height, // width & rect, // clip ull null, // null для imageobserver true, // found founde с белым true // block до тех пор, пока не будет сделан рисунок); 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 (Target); // Вывод в потоку файла jpegimageencoder encoder = jpegcodec.createjpegenceder (out); encoder.encode (Tag); // jpeg, кодирующий out.close (); } /*** @param Источник источника PDF PAILE PAILE* @Param Target Save PAGE PAIL* @param Pagenum Извлеките страницу Pagenum в PDF* @Throws Exception* /private static void pdfExtraction (String Source, String Target, int pagenum) throws Exception {// 1: Create pdf pridf object pruderer pr = neclector (// 1: create pdf prdfreader pr = nevallor (sourne wysure); System.out.println («Этот документ»+pr.getnumberofpages ()+«страница»); // 2: преобразовать страницу страницы для извлечения и создания объекта документа DOCC = новый документ (pr.getPagesize (pagenum)); // 3: конвертировать его для хранения отдельно через PDFCOPY PDFCOPY COPY = NEW PDFCOPY (DOC, NEW FileOutputStream (новый файл (Target))); doc.open (); doc.newpage (); // 4: Получите первую страницу и загрузите ее в документ. Pdfimportedpage page = copy.getimportedPage (pr, pagenum); copy.addpage (page); // 5: выпустить ресурс copy.close (); doc.close (); pr.close (); } /*** @param pdffile source pdf file* @param imgfile file file* /private static void jpgtopdf (файл pdffile, file imgfile) throws {// file в img inputstream is = new FileInputStream (pdffile); BytearRayOutputStream BAOS = новый BytearRayOutputStream (); for (int i; (i = is.read ())! =-1;) {baos.write (i); } baos.flush (); // Получить ширину и высоту изображения. Image img = image.getInstance (baos.tobytearray ()); float width = img.width (); высота плавания = img.height (); img.setabsoluteposition (0,0F, 0,0F); // Отмена смещения System.out.println ("width ="+width+"/theight"+height); // IMG в PDF документ DOC = новый документ (новый прямоугольник (ширина, высота)); Pdfwriter pw = pdfwriter.getinstance (doc, new FileOutputStream (imgfile)); doc.open (); doc.add (img); // выпустить систему ресурсов.out.println (doc.newpage ()); pw.flush (); baos.close (); doc.close (); pw.close (); }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.