java-pdf轉word

一: java Pdf 文字 轉 Word

廢話不說,直接上圖html

這裏寫圖片描述

這裏寫圖片描述

 

很簡單的用法:
一、new個PDFBox對象
二、調用pdfToDoc()方法,再傳一個參數(文件路徑)java

最新jar下載地址:連接:https://pan.baidu.com/s/1snqjpSx 密碼:jujg  或者加QQ羣: 464429490(在羣文件中)canvas

二:Java  Pdf 圖片表格 轉 word

文章來源: 《 java-pdf轉圖片app

不少人反應pdf轉doc 圖片丟失,表格丟失,樣式丟失,編碼問題等等。
沒錯這段代碼就是隻能把文字轉爲doc文件的ide

這裏寫圖片描述

這裏寫圖片描述

由於:stripper.writeText(doc,writer);
doc指doc文件
writer指 FileOutputStream fos=new FileOutputStream(「pdf文件地址」);
Writer writer=new OutputStreamWriter(fos,」UTF-8」);學習

因此咱們想出了用js生成圖片,或者pdf先轉成圖片測試

js全屏截圖:

  1 function takeScreenshot() {
  2     html2canvas(document.body, {
  3         onrendered: function(canvas) {
  4             document.body.appendChild(canvas);
  5         },
  6     });
  7 }

js生成pdf:

  1 html2canvas(document.body, {
  2   onrendered: function(canvas) {
  3     var url = canvas.toDataURL();
  4     //document.body.appendChild(canvas);
  5     var doc = new jsPDF();
  6    doc.setFontSize(40);
  7    //doc.text(35, 25, "yanhui"); 
  8 
  9    var imgAsDataURL = url;
 10    doc.addImage(imgAsDataURL, 'JPEG', 15, 40, 420, 180);
 11    doc.save('豔輝網.pdf');
 12   },
 13   width: 600,
 14   height: 600
 15 });

 

js預覽pdf

  1 window.onload = function () {
  2          var success = new PDFObject({
  3              url: "pdf/test.pdf",
  4              pdfOpenParams: {
  5                  scrollbars: '0',
  6                  toolbar: '0',
  7                  statusbar: '0'
  8                  }
  9           }).embed("pdf");
 10      };

 

js那麼強大,咱們的java也不甘示弱ui

java實現pdf轉圖片 圖片轉pdf

  1 //將pdf裝圖片 而且自定義圖片得格式大小
  2         File file = new File(pdfPath);
  3         try {
  4             PDDocument doc = PDDocument.load(file);
  5             PDFRenderer renderer = new PDFRenderer(doc);
  6             int pageCount = doc.getNumberOfPages();
  7             for (int i = 0; i < pageCount; i++) {
  8                 BufferedImage image = renderer.renderImageWithDPI(i, 240);
  9                 BufferedImage srcImage = resize(image, image.getWidth(), image.getHeight());
 10                 ImageIO.write(srcImage, "PNG", new File(pngPath.replace(".",i+".")));
 11             }
 12         } catch (IOException e) {
 13             e.printStackTrace();
 14         }

 

  1 BufferedImage image = ImageIO.read(new FileInputStream(pngPath));
  2          List<BufferedImage> images=new ArrayList<BufferedImage>();
  3              BufferedImage srcImage = resize(image, image.getWidth(), image.getHeight());
  4              images.add(srcImage);
  5          //合成圖片轉pdf
  6          createPDFFromImage(pdfPath,images);

java生成pdf,支持中文編碼

  1 Document document = createDoc(filename);
  2         // 打開文檔
  3         document.open();
  4         // 文檔裏寫入
  5         Paragraph centerPar = convertParToChinese("豔輝網", 20, bold, red);
  6         centerPar.setAlignment(Element.ALIGN_CENTER);
  7 
  8         document.add(centerPar);
  9 //      document.add(new Paragraph("\n"));
 10 //      document.add(convertParToChinese("黑色", 18, boldItalic, black));
 11         document.add(new Paragraph("\n"));
 12         document.add(convertParToChinese("你最愛上的豔輝博客,加QQ羣494808400,便可獲取更多java資料。", 12, normal, black));
 13         document.add(new Paragraph("\n"));
 14         // 文檔寫入圖片
 15         if (checkFile(imgPath)) {
 16             Image image = writeImg(imgPath);
 17             document.add(image);
 18             document.add(new Paragraph("\n"));
 19         }
 20 //      document.add(new Paragraph("\n"));
 21 //      // 生成三列表格 
 22 //      PdfPTable table = new PdfPTable(3); 
 23 //      // 設置表格具體寬度 
 24 //      table.setTotalWidth(90); 
 25 //      // 設置每一列所佔的長度 
 26 //      table.setWidths(new float[] { 50f, 15f, 25f }); 
 27 //      PdfPCell cell1 = new PdfPCell(); 
 28 //      Paragraph para = new Paragraph("aaaaa"); 
 29 //      cell1.setPhrase(para); 
 30 //      table.addCell(cell1); 
 31 //      table.addCell(new PdfPCell(new Phrase("IText"))); 
 32 //      table.addCell(new PdfPCell(new Phrase("IText"))); 
 33 //      document.add(table); 
 34 
 35 //      document.add(new Paragraph("\n")); 
 36 //      document.add(new Paragraph("\n")); 
 37         // PDF同行顯示 
 38 //      Paragraph par = new Paragraph(); 
 39 //      Chunk chunk1 = new Chunk( convertChunkByChinese("考試分數:", 20, bold, black)); 
 40 //      Chunk chunk2 = new Chunk(convertChunkByChinese("93", 20, bold, red));
 41 //      par.add(chunk1);
 42 //      par.add(chunk2); 
 43 //      // 設置總體縮進
 44 //      par.setFirstLineIndent(setting); 
 45 //      // 居中 
 46 //      Paragraph centerPar = convertParToChinese("劇中測試", 16, italic, black); 
 47 //      centerPar.setAlignment(Element.ALIGN_CENTER); 
 48 //      document.add(par);
 49         // 新建章節 
 50         // 章節標題 
 51 //      Paragraph chapterTitle = new Paragraph(convertParToChinese("章節標題", 18, boldItalic, blue));
 52 //      Chapter chapter1 = new Chapter(chapterTitle, 1);
 53 //      chapter1.setNumberDepth(0);
 54 //      Paragraph p = new Paragraph("test!!!!!");
 55 //      chapter1.add(p);
 56 //      document.add(chapter1); 
 57 
 58         //關閉文檔 
 59         document.close();

