java-pdf轉word

來源:互聯網
上載者:User

標籤:不能   red   image   丟失   word模板   好的   hdpi   pdfobject   statusbar   


註:原文來至 《 java-pdf轉word   》

一: java Pdf 文字 轉 Word

廢話不說,直接


很簡單的用法:
1、new個PDFBox對象
2、調用pdfToDoc()方法,再傳一個參數(檔案路徑)

最新jar:連結:https://pan.baidu.com/s/1snqjpSx 密碼:jujg  或者加QQ群: 464429490(在群檔案中)二:Java  Pdf 圖片表格 轉 word

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

很多人反應pdf轉doc 圖片丟失,表格丟失,樣式丟失,編碼問題等等。
沒錯這段代碼就是只能把文字轉為doc檔案的

因為: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也不甘示弱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

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樣式和圖片也丟失,無奈放棄。。。

java-pdf轉word

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.