java-pdf转word
注:原文来至 《 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样式和图片也丢失,无奈放弃。。。
学问:纸上得来终觉浅,绝知此事要躬行
为事:工欲善其事,必先利其器。
态度:道阻且长,行则将至;行而不辍,未来可期
.....................................................................
------- 桃之夭夭,灼灼其华。之子于归,宜其室家。 ---------------
------- 桃之夭夭,有蕡其实。之子于归,宜其家室。 ---------------
------- 桃之夭夭,其叶蓁蓁。之子于归,宜其家人。 ---------------
=====================================================================
* 博客文章部分截图及内容来自于学习的书本及相应培训课程以及网络其他博客,仅做学习讨论之用,不做商业用途。
* 如有侵权,马上联系我,我立马删除对应链接。 * @author Alan -liu * @Email no008@foxmail.com
转载请标注出处! ✧*꧁一品堂.技术学习笔记꧂*✧. ---> https://www.cnblogs.com/ios9/