java-pdf转word
?
注:原文來至 《 java-pdf轉(zhuǎn)word?? 》
一: java Pdf 文字 轉(zhuǎn) Word
廢話不說,直接上圖
?
很簡(jiǎn)單的用法:
1、new個(gè)PDFBox對(duì)象
2、調(diào)用pdfToDoc()方法,再傳一個(gè)參數(shù)(文件路徑)
最新jar下載地址:鏈接:https://pan.baidu.com/s/1snqjpSx 密碼:jujg? 或者加QQ群: 464429490(在群文件中)
二:Java? Pdf 圖片表格 轉(zhuǎn) word
文章來源: 《 java-pdf轉(zhuǎn)圖片 》
很多人反應(yīng)pdf轉(zhuǎn)doc 圖片丟失,表格丟失,樣式丟失,編碼問題等等。
沒錯(cuò)這段代碼就是只能把文字轉(zhuǎn)為doc文件的
因?yàn)?#xff1a;stripper.writeText(doc,writer);
doc指doc文件
writer指 FileOutputStream fos=new FileOutputStream(“pdf文件地址”);
Writer writer=new OutputStreamWriter(fos,”UTF-8”);
所以我們想出了用js生成圖片,或者pdf先轉(zhuǎn)成圖片
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('艷輝網(wǎng).pdf'); 12 }, 13 width: 600, 14 height: 600 15 });?
js預(yù)覽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那么強(qiáng)大,我們的java也不甘示弱
java實(shí)現(xiàn)pdf轉(zhuǎn)圖片 圖片轉(zhuǎn)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 //合成圖片轉(zhuǎn)pdf 6 createPDFFromImage(pdfPath,images);java生成pdf,支持中文編碼
1 Document document = createDoc(filename); 2 // 打開文檔 3 document.open(); 4 // 文檔里寫入 5 Paragraph centerPar = convertParToChinese("艷輝網(wǎng)", 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 // // 設(shè)置表格具體寬度 24 // table.setTotalWidth(90); 25 // // 設(shè)置每一列所占的長(zhǎng)度 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("考試分?jǐn)?shù):", 20, bold, black)); 40 // Chunk chunk2 = new Chunk(convertChunkByChinese("93", 20, bold, red)); 41 // par.add(chunk1); 42 // par.add(chunk2); 43 // // 設(shè)置整體縮進(jìn) 44 // par.setFirstLineIndent(setting); 45 // // 居中 46 // Paragraph centerPar = convertParToChinese("劇中測(cè)試", 16, italic, black); 47 // centerPar.setAlignment(Element.ALIGN_CENTER); 48 // document.add(par); 49 // 新建章節(jié) 50 // 章節(jié)標(biāo)題 51 // Paragraph chapterTitle = new Paragraph(convertParToChinese("章節(jié)標(biāo)題", 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 //關(guān)閉文檔 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\\";// 創(chuàng)建目錄D:\\pdf\\a.doc 6 String dirName = name1;// 創(chuàng)建目錄D:\\pdf\\a.doc 7 //createDir(dirName);// 調(diào)用方法創(chuàng)建目錄 8 String fileName = dirName + ".doc";// 創(chuàng)建文件 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對(duì)中文默認(rèn)是用空格分隔每一個(gè)字,通過這個(gè)語句消除空格(視頻是這么說的) 18 stripper.setStartPage(1);//設(shè)置轉(zhuǎn)換的開始頁(yè) 19 stripper.setEndPage(pagenumber);//設(shè)置轉(zhuǎn)換的結(jié)束頁(yè) 20 stripper.writeText(doc,writer); 21 writer.close(); 22 doc.close(); 23 System.out.println("pdf轉(zhuǎn)換word成功!");?
?
?
三:java-pdf轉(zhuǎn)word3.0
注:原文來源 《 java-pdf轉(zhuǎn)word3.0 ? 》
java-pdf轉(zhuǎn)word3.0
2.0是pdf轉(zhuǎn)圖片,現(xiàn)在出3.0圖片再轉(zhuǎn)成word,寫1.0的時(shí)候目的是使用pdfbox.jar將pdf文件轉(zhuǎn)成word文件,在wps中轉(zhuǎn)的話需要充會(huì)員,如果使用java的話,只需要配置環(huán)境,大大節(jié)省了一筆money,漸漸大部分很多做java的都需要寫這個(gè)需求,有的我加了別人,別人不提供源代碼,只說了方法,但是我也很感激。。。有很多人加我QQ,就說我這個(gè)那個(gè)pdf轉(zhuǎn)word能不能實(shí)現(xiàn),說我沒提供代碼是不是騙子什么的,對(duì)于這個(gè)pdf轉(zhuǎn)word要求保留樣式,保留圖片,,別人wps轉(zhuǎn)也需要收錢的,他們開發(fā)不一定是用java開發(fā)的,你也可以用C++開發(fā)一個(gè),這里pdf轉(zhuǎn)word這個(gè)需求只是簡(jiǎn)單的實(shí)現(xiàn)文字轉(zhuǎn)換,當(dāng)然你也可以加QQ一起討論,以后會(huì)出4.0 5.0 5.2 。。。版本的。說了很多煽情的話,是時(shí)候展現(xiàn)正真的技術(shù)了。
首先分享pdf轉(zhuǎn)html:
這是小編在網(wǎng)上copy下來的,先整個(gè)下載pdf2htmlEX-v1.0文件夾
?
意思是將D盤的a.pdf轉(zhuǎn)成a1.html并保存在D盤HTMLPDF目錄中。
然后分享的是html轉(zhuǎn)word:
也是百度下來的
意思是將D盤的a3.html轉(zhuǎn)成test222.doc并保存在D盤目錄中。
其中1表示本地html 2表示在線 在線并沒有開放,我測(cè)試了在線的轉(zhuǎn)成doc后樣式全丟失,就像感覺懷疑人生。。。
本章博客的代碼全部公開免費(fèi),因?yàn)榇蟛糠执a都是東拼西湊下來完成需求的,但是1.0和2.0的代碼需要開通我們艷輝vip才能獲取。
這樣你的需求就能實(shí)現(xiàn)pdf轉(zhuǎn)word時(shí),只要pdf讀取出圖片,然后再將圖片寫入word文檔,就能實(shí)現(xiàn)pdf轉(zhuǎn)word保存圖片的效果。然后有人就會(huì)問,保存圖片卻不能編輯,有毛線用啊。
所以可以看看2.0的,pdf轉(zhuǎn)word時(shí),我們先做一個(gè)word模板,然后再將數(shù)據(jù)填進(jìn)去,這樣word就能實(shí)現(xiàn)編輯效果,缺點(diǎn)就是要有固定的模板,變化能力差。想到更好的方法可留言。噴我也可留言,反正被噴都不是第一次,這部分代碼可以免費(fèi)下載,可以加QQ490647751,回復(fù)java-pdf轉(zhuǎn)word3.0,即可獲取代碼學(xué)習(xí)。
小編想了pdf轉(zhuǎn)html,html再轉(zhuǎn)word,但是html轉(zhuǎn)word樣式和圖片也丟失,無奈放棄。。。
總結(jié)
以上是生活随笔為你收集整理的java-pdf转word的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动态分区分配算法(1、首次适应算法 2、
- 下一篇: 【Anychart】自动保存flash图