java-pdf转word2.0

来源:互联网 发布:北交大淘宝地址怎么填 编辑:程序博客网 时间:2024/05/29 03:42

由于之前写的一篇博客http://blog.csdn.net/sinat_15153911/article/details/53926879,
很多人反应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全屏截图:

function takeScreenshot() {    html2canvas(document.body, {        onrendered: function(canvas) {            document.body.appendChild(canvas);        },    });}

js生成pdf:

html2canvas(document.body, {  onrendered: function(canvas) {    var url = canvas.toDataURL();    //document.body.appendChild(canvas);    var doc = new jsPDF();     doc.setFontSize(40);     //doc.text(35, 25, "yanhui");    var imgAsDataURL = url;     doc.addImage(imgAsDataURL, 'JPEG', 15, 40, 420, 180);     doc.save('艳辉网.pdf');  },  width: 600,  height: 600});

js预览pdf

window.onload = function () {         var success = new PDFObject({             url: "pdf/test.pdf",             pdfOpenParams: {                 scrollbars: '0',                 toolbar: '0',                 statusbar: '0'                 }          }).embed("pdf");     };

js那么强大,我们的java也不甘示弱

java实现pdf转图片 图片转pdf

 //将pdf装图片 并且自定义图片得格式大小        File file = new File(pdfPath);        try {            PDDocument doc = PDDocument.load(file);            PDFRenderer renderer = new PDFRenderer(doc);            int pageCount = doc.getNumberOfPages();            for (int i = 0; i < pageCount; i++) {                BufferedImage image = renderer.renderImageWithDPI(i, 240);                BufferedImage srcImage = resize(image, image.getWidth(), image.getHeight());                ImageIO.write(srcImage, "PNG", new File(pngPath.replace(".",i+".")));            }        } catch (IOException e) {            e.printStackTrace();        }
BufferedImage image = ImageIO.read(new FileInputStream(pngPath));         List<BufferedImage> images=new ArrayList<BufferedImage>();             BufferedImage srcImage = resize(image, image.getWidth(), image.getHeight());             images.add(srcImage);         //合成图片转pdf         createPDFFromImage(pdfPath,images);

java生成pdf,支持中文编码

Document document = createDoc(filename);        // 打开文档        document.open();        // 文档里写入        Paragraph centerPar = convertParToChinese("艳辉网", 20, bold, red);        centerPar.setAlignment(Element.ALIGN_CENTER);         document.add(centerPar);//      document.add(new Paragraph("\n"));//      document.add(convertParToChinese("黑色", 18, boldItalic, black));        document.add(new Paragraph("\n"));        document.add(convertParToChinese("你最爱上的艳辉博客,加QQ群494808400,即可获取更多java资料。", 12, normal, black));        document.add(new Paragraph("\n"));        // 文档写入图片        if (checkFile(imgPath)) {            Image image = writeImg(imgPath);            document.add(image);            document.add(new Paragraph("\n"));        }//      document.add(new Paragraph("\n"));//      // 生成三列表格 //      PdfPTable table = new PdfPTable(3); //      // 设置表格具体宽度 //      table.setTotalWidth(90); //      // 设置每一列所占的长度 //      table.setWidths(new float[] { 50f, 15f, 25f }); //      PdfPCell cell1 = new PdfPCell(); //      Paragraph para = new Paragraph("aaaaa"); //      cell1.setPhrase(para); //      table.addCell(cell1); //      table.addCell(new PdfPCell(new Phrase("IText"))); //      table.addCell(new PdfPCell(new Phrase("IText"))); //      document.add(table); //      document.add(new Paragraph("\n")); //      document.add(new Paragraph("\n"));         // PDF同行显示 //      Paragraph par = new Paragraph(); //      Chunk chunk1 = new Chunk( convertChunkByChinese("考试分数:", 20, bold, black)); //      Chunk chunk2 = new Chunk(convertChunkByChinese("93", 20, bold, red));//      par.add(chunk1);//      par.add(chunk2); //      // 设置整体缩进//      par.setFirstLineIndent(setting); //      // 居中 //      Paragraph centerPar = convertParToChinese("剧中测试", 16, italic, black); //      centerPar.setAlignment(Element.ALIGN_CENTER); //      document.add(par);        // 新建章节         // 章节标题 //      Paragraph chapterTitle = new Paragraph(convertParToChinese("章节标题", 18, boldItalic, blue));//      Chapter chapter1 = new Chapter(chapterTitle, 1);//      chapter1.setNumberDepth(0);//      Paragraph p = new Paragraph("test!!!!!");//      chapter1.add(p);//      document.add(chapter1);         //关闭文档         document.close();

还有pdf2word2.0

PDDocument doc=PDDocument.load(new File(name1));        int pagenumber=doc.getNumberOfPages();        name1 = name1.substring(0, name1.lastIndexOf("."));//      String dirName = "D:\\pdf\\";// 创建目录D:\\pdf\\a.doc        String dirName = name1;// 创建目录D:\\pdf\\a.doc        //createDir(dirName);// 调用方法创建目录        String fileName = dirName + ".doc";// 创建文件        createFile(fileName);        FileOutputStream fos=new FileOutputStream(fileName);        Writer writer=new OutputStreamWriter(fos,"UTF-8");        PDFTextStripper stripper=new PDFTextStripper();//      doc.addSignature(arg0, arg1, arg2);        stripper.setSortByPosition(true);//排序        //stripper.setWordSeparator("");//pdfbox对中文默认是用空格分隔每一个字,通过这个语句消除空格(视频是这么说的)        stripper.setStartPage(1);//设置转换的开始页        stripper.setEndPage(pagenumber);//设置转换的结束页        stripper.writeText(doc,writer);        writer.close();        doc.close();        System.out.println("pdf转换word成功!");

这里写图片描述

这里写图片描述

这里写图片描述

获取源码方式:
方式一:加QQ490647751开通vip获取源码,
方式二:加QQ490647751互相交流技术获取源码学习。
备注加Q来源:CSDN博客+文章题目

原创粉丝点击