注:原文来至 《 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全屏截图:

 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成功!");

三: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文件夹

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

意思是将D盘的a.pdf转成a1.html并保存在D盘HTMLPDF目录中。

然后分享的是html转word:
也是百度下来的

 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的更多相关文章

  1. java PDF转word的初步实现

    package com.springboot.springboot.util; import java.io.File; import java.io.FileOutputStream; import ...

  2. java pdf转word 高效不失真

    将java工程导成jar包 使用 bat 执行 jar 包. --------------------------------------------------------------------- ...

  3. Java解析OFFICE(word,excel,powerpoint)以及PDF的实现方案及开发中的点滴分享

    Java解析OFFICE(word,excel,powerpoint)以及PDF的实现方案及开发中的点滴分享 在此,先分享下写此文前的经历与感受,我所有的感觉浓缩到一个字,那就是:"坑&qu ...

  4. Java 将PDF 转为Word、图片、SVG、XPS、Html、PDF/A

    本文将介绍通过Java编程来实现PDF文档转换的方法.包括: 1. PDF转为Word 2. PDF转为图片 3. PDF转为Html 4. PDF转为SVG 4.1 将PDF每一页转为单个的SVG ...

  5. iText导出pdf、word、图片

    一.前言 在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或 ...

  6. java 如何将 word,excel,ppt如何转pdf--jacob

    问题:java 如果将 word,excel,ppt如何转pdf 我个人的观点:windows server下用 jacob; linux server下 用openoffice.   PS:1.本文 ...

  7. CAJ Viewer安装流程以及CAJ或Pdf转换为Word格式

        不多说,直接上干货! pdf转word格式,最简单的就是,实用工具 Adobe Acrobat DC 首先声明的是,将CAJ或者Pdf转换成Word文档,包括里面的文字.图片以及格式,根本不需 ...

  8. 基于DevExpress实现对PDF、Word、Excel文档的预览及操作处理

    http://www.cnblogs.com/wuhuacong/p/4175266.html 在一般的管理系统模块里面,越来越多的设计到一些常用文档的上传保存操作,其中如PDF.Word.Excel ...

  9. 一款免费支持PDF、word、excel、PPT、jpeg之间互转线上软件

    偶然发现的一款免费支持PDF.word.excel.PPT.jpeg之间互转,支持合并pdf.加密解密PDF的线上软件,首先声明,不是广告党,我自己试用过,确实是目前我用过最好用的,如果有朋友有更好的 ...

  10. pdf转word

    一.刚需 pdf转word,这个需求肯定是有的.但是大家都知道,pdf是用来排版打印的,所以编辑起来会比较麻烦,所以,大家都会尝试将pdf的内容转成word,然后再进行编辑. 二.方法 1.用offi ...

随机推荐

  1. 【bzoj 3669】[Noi2014]魔法森林

    Description 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士.魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M.初始时小E同学在号节 ...

  2. mssql 创建函数简单实例

    CREATE FUNCTION [dbo].[f_DailyIncome] ( @userId int, @date date ) ,) AS BEGIN ,); ) from Channel_Use ...

  3. Codeforces Round #540 (Div. 3)

    A链接 讨论一下2a2a2a跟bbb的大小关系即可. #include <set> #include <map> #include <queue> #include ...

  4. 集成JUnit测试错误java.lang.IllegalStateException: Failed to load ApplicationContext

    1 详细错误信息 java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.t ...

  5. IIS7配置Gzip压缩

    II7中自带了gzip功能,理论上应该比ii6配置起来应该简单一点,但是容易出的问题比较多.有的II7配置web服务器角色的时候可能没有安装启用动态内容压缩,所以这个钩子是灰色的,需要再次安装. 如图 ...

  6. mfc调用WPFDLL

    1.修改MFC项目属性支持CLR 2.打开vcxproj,修改<PropertyGroup Label="Globals"> <PropertyGroup Lab ...

  7. 移动端300ms延迟解决方法在vue 里面的一些小坑

    话不多说上图: 至于import为什么会报错,瞅下面这个图: 总结:要搞懂个必须了解下es6的解构赋值才能在这方面装逼,网上资料一大堆自行百度.

  8. 【深入分析Java Web技术内幕】1、深入Web请求过程知识点

    如何发起一个请求 发起一盒HTTP请求的过程就是建立一个Socket通信的过程! 既然发起一个HTTP的本质就是建立一个Socket连接,那么我们完全可以模拟浏览器来发起HTTP请求,这很好实现,如H ...

  9. Java的两大数据类型

    Java的两大数据类型 基本数据类型 byte,short,int,long,float,double,boolean,char byte 类别 内容 类型 byte 简介 byte 数据类型是8位. ...

  10. mysql 原理 ~ LRU 算法与buffer_pool

    一 简介:针对查询和事务的页在内存中的处理,是如何进行的 二 LRU算法 普通 : 实现的是末尾淘汰法,当整个链表已满时,淘汰尾部,将新的数据页加入头部 mysql_lru改进 : 分为两部分 yan ...