Jacobs Methode kann dieses Problem lösen, aber da ich bereits Berichte erstellt habe, möchte ich verschiedene Methoden ausprobieren.
Jacob ist eine Brücke, die Java und Microsoft verbindet, und alle Auflösungen werden von Microsoft analysiert. POI ist nicht so authentisch wie Microsoft analysiert. Wenn die Anforderungen hoch sind, verwenden Sie Jacob.
Die allgemeine Idee ist sehr einfach. Konvertieren Sie zuerst PPT in ein Bild und schreiben Sie dann das Bild an PDF. Konvertieren Sie Bilder mit POI und verwenden Sie ITEX, um PDF zu bedienen. Der Fehler dieser Methode ist jedoch, dass der POI -Effekt des Konvertierens von Bildern nicht sehr gut ist.
Die importierten Pakete sind: ITEXTPDF-5.1.3.jar, poi-3.8-20120326.jar, poi-scratchpad-3.8-20120326.jar.
Dann wurde der Code veröffentlicht:
Der Code führt keine Parameter -Vereinigung durch, schreibt zwei Methoden:
Paket com.zzk.cn; Import Java.awt.Dimension; Import Java.io.file; import Java.io.FileInputStream; importieren java.io.filenotfoundException; importieren java.io.fileoutputStream; importieren java.io.ioException; Import Java.awt.Color; Import Java.awt.Dimension; Import Java.awt.Graphics2d; Import Java.awt.Geom.Rectangle2d; Import Java.awt.image.BuffenedImage; import org.apache.poi.hslf.model.textrun; import org.apache.poi.hslf.record.slide; import org.apache.poi.hslf.usermodel.richtextrun; import org.apache.poi.hslf.usermodel.slideshow; public class pptToImage {public static void main (String [] args) {// Lesen Sie in der PPT-Dateidatei = neue Datei ("d:/book JVM-Zusammenfassung 7-9.ppt"); DopptToImage (Datei); } public static boolean dopptoimage (Dateidatei) {boolean isppt = checkfile (Datei); if (! isppt) {System.out.println ("Die von Ihnen angegebene Datei ist kein PPT -Dokument!"); false zurückgeben; } try {FileInputStream ist = new FileInputStream (Datei); Diashow ppt = neue Diashow (IS); IS.CLOSE (); Dimension pgSize = ppt.getPageSize (); org.apache.poi.hslf.model.slide [] Slide = ppt.getSlides (); für (int i = 0; i <slide.length; i ++) {System.out.print ("th" + i + "Seite"); if (Slide [i] .Getnotessheet ()! } Textrun [] Truns = Slide [i] .GIETTEXTRUNS (); für (int k = 0; k <truns.length; k ++) {Richtextrun [] rtruns = truns [k] .getRichtextruns (); für (int l = 0; l <rtruns.length; l ++) {rtruns [l] .setFontIndex (1); rtruns [l] .setFontName ("安安"); // das Textlisten system.out.println (rtruns [l] .GeteText ()) erhalten; }} BufferedImage img = new bufferedImage (pgSize.width, pgSize.Height, bufferedImage.type_int_rgb); Graphics2d Graphics = img.CreateGraphics (); Graphics.SetPaint (color.white); Graphics.Fill (neuer Rechteck2d.float (0, 0, pgSize.width, pgSize.Height)); Folie [i] .Draw (Grafik); // Setzen Sie den Speicherpfad des Bildes und das Format des Bildes (JPEG, PNG, BMP usw.). Achten Sie auf die generierten Datei -Path -DateioutputStream out = new FileOutputStream ("D:/Testimage/pict_" + (i + 1) + ".jpeg"); javax.imageo.imageo.write (IMG, "JPEG", out); out.close (); } System.out.println ("OK"); zurückkehren; } catch (FilenotFoundException e) {System.out.println (e); } catch (ioException e) {e.printstacktrace (); } return false; } // Funktion prüfen, ob die Datei PPT public static boolean checkfile (Dateidatei) ist {boolean isppt = false; String Dateiname = Datei.getName (); String SuffixName = null; if (Dateiname! = null && Dateiname.indexof (".")! if (suffixname.equals (". ppt")) {isppt = true; } return isppt; } else {return isppt; }}}Zweiter Code:
Paket com.zzk.cn; importieren java.io.fileoutputStream; importieren java.io.ioException; importieren com.ithtpdf.text.document; importieren com.ithtpdf.text.documentException; import com.ithtpdf.text.image; com.ithtpdf.text.pdf.pdfwriter importieren; public class imagetopdf {public static void main (String [] args) {System.out.println ("Kapitel 6 Beispiel 3: Verwenden eines relativen Pfades für HTML"); // Schritt 1: Erstellung eines Dokument-Objekt-Dokuments = neues Dokument (); Versuchen Sie {// Schritt 2: // Wir erstellen einen Schriftsteller, der dem Dokument // hört und einen PDF-Stream auf eine Datei pdfWriter.getInstance (Dokument, neuer FileOutputStream ("D:/Test-Bild.pdf")); // htmlwriter writer = htmlwriter.getInstance (Dokument, neuer FileOutputStream ("Chap0603.html"); // writer.setImagePath ("../../ bilder/kerstmis/"); // Schritt 3: Wir öffnen das Dokument dokument.open (); für (int i = 1; i <= 7; i ++) {// Schritt 4: Wir fügen Content image hinzu 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 ()); } // Schritt 5: Wir schließen das Dokument dokument.CLOSE (); }} Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.