国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java如何將pdf轉換成image

java如何將pdf轉換成image

2021-04-25 12:04yiluoak_47 Java教程

這篇文章主要為大家詳細介紹了java如何將pdf轉換成image,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了javapdf轉換image的具體代碼,供大家參考,具體內容如下

首先使用了使用了apache的pdfbox組件1.8.4版本

 

?
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
package pdf;
 
import java.awt.image.bufferedimage;
import java.io.file;
import java.io.ioexception;
import java.util.date;
import java.util.list;
 
import javax.imageio.imageio;
 
import org.apache.pdfbox.pdmodel.pddocument;
import org.apache.pdfbox.pdmodel.pdpage;
 
public class pdfbox {
   
  @suppresswarnings("rawtypes")
  public static void main(string[] args) throws ioexception {
    string p=system.getproperty("user.dir") + "/"+"zk.pdf";  
     
    pddocument doc = pddocument.load(p);
    int pagecount = doc.getnumberofpages();
    system.out.println(pagecount);
    date start = new date();
    try {
      list pages = doc.getdocumentcatalog().getallpages();
      for(int i=0;i<pages.size();i++){
        pdpage page = (pdpage) pages.get(i);
        @suppresswarnings("unused")
        int width = new float(page.gettrimbox().getwidth()).intvalue();
        @suppresswarnings("unused")
        int height = new float(page.gettrimbox().getheight()).intvalue();
        bufferedimage image = page.converttoimage();
        imageio.write(image, "jpg", new file("img" + file.separator + (i + 1) + ".jpg"));
        system.out.println("image in the page -->"+(i+1));
      }
    } catch (exception e) {
      e.printstacktrace();
    }finally{
      if(doc != null){
        doc.close();
      }
    }
    date end = new date();
    system.out.println(end.gettime()-start.gettime());
    system.out.println("over");
  }
   
}

但是其問題在于問題:

當pdf文檔為180m大小時直接報解析異常

當pdf頁數為500多頁時處理非常慢 

其后嘗試使用了pdf-renderer 1.0.5 版本

?
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
package pdf;
 
import java.awt.image;
import java.awt.rectangle;
import java.awt.image.bufferedimage;
import java.io.file;
import java.io.fileoutputstream;
import java.io.ioexception;
import java.io.randomaccessfile;
import java.nio.mappedbytebuffer;
import java.nio.channels.filechannel;
 
import com.sun.image.codec.jpeg.jpegcodec;
import com.sun.image.codec.jpeg.jpegencodeparam;
import com.sun.image.codec.jpeg.jpegimageencoder;
import com.sun.pdfview.pdffile;
import com.sun.pdfview.pdfpage;
 
public class pdfrenderer {
   
  public static void main(string[] args) throws ioexception{
    string pdfrealepath=system.getproperty("user.dir") + "/"+"zk.pdf";
    file file = new file(pdfrealepath);
    randomaccessfile raf = new randomaccessfile(file, "r");
    filechannel channel = raf.getchannel();
    mappedbytebuffer buf = channel.map(filechannel.mapmode.read_only,
        0, channel.size());
    pdffile pdffile = new pdffile(buf);
     
    for (int i = 1; i <= pdffile.getnumpages(); i++) {
      pdfpage page = pdffile.getpage(i);
      rectangle rect = new rectangle(0, 0, ((int) page.getbbox()
          .getwidth()), ((int) page.getbbox().getheight()));
      image img = page.getimage(rect.width, rect.height, rect, null,true,true);
      bufferedimage tag = new bufferedimage(rect.width, rect.height,
          bufferedimage.type_int_rgb);
      tag.getgraphics().drawimage(img, 0, 0, rect.width, rect.height,null);
       
      fileoutputstream out = new fileoutputstream("img" + file.separator + (i + 1) + ".jpg"); // 輸出到文件流
      jpegimageencoder encoder = jpegcodec.createjpegencoder(out);
      jpegencodeparam param2 = encoder.getdefaultjpegencodeparam(tag);
      param2.setquality(1f, false);// 1f是提高生成的圖片質量
      encoder.setjpegencodeparam(param2);
      encoder.encode(tag); // jpeg編碼
      out.close();
      system.out.println("image in the page -->"+(i+1));
    }
  }
}

但是其問題在于問題: 當pdf的版本不為1.4時,直接報錯:expected 'xref' at start of table

pdfbox與pdfrenderer相比較來說,轉換的效率要低得多。200頁左右的pdf花費的時間是后者的6倍左右。同時,對于中文字體的支持存在些問題。

但是對于卻不存在pdf版本不同無法轉換的問題。

pdfrenderer 不能轉換1.4以上版本,查找了解決辦法但是沒有找到。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/yiluoak_47/article/details/25150419

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 91高清在线观看 | 中文字幕亚洲国产 | 91免费在线 | 国产精品久久久99 | 国产精品1| 亚洲精品区 | 国产精品去看片 | 中文在线一区 | 亚洲视频免费 | 在线成人www免费观看视频 | 狠狠操综合网 | av片在线观看 | 亚洲综合中文网 | 久久久久国产精品 | 亚洲精品一级 | 日韩成人免费视频 | 国产一区二区精品久久 | 欧美一区二区免费 | 亚洲精品三级 | 中国女人黄色大片 | 国产美女在线播放 | 最新国产在线视频 | 日韩精品毛片免费看 | 不卡一二三区 | 国产激情午夜 | 正在播放国产精品 | 国产精品一区二区不卡 | 中文字幕最新在线 | 亚洲精品久久久久久动漫 | 依依成人综合网 | 视频一区二区三区在线播放 | 日韩在线观看中文字幕 | 日韩欧美国产一区二区三区 | 国产成人精品一区 | 久久久人成影片一区二区三区 | 国产精品观看 | 国产精品美女在线观看 | 久草成人| 久久伊人一区 | 成人三级视频 | 亚洲二区在线 |