Метод Джейкоба может решить эту проблему, но, поскольку я делал отчеты раньше, я хочу попробовать разные методы.
Джейкоб - это мост, соединяющий Java и Microsoft, и все решения проанализированы Microsoft. POI не так аутентичен, как Microsoft Parsed, поэтому, если требования высоки, используйте Jacob.
Общая идея очень проста. Сначала преобразуйте PPT в картинку, а затем напишите изображение в PDF. Конвертируйте изображения с использованием POI и используйте ITEX для работы PDF. Однако ошибка этого метода заключается в том, что эффект конвертации POI не очень хорош.
Импортированные пакеты: ITEXTPDF-5.1.3.jar, POI-3.8-20120326.jar, Poi-Scratchpad-3,8-20120326.jar.
Затем был опубликован код:
Код не выполняет объединение параметров, напишите два метода:
пакет com.zzk.cn; Импорт java.awt.dimension; Импорт java.io.file; импортировать java.io.fileinputstream; Импорт java.io.filenotFoundException; Импорт java.io.fileOutputStream; импортировать java.io.ioexception; импортировать java.awt.color; Импорт java.awt.dimension; импортировать java.awt.graphics2d; импортировать java.awt.geom.rectangle2d; Импорт java.awt.image.bufferedImage; Импорт org.apache.poi.hslf.model.textrun; Импорт org.apache.poi.hslf.record.slide; Import org.apache.poi.hslf.usermodel.richtextrun; Импорт org.apache.poi.hslf.usermodel.slideshow; открытый класс ppttoImage {public static void main (string [] args) {// Читать в файле файла ppt = new File ("d:/book jvm Сводка 7-9.ppt"); DoppttoImage (файл); } public static boolean doppttoImage (файл файла) {boolean isppt = checkfile (file); if (! isppt) {System.out.println («Указанный вами файл не является документом PPT!»); вернуть ложь; } try {fileInputStream is = new FileInputStream (file); SlideShow ppt = new SlideShow (is); is.close (); Размер pgsize = ppt.getPagesize (); org.apache.poi.hslf.model.slide [] slide = ppt.getSlides (); for (int i = 0; i <slide.length; i ++) {System.out.print ("th" + i + "Page."); if (slide [i] .getnotessheet ()! = null && slide [i] .getNotessHeet (). getTexTruns ()! = null) {// Получить первую систему ноты. } Textrun [] truns = slide [i] .getTexTruns (); for (int k = 0; k <truns.length; k ++) {richtextrun [] rtruns = truns [k] .getrichtextruns (); for (int l = 0; l <rtruns.length; l ++) {rtruns [l] .setfontindex (1); rtruns [l] .setfontname ("安安"); // Получить систему текста. System.out.println (rtruns [l] .getText ()); }} BufferedImage img = new BufferedImage (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)); слайд [i] .draw (графика); // Установите путь хранения изображения и формат изображения (JPEG, PNG, BMP и т. Д.), Обратите внимание на сгенерированный путь файла FileOutputStream OUT = new FileOutputStream ("d:/testimage/pict_" + (i + 1) + ".jpeg"); javax.imageio.imageio.write (img, "jpeg", out); out.close (); } System.out.println ("OK"); вернуть истину; } catch (filenotFoundException e) {System.out.println (e); } catch (ioException e) {e.printstackTrace (); } вернуть false; } // Функция Проверьте, является ли файл PPT Public Static Boolean Checkfile (файл файла) {boolean isppt = false; String fileName = file.getName (); String SuffixName = null; if (filename! = null && filename.indexof (".")! = -1) {суффикснам = файл filename.substring (filename.indexof (".")); if (suffixname.equals (". ppt")) {isppt = true; } вернуть isppt; } else {return isppt; }}}Второй код:
пакет com.zzk.cn; Импорт java.io.fileOutputStream; импортировать java.io.ioexception; импорт com.ithtpdf.text.document; Импорт com.ithtpdf.text.documentException; импорт com.ithtpdf.text.image; Import com.ithtpdf.text.pdf.pdfwriter; открытый класс ImageTopdf {public static void main (string [] args) {System.out.println («Глава 6 Пример 3: Использование относительного пути для HTML»); // Шаг 1: Создание документа документа документа документа = новый документ (); try {// step 2: // Мы создаем автора, который слушает документ // и направляет PDF-stream в файл pdfwriter.getInstance (документ, новый файл fileOutputStream ("d:/test picture.pdf")); // htmlwriter writer = htmlwriter.getInstance (документ, новый файл fileOutputStream ("cap0603.html")); // writer.setimagePath ("../../ Images/kerstmis/"); // Шаг 3: Мы открываем документ Document.open (); for (int i = 1; i <= 7; i ++) {// Шаг 4: Мы добавляем изображение содержимого 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 ()); } // Шаг 5: Мы закрываем документ Document.Close (); }} Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.