bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

java實現PPT轉化為PDF-創新互聯

JACOB的方法,足可以解決這個問題,但是我既然以前曾經做過報表,就想嘗試不同的方法。

10年積累的成都做網站、網站建設、外貿營銷網站建設經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站制作后付款的網站建設流程,更有紫云免費網站建設讓你可以放心的選擇與我們合作。

JACOB是一座連接JAVA和微軟的橋,所有的解析由微軟解析。POI是沒有微軟解析的那么原汁原味的,所以如果要求高的話,還是使用JACOB。

大致思路很簡單,將PPT先轉化為圖片,然后將圖片寫入PDF。轉化圖片是用POI,操作PDF使用ITEX。不過這個方法的BUG就是轉化圖片的POI效果不是很好。

導入的包分別是:itextpdf-5.1.3.jar,poi-3.8-20120326.jar,poi-scratchpad-3.8-20120326.jar。

然后貼代碼了:

代碼沒有進行參數統一,寫兩個方法:

package com.zzk.cn; 
 
import java.awt.Dimension; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.awt.Color; 
import java.awt.Dimension; 
import java.awt.Graphics2D; 
import java.awt.geom.Rectangle2D; 
import java.awt.image.BufferedImage; 
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) { 
    // 讀入PPT文件 
    File file = new File("D:/書本JVM總結7-9.ppt"); 
    doPPTtoImage(file); 
  } 
 
  public static boolean doPPTtoImage(File file) { 
    boolean isppt = checkFile(file); 
    if (!isppt) { 
      System.out.println("你指定的文件不是ppt文檔!"); 
      return false; 
    } 
    try { 
      FileInputStream is = new FileInputStream(file); 
      SlideShow ppt = new SlideShow(is); 
      is.close(); 
      Dimension pgsize = ppt.getPageSize(); 
      org.apache.poi.hslf.model.Slide[] slide = ppt.getSlides(); 
      for (int i = 0; i < slide.length; i++) { 
        System.out.print("第" + i + "頁。"); 
        if (slide[i].getNotesSheet() != null 
            && slide[i].getNotesSheet().getTextRuns() != null) { 
          // 獲取第一個備注 
          System.out.println("備注:" 
              + slide[i].getNotesSheet().getTextRuns()[0] 
                  .getText()); 
        } 
        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)); 
        slide[i].draw(graphics); 
        // 這里設置圖片的存放路徑和圖片的格式(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"); 
      return true; 
    } catch (FileNotFoundException e) { 
      System.out.println(e); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    } 
    return false; 
  } 
 
  // function 檢查文件是否為PPT 
  public 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; 
      } 
      return isppt; 
    } else { 
      return isppt; 
    } 
  } 
} 

分享標題:java實現PPT轉化為PDF-創新互聯
鏈接地址:http://vcdvsql.cn/article28/dgddcp.html

成都網站建設公司_創新互聯,為您提供做網站微信小程序靜態網站、響應式網站、App開發、營銷型網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設公司