java读取pdf文本转换html
补充:一下代码基于maven,现将依赖的jar包单独导出
地址:pdf jar
完整代码地址 也就两个文件
java读取pdf中的纯文字,这里使用的是pdfbox工具包
maven引入如下配置
- <dependency>
- <groupId>net.sf.cssbox</groupId>
- <artifactId>pdf2dom</artifactId>
- <version>1.7</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pdfbox</groupId>
- <artifactId>pdfbox</artifactId>
- <version>2.0.12</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pdfbox</groupId>
- <artifactId>pdfbox-tools</artifactId>
- <version>2.0.12</version>
- </dependency>
工具类直接读取
代码示例
- /*
- 读取pdf文字
- */
- @Test
- public void readPdfTextTest() throws IOException {
- byte[] bytes = getBytes("D:\\code\\pdf\\HashMap.pdf");
- //加载PDF文档
- PDDocument document = PDDocument.load(bytes);
- readText(document);
- }
- public void readText(PDDocument document) throws IOException {
- PDFTextStripper stripper = new PDFTextStripper();
- String text = stripper.getText(document);
- System.out.println(text);
- }
将pdf转换为html
效果图
代码示例
- /*
- pdf转换html
- */
- @Test
- public void pdfToHtmlTest() {
- String outputPath = "D:\\code\\pdf\\HashMap.html";
- byte[] bytes = getBytes("D:\\code\\pdf\\HashMap.pdf");
- // try() 写在()里面会自动关闭流
- try (BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(outputPath)),"UTF-8"));){
- //加载PDF文档
- PDDocument document = PDDocument.load(bytes);
- PDFDomTree pdfDomTree = new PDFDomTree();
- pdfDomTree.writeText(document,out);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- /*
- 将文件转换为byte数组
- */
- private byte[] getBytes(String filePath){
- byte[] buffer = null;
- try {
- File file = new File(filePath);
- FileInputStream fis = new FileInputStream(file);
- ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);
- byte[] b = new byte[1000];
- int n;
- while ((n = fis.read(b)) != -1) {
- bos.write(b, 0, n);
- }
- fis.close();
- bos.close();
- buffer = bos.toByteArray();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return buffer;
- }
完整的一个上传pdf转换为HTML功能(今后转换pdf也不需要找什么第三方了,哈哈)
- @RequestMapping("ud")
- @Controller
- public class UpAndDownController {
- @RequestMapping("upload.do")
- @ResponseBody
- public Map<String,Object> upload(@RequestParam("file") MultipartFile file, HttpServletRequest request){
- Map<String, Object> map = new HashMap<>();
- map.put("code","200");
- try {
- PdfConvertUtil pdfConvertUtil = new PdfConvertUtil();
- String pdfName = file.getOriginalFilename();
- int lastIndex = pdfName.lastIndexOf(".pdf");
- String fileName = pdfName.substring(0, lastIndex);
- String htmlName = fileName + ".html";
- String realPath = ResourceUtils.getURL("classpath:").getPath() + "/templates/file";
- File f = new File(realPath);
- if(!f.exists()){
- f.mkdirs();
- }
- String htmlPath = realPath + "\\" + htmlName;
- pdfConvertUtil.pdftohtml(file.getBytes(), htmlPath);
- } catch (Exception e) {
- map.put("code","500");
- e.printStackTrace();
- }
- return map;
- }
- }
可以使用postman调试
需要设置请求头 Content-Type 指定为 application/x-www-form-urlencoded
之后选择body选择form-data,OK
如果涉及到HTML页面直接加载PDF,无需插件
可以参考下
https://www.cnblogs.com/jacksoft/p/5302587.html
https://github.com/mozilla/pdf.js
java读取pdf文本转换html的更多相关文章
- [转].NET下读取PDF文本
本文转自:http://blog.csdn.net/wangqiuyun/article/details/8548779 在.NET下读取PDF文本用到的类库主要有两个:PDFBox和iTextSha ...
- .Net ->> iTextSharp工具读取PDF文本内容
分享一个开源的C#DLL,可以读取PDF文本内容. 地址:http://sourceforge.net/projects/itextsharp/ 这里还有相关的链接:http://www.codepr ...
- Java 读取PDF中的文本和图片
本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法.分别调用方法extractText()和extractImages()来读取. 使用工具:Free Spire.PDF for Ja ...
- java读取pdf总结
第三方软件 1.pdfbox PDFBox 0.7.3.PDFBox是一个开源的对pdf文件进行操作的库. PDFBox-0.7.3.jar加入classpath.同时FontBox1.0.jar加入 ...
- Java 读取PDF中的表格
一.概述 本文以Java示例展示读取PDF中的表格的方法.这里导入Spire.PDF for Javah中的jar包,并使用其提供的相关及方法来实现获取表格中的文本内容.下表中整理了本次代码使用到的主 ...
- Java 读取Word文本/段落格式属性
本文介绍通过Java后端程序代码来读取Word文本和段落格式的方法. 本次测试环境如下: Word版本:2013 编译环境:IntelliJ IDEA2018 Work库:free spire.doc ...
- java读取pdf和MS Office文档
有时候PDF中的文字无法复制,这可能是因为PDF文件加密了,不过使用PDFBox开源软件就可以把它读出来. 还有一个用于创建PDF文件的项目----iText. PDFBox下面有两个子项目:Font ...
- java读取pdf文档
import java.io.*;import org.pdfbox.pdmodel.PDDocument;import org.pdfbox.pdfparser.PDFParser;import o ...
- Java 读取Word文本框中的文本/图片/表格
Word可插入文本框,文本框中可嵌入文本.图片.表格等内容.对文档中的已有文本框,也可以读取其中的内容.本文以Java程序代码来展示如何读取文本框,包括读取文本框中的文本.图片以及表格等. [程序环境 ...
随机推荐
- Jackson教程
Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象.Jackson所依赖的jar包较少,简 ...
- Tengine-Ngnix高级版
Tengine介绍 Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫 ...
- elementUI 的el-pagination 分页功能
<div class="block1"> <el-pagination @size-change="handleSizeChange" @cu ...
- 破解Pycharm 2019.2
参考:https://www.cnblogs.com/pig66/p/11432446.html 1.下载补丁文件 https://pan.baidu.com/s/112tS3XjAENIHaJ-aS ...
- JS提示信息来检测相应id的标签
2015-07~2015-08 (其中$为document.getElementById()) 使用span提示信息来检测相应id的标签,没有返回值 infoTips("LRYH" ...
- BUUCTF RE部分题目wp
RE 1,easyre拖进ida,得到flag 2,helloworld 将文件拖入apk改之理,得到flag 3,xor拖进ida,就是简单异或,写脚本 glo=[0x66,0x0a,0x6b,0x ...
- 微信小程序生命周期、页面生命周期、组件生命周期
1. 生命周期 App(全局) 位置:项目根目录app.js文件 App({ onLaunch (options) { // console.log('小程序初始化') }, onShow(optio ...
- 使用ReadStream方法读取文件事件传递过程
const fs = require('fs'); let file = fs.createReadStream("filename.js"); file.on("ope ...
- createReadStream().pipe() Callback
const stream = fs.createReadStream('<filepath>/example.pdf', {bufferSize: 64 * 1024}) stream.p ...
- Java自定义注解Annotation的使用
从 jdk5开始,Java增加了对元数据的支持,也就是Annotation,Annotation其实就是对代码的一种特殊标记,这些标记可以在编译,类加载和运行时被读取,并执行相应的处理.当然刚刚说了, ...