Artikel ini membagikan kode spesifik untuk Java untuk mengonversi IMG dan PDF satu sama lain untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
Jika Anda tidak pandai mengekspresikan, cukup kirimkan kode secara langsung. Tolong abaikan saya.
impor java.awt.image.bufferedimage; impor java.io.bytearrayoutputStream; impor java.io.file; impor java.io.fileInputStream; impor java.io.fileoutputStream; impor java.io.inputstream; impor java.io.randomaccessfile; impor java.nio.bytebuffer; impor java.nio.channels.filechannel; impor java.util.map; impor java.util.map.entry; impor java.util.treemap; impor com.utils.imgfiletool; impor com.lowagie.text.document; impor com.lowagie.text.image; impor com.lowagie.text.rectangle; impor com.lowagie.text.pdf.pdfcopy; impor com.lowagie.text.pdf.pdfimportedpage; impor com.lowagie.text.pdf.pdfreader; impor com.lowagie.text.pdf.pdfwriter; impor com.sun.image.codec.jpeg.jpegcodec; impor com.sun.image.codec.jpeg.jpegimageencoder; impor com.sun.pdfview.pdffile; impor com.sun.pdfview.pdfpage; /** * * @author hubiao * @datetime 2014-06-07 * Alat ini mengimplementasikan konversi timbal balik IMG dan PDF. * To run the test, you need to import the following 2 jar packages* itext-2.0.2.jar * PDFRenderer.jar * */ @SuppressWarnings("unused") public class ImgPdfUtils { public static void main(String[] args) throws Exception { //PDF package extract pdf //pdfExtraction(); // pdf ke jpg // pdftoJpg ("e: // java // data pdf // 1.pdf", "e: // java // data pdf // 1.jpg", 1); // Gabungkan beberapa JPG secara langsung ke dalam paket PDF // ExtractionPdf ("f: // temp // proyek // data // dfdsfds // paris commune aktivis biografi_img", "f: // temp // proyek // data // dfdsfds // aktivis paris commune biografi_img.p.p.pdsfds // paris commune's biography_img.p.p.p.pdsfds/paris Commune's aktivis BIOGRAGRAPOGRAFIS_IROGRAGRAFI.P. // jpg ke pdf // jpgtopdf (); // File Sortting // listorder (); Imgfiletool.imgmeragetopdf (file baru ("f: // temp // proyek // data // dfdsfds // paris commune aktivis biografi_img"). Listfiles (), file baru ("f: // temp // proyek // data // dfdsfds //", "parised actilict di pared di pared di pared activuct in paris. } private static void listorder () {file [] listFiles = file baru ("f: // temp // proyek // data // dfdsfds // aktivis parised di paris_img"). listFiles (); Treemap <integer, file> pohon = treemap baru <integer, file> (); untuk (file f: listFiles) {tree.put (integer.parseint (f.getName (). replaceAll (". jpg $", "")), f); } untuk (entri <integer, file> eif: tree.entryset ()) {system.out.println (eif.getKey ()+"="+eif.getValue (). ToString ()); }} /*** @param Daftar Koleksi Gambar* @param File Simpan Path* @return true, gabungan selesai* Jika nama file tidak 1.jpg, 2.jpg, 3.jpg, 4.jpg. Anda perlu menulis ulang metode penyortiran TreeMap sendiri! */public static boolean imgmerageToPdf (file [] daftar, file) melempar pengecualian {// 1: Secara alami mengurutkan file gambar berdasarkan nama melalui peta treemap <integer, file> mif = treemap baru <integer, file> (); untuk (file f: list) mif.put (integer.parseint (f.getName (). ReplaceAll (". jpg $", "")), f); // 2: Dapatkan lebar dan tinggi IMG pertama sebagai standar untuk dokumen PDF bytearrayoutputstream baos = bytearrayoutputStream baru (2048*3); InputStream adalah = FileInputStream baru (mif.get (1)); untuk (int len; (len = is.read ())! =-1;) Baos.write (len); baos.flush (); Gambar gambar = image.getInstance (Baos.tobyteArray ()); float width = image.width (); tinggi float = image.height (); baos.close (); // 3: Instantiate objek dokumen PDF melalui lebar dan tinggi. Dokumen dokumen = dokumen baru (persegi panjang baru (lebar, tinggi)); Pdfwriter pdfwr = pdfwriter.getInstance (dokumen, fileOutputStream baru (file)); document.open (); // 4: Dapatkan setiap file gambar dan ubah menjadi objek IMG. Muat ke objek dokumen untuk (entri <integer, file> eif: mif.entryset ()) {//4.1: baca ke dalam memori baos = bytearrayoutputStream (2048*3) baru; is = new fileInputStream (eif.getValue ()); untuk (int len; (len = is.read ())! =-1;) Baos.write (len); baos.flush (); //4.2 menghasilkan objek IMG melalui byte byte image = image.getInstance (Baos.tobyteArray ()); Image.getInstance (Baos.TobyTeArray ()); Image.setabsoluteposition (0,0f, 0,0f); //4.3: tambahkan ke document.add (gambar); document.newpage (); baos.close (); } // 5: Lepaskan dokumen sumber daya.close (); pdfwr.close (); Kembali Benar; } /**** @param file sumber sumber* @param file target target* @param x Baca halaman dalam file sumber* /private static void pdftoJpg (sumber string, target string, int x) melempar pengecualian {// buat aliran file akses acak dari dan menulis (opsional) ke sana. R berarti bahwa itu hanya mode akses untuk itu. RandomAccessFile rea = RandomAccessFile baru (file baru (sumber), "r"); // Baca aliran ke dalam memori dan kemudian memetakan saluran PDF FileChannel Channel = ReA.GetChannel (); ByteBuffer buf = channel.map (filechannel.mapmode.read_only, 0, channel.size ()); PDFFILE PDFFILE = PDFFILE BARU (BUF); Halaman pdfpage = pdffile.getPage (x); // Dapatkan lebar dan tinggi untuk dokumen di zoom default java.awt.rectangle rect = new java.awt.rectangle (0, 0, (int) page.getBbox () .getWidth (), (int) page.getBbox (). getHeight ()); // Hasilkan gambar java.awt.image img = page.getImage (rect.width, rect.height, // width & rect, // clip rect null, // nol untuk imageObserver true, // isi latar belakang dengan putih true // blok sampai gambar dilakukan); BufferedImage Tag = BufferedImage baru (rect.width, rect.height, bufferedimage.type_int_rgb); tag.getGraphics (). DrawImage (img, 0, 0, rect.width, rect.height, null); FileOutputStream out = FileOutputStream baru (target); // output ke arsip stream jpegimageEncoder encoder = jpegcodec.createJpegencoder (out); encoder.encode (tag); // jpeg encoding out.close (); } /*** @param Sumber sumber jalur file pdf* @param target Simpan jalur file pdf* @param pagenum Ekstrak halaman pagenum dalam pdf* @throws Exception* /private static void pdfextraction (sumber string, target string, pagenum int pagenum) mengecualikan new -new pdfer (create pdf Pdfer Pdf = System.out.println ("Dokumen ini"+pr.getNumberofPages ()+"halaman"); // 2: Konversi halaman halaman untuk mengekstrak dan membuat dokumen dokumen dokumen doc = dokumen baru (pr.getPagesize (pagenum)); // 3: Konversinya untuk menyimpannya secara terpisah melalui pdfcopy pdfcopy copy = new Pdfcopy (doc, fileoutputStream baru (file baru (target))); doc.open (); doc.newpage (); // 4: Dapatkan halaman pertama dan muat ke dalam dokumen. Halaman PDFImportedPage = copy.getImportedPage (pr, pagenum); copy.addpage (halaman); // 5: Lepaskan sumber daya copy.close (); doc.close (); pr.close (); } /*** @param pdffile sumber file pdf* @param file gambar imgfile* /private static void jpgtopdf (file pdffile, file imgfile) melempar pengecualian {// file ke iMg inputStream adalah = FileInputStream baru (pdffile); BytearrayoutputStream baos = bytearrayoutputStream baru (); untuk (int i; (i = is.read ())! =-1;) {Baos.write (i); } Baos.flush (); // Dapatkan lebar dan tinggi gambar. Gambar img = image.getInstance (Baos.tobyteArray ()); float width = img.width (); tinggi float = img.height (); img.setabsoluteposition (0,0f, 0,0f); // Batalkan offset system.out.println ("width ="+width+"/theight"+height); // img ke dokumen PDF doc = dokumen baru (persegi panjang baru (lebar, tinggi)); Pdfwriter pw = pdfwriter.getInstance (doc, fileoutputStream baru (imgfile)); doc.open (); doc.add (img); // Lepaskan sumber daya System.out.println (doc.newpage ()); pw.flush (); baos.close (); doc.close (); pw.close (); }}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.