±âŸ(framework)
2018.06.06 / 10:41
ppt to image/pdf º¯È¯
ÀλçÀ̵åÀÚ¹Ù
Ãßõ ¼ö 201
ppt ÆÄÀÏÀ» pdf·Î º¯È¯Çϱâ À§Çؼ´Â-
image·Î º¯È¯ ÈÄ, image¸¦ pdf·Î ´Ù½Ã º¯È¯½ÃÄÑ¾ß ÇÑ´Ù-
1.¸ÕÀú poi-scratchpad¿Í itextpdf°¡ ÇÊ¿äÇÏ´Ù-
´ÙÀ½À» pom.xml¿¡ Ãß°¡ÇØ ÁØ´Ù-
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!-- ppt --> <dependency> <groupid>org.apache.poi</groupid> <artifactid>poi-scratchpad</artifactid> <version>3.10-FINAL</version> </dependency> <!-- iText pdf --> <dependency> <groupid>com.itextpdf</groupid> <artifactid>itextpdf</artifactid> <version>5.5.2</version> </dependency> |
2. PPTtoPDFConverter.java
ÀúÀåµÇ¾î ÀÖ´Â ppt ÆÄÀÏÀÇ °æ·Î¸¦ ÀÔ·ÂÇϸé-
pdf ÆÄÀÏ·Î º¯È¯ ÈÄ, pdfÆÄÀÏÀÇ °æ·Î¸¦ Ãâ·ÂÇÑ´Ù-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.UUID; import javax.imageio.ImageIO; import org.apache.poi.hslf.model.Slide; import org.apache.poi.hslf.usermodel.SlideShow; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Image; import com.itextpdf.text.pdf.PdfWriter; public class PPTtoPDFConverter { String realFolder = FileManager.realFolder; private String pdfFileName; public PPTtoPDFConverter(){ } public PPTtoPDFConverter(String fileName){ try { setPdfFileName(this.convert(fileName)); } catch (IOException | DocumentException e) { e.printStackTrace(); } } private void setPdfFileName(String pdfFileName) { this.pdfFileName = pdfFileName; } public String getPdfFileName() { return pdfFileName; } private String convert(String fileName) throws IOException, DocumentException{ //1.Read PPT file FileInputStream fis = new FileInputStream(realFolder + fileName); SlideShow ppt = new SlideShow(fis); fis.close(); //2.Draw Image Dimension pageSize = ppt.getPageSize(); Slide[] slide = ppt.getSlides(); for(int i=0; i<slide.length; i++){ BufferedImage image = new BufferedImage(pageSize.width, pageSize.height, BufferedImage.TYPE_INT_RGB); Graphics2D graphics = image.createGraphics(); graphics.setPaint(Color.white); //À̹ÌÁö ¿µ¿ªÀ» Ŭ¸®¾î graphics.fill(new Rectangle2D.Float(0, 0, pageSize.width, pageSize.height)); slide[i].draw(graphics); File dir = new File(realFolder + "tempImg/"); if (!dir.isDirectory()) { dir.mkdirs(); } FileOutputStream fos = new FileOutputStream(dir + "temp" + (i+1) + ".png"); ImageIO.write(image, "png", fos); } //3.Image To PDF Document document = new Document(); File dir = new File(realFolder + "portfolioPDF/"); if (!dir.isDirectory()) { dir.mkdirs(); } String pdfFileName = "portfolioPDF/" + UUID.randomUUID().toString(); PdfWriter.getInstance(document, new FileOutputStream(realFolder + pdfFileName)); document.open(); for(int i=1; i<=slide.length; i++){ String imagePath = realFolder + "tempImg/temp" + i + ".png"; Image image = Image.getInstance(imagePath); document.add(image); //4.Delete Image File file = new File(imagePath); file.delete(); } document.close(); return pdfFileName; } } |
Ãâó: http://casek.tistory.com/entry/ppt-to-imagepdf-º¯È¯ [Case K:]