Metode Jacob dapat menyelesaikan masalah ini, tetapi karena saya telah melakukan laporan sebelumnya, saya ingin mencoba berbagai metode.
Jacob adalah jembatan yang menghubungkan Java dan Microsoft, dan semua resolusi diuraikan oleh Microsoft. POI tidak otentik seperti Microsoft diuraikan, jadi jika persyaratannya tinggi, gunakan Jacob.
Gagasan umum sangat sederhana. Konversi PPT pertama menjadi gambar, dan kemudian tulis gambar ke PDF. Konversi gambar menggunakan POI, dan gunakan ITEX untuk mengoperasikan PDF. Namun, bug dari metode ini adalah bahwa efek POI dari konversi gambar tidak terlalu bagus.
Paket yang diimpor adalah: ITEXTPDF-5.1.3.Jar, POI-3.8-20120326.Jar, POI-Scratchpad-3.8-20120326.jar.
Kemudian kode telah diposting:
Kode tidak melakukan penyatuan parameter, tulis dua metode:
paket com.zzk.cn; impor java.awt.dimension; impor java.io.file; impor java.io.fileInputStream; impor java.io.filenotfoundException; impor java.io.fileoutputStream; impor java.io.ioException; impor java.awt.color; impor java.awt.dimension; impor java.awt.graphics2d; impor java.awt.geom.rectangle2d; impor java.awt.image.bufferedimage; impor org.apache.poi.hslf.model.textrun; impor org.apache.poi.hslf.record.slide; impor org.apache.poi.hslf.usermodel.richtextrun; impor org.apache.poi.hslf.usermodel.slideshow; Public Class PPTToImage {public static void main (string [] args) {// baca di file file ppt file = file baru ("d:/buku ringkasan jvm 7-9.ppt"); dopptoImage (file); } public static boolean dopptoImage (file file) {boolean isppt = checkFile (file); if (! isppt) {System.out.println ("File yang Anda tentukan bukan dokumen PPT!"); mengembalikan false; } coba {fileInputStream adalah = FileInputStream baru (file); Slideshow ppt = tayangan slide baru (IS); is.close (); Dimensi pgsize = ppt.getPagesize (); org.apache.poi.hslf.model.slide [] slide = ppt.getslides (); untuk (int i = 0; i <slide.length; i ++) {System.out.print ("th" + i + "page."); if (slide [i] .getNotessheet ()! = null && slide [i] .getNotessheet (). getTextruns ()! = null) {// Dapatkan catatan pertama System.out.println ("Catatan:" + slide [i] .getNotesSheet (). } Textrun [] truns = slide [i] .gettextruns (); untuk (int k = 0; k <truns.length; k ++) {richtextrun [] rtruns = truns [k] .getRichTextruns (); untuk (int l = 0; l <rtruns.length; l ++) {rtruns [l] .setFontIndex (1); rtruns [l] .setFontName ("安安"); // Dapatkan daftar teks System.out.println (rtruns [l] .getText ()); }} BufferedImage img = BufferedImage baru (pgsize.width, pgsize.height, bufferedImage.type_int_rgb); Graphics2d Graphics = img.creategraphics (); Graphics.setPaint (Color.White); graphics.fill (new rectangle2d.float (0, 0, pgsize.width, pgsize.height)); slide [i] .draw (grafik); // Atur jalur penyimpanan gambar dan format gambar (jpeg, png, bmp, dll.), Perhatikan file jalur file yang dihasilkan out = fileoutputStream baru ("d:/testimage/pict_" + (i + 1) + ".jpeg"); javax.imageio.imageio.write (img, "jpeg", out); out.close (); } System.out.println ("OK"); Kembali Benar; } catch (FileNotFoundException e) {System.out.println (e); } catch (ioException e) {e.printstacktrace (); } return false; } // Fungsi Periksa apakah file adalah ppt static boolean checkfile (file file) {boolean isppt = false; String filename = file.getName (); String suffixname = null; if (fileName! = null && filename.indexof (".")! = -1) {suffixname = filename.substring (filename.indexof (".")); if (suffixname.equals (". ppt")) {isppt = true; } kembalikan isppt; } else {return isppt; }}}Kode kedua:
paket com.zzk.cn; impor java.io.fileoutputStream; impor java.io.ioException; impor com.ithtpdf.text.document; impor com.ithtpdf.text.documentException; impor com.ithtpdf.text.image; impor com.ithtpdf.text.pdf.pdfwriter; kelas publik imagetopdf {public static void main (string [] args) {System.out.println ("Bab 6 Contoh 3: Menggunakan jalur relatif untuk html"); // Langkah 1: Pembuatan dokumen dokumen-objek-dokumen = dokumen baru (); Coba {// Langkah 2: // Kami membuat penulis yang mendengarkan dokumen // dan mengarahkan stream pdf ke file pdfwriter.getInstance (dokumen, fileOutputStream baru ("D:/test picture.pdf")); // htmlwriter writer = htmlwriter.getInstance (dokumen, fileOutputStream baru ("chap0603.html")); // writer.setimagePath ("../../ Images/Kerstmis/"); // Langkah 3: Kami membuka dokumen dokumen.open (); untuk (int i = 1; i <= 7; i ++) {// Langkah 4: Kami menambahkan gambar konten jpg = image.getInstance ("d:/testimage/pict _"+i+". jpeg"); jpg.scalepercent (50); document.add (jpg); }} catch (DocumentException de) {System.err.println (de.getMessage ()); } catch (ioException IoE) {system.err.println (ioe.getMessage ()); } // Langkah 5: Kami menutup dokumen dokumen.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.