還有pdf2word2.0

  1 PDDocument doc=PDDocument.load(new File(name1));
  2         int pagenumber=doc.getNumberOfPages();
  3 
  4         name1 = name1.substring(0, name1.lastIndexOf("."));
  5 //      String dirName = "D:\\pdf\\";// 建立目錄D:\\pdf\\a.doc
  6         String dirName = name1;// 建立目錄D:\\pdf\\a.doc
  7         //createDir(dirName);// 調用方法建立目錄
  8         String fileName = dirName + ".doc";// 建立文件
  9         createFile(fileName);
 10         FileOutputStream fos=new FileOutputStream(fileName);
 11         Writer writer=new OutputStreamWriter(fos,"UTF-8");
 12         PDFTextStripper stripper=new PDFTextStripper();
 13 
 14 //      doc.addSignature(arg0, arg1, arg2);
 15 
 16         stripper.setSortByPosition(true);//排序
 17         //stripper.setWordSeparator("");//pdfbox對中文默認是用空格分隔每個字,經過這個語句消除空格(視頻是這麼說的)
 18         stripper.setStartPage(1);//設置轉換的開始頁
 19         stripper.setEndPage(pagenumber);//設置轉換的結束頁
 20         stripper.writeText(doc,writer);
 21         writer.close();
 22         doc.close();
 23         System.out.println("pdf轉換word成功!");

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

 

 

 

三:java-pdf轉word3.0

注:原文來源 《 java-pdf轉word3.0   》編碼

java-pdf轉word3.0
這裏寫圖片描述url

2.0是pdf轉圖片,如今出3.0圖片再轉成word,寫1.0的時候目的是使用pdfbox.jar將pdf文件轉成word文件,在wps中轉的話須要充會員,若是使用java的話,只須要配置環境,大大節省了一筆money,漸漸大部分不少作java的都須要寫這個需求,有的我加了別人,別人不提供源代碼,只說了方法,可是我也很感激。。。有不少人加我QQ,就說我這個那個pdf轉word能不能實現,說我沒提供代碼是否是騙子什麼的,對於這個pdf轉word要求保留樣式,保留圖片,,別人wps轉也須要收錢的,他們開發不必定是用java開發的,你也能夠用C++開發一個,這裏pdf轉word這個需求只是簡單的實現文字轉換,固然你也能夠加QQ一塊兒討論,之後會出4.0 5.0 5.2 。。。版本的。說了不少煽情的話,是時候展示正真的技術了。

首先分享pdf轉html:
這是小編在網上copy下來的,先整個下載pdf2htmlEX-v1.0文件夾

  1 pdf2html("D:\\DesignSoftware\\pdf\\pdf2htmlEX-v1.0\\pdf2htmlEX.exe",
  2                  "D:\\a.pdf",
  3                  "D:\\HTMLPDF","a1.html");

 

意思是將D盤的a.pdf轉成a1.html並保存在D盤HTMLPDF目錄中。

而後分享的是html轉word:
也是百度下來的

  1 new Html2Doc().writeWordFile("D:/a3.html","D:/test222.doc",1);

意思是將D盤的a3.html轉成test222.doc並保存在D盤目錄中。
其中1表示本地html 2表示在線 在線並無開放,我測試了在線的轉成doc後樣式全丟失,就像感受懷疑人生。。。

本章博客的代碼所有公開免費,由於大部分代碼都是東拼西湊下來完成需求的,可是1.0和2.0的代碼須要開通咱們豔輝vip才能獲取。

這樣你的需求就能實現pdf轉word時,只要pdf讀取出圖片,而後再將圖片寫入word文檔,就能實現pdf轉word保存圖片的效果。而後有人就會問,保存圖片卻不能編輯,有毛線用啊。
因此能夠看看2.0的,pdf轉word時,咱們先作一個word模板,而後再將數據填進去,這樣word就能實現編輯效果,缺點就是要有固定的模板,變化能力差。想到更好的方法可留言。噴我也可留言,反正被噴都不是第一次,這部分代碼能夠免費下載,能夠加QQ490647751,回覆java-pdf轉word3.0,便可獲取代碼學習。

小編想了pdf轉html,html再轉word,可是html轉word樣式和圖片也丟失,無奈放棄。。。

爲人:謙遜、激情、博學、審問、慎思、明辨、 篤行 學問:紙上得來終覺淺,絕知此事要躬行 爲事:工欲善其事,必先利其器。 轉載請標註出處!
相關文章
相關標籤/搜索