Java直接URL获取PDF内容

题外话

网上很多Java通过pdf转 HTML,转文本的,可是通过URL直接获取PDF内容,缺没有,浪费时间,本人最近工作中刚好用到,花了时间整理下,分享出来,防止浪费时间,Apache的pdfbox 2013年都有了。

import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection; import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper; /**
* 通过URL获得PDF内容 转存
* @author sunyang
* @date 2019/1/24 14:40
*/
public class PdfText2Url { public static void main(String[] args) {
try {
//需要获取到的PDF地址
readPdf("https://img1.xxx.org/tech/file/9bd7/733b/7ef54fbf672cfffaf2b1a6c2.pdf");
}catch (Exception e){ }
} /**
* 传入一个.pdf 地址
* @param pdfUrl 地址
* @throws Exception
*/
public static void readPdf(String pdfUrl) throws Exception {
// 是否排序
boolean sort = false;
// 编码方式
String encoding = "UTF-8";
// 开始提取页数
int startPage = 1;
// 内存中存储的PDF Document
PDDocument pdDocument = null;
//输入流
InputStream inputStream = null;
try {
try {
// 当作一个URL来装载文件
URL url = new URL(pdfUrl);
URLConnection con = url.openConnection();
con.setConnectTimeout(3 * 1000);
inputStream = con.getInputStream();
pdDocument = PDDocument.load(inputStream);
} catch (MalformedURLException e) { } // 获取页码
int endPage = pdDocument.getNumberOfPages();
PDFTextStripper stripper = null;
stripper = new PDFTextStripper();
// 设置是否排序
stripper.setSortByPosition(sort);
// 设置起始页
stripper.setStartPage(startPage);
// 设置结束页
stripper.setEndPage(endPage);
System.out.println(stripper.getText(pdDocument));
System.out.println(" 输出成功!");
} finally {
if (inputStream != null) {
// 关闭输出流
inputStream.close();
}
if (pdDocument != null) {
// 关闭PDF Document
pdDocument.close();
}
}
} }

Pom.xml 添加Apache的pdfbox,已经很成熟了

<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>fontbox</artifactId>
<version>2.0.7</version>
</dependency> <dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.4</version>
</dependency>

最新文章

  1. MVC默认路由实现分页-PagerExtend.dll
  2. 初次学习c语言
  3. DevExpress XtraTreeList的复选框 禁用
  4. PHP乱码问题,UTF-8(乱码)
  5. Linux下归档与压缩工具笔记
  6. OpenCV——肤色检测
  7. linux_shell_轮询触发启动脚本
  8. 只有mdf 没有 日志 恢复数据库
  9. dns劫持分析
  10. python-02 数据类型、字符编码、文件处理
  11. dojo省份地市级联之省份Dao实现类(五)
  12. w3school上系统过了一遍Jquery的总结
  13. laravel整理笔记(一)
  14. bzoj1001狼抓兔子
  15. TS学习之for..of
  16. 注册表项关于start参数的说明
  17. RegExp正则匹配模式汇总
  18. WHERE 子句用于规定选择的标准。
  19. windows config yii framework
  20. 利用keytool工具生成数字证书

热门文章

  1. SpringMVC核心接口
  2. Python学习笔记【第八篇】:Python内置模块
  3. 《http权威指南》读书笔记14
  4. 【app】Appium-desktop界面介绍
  5. JSON库的使用研究(一)
  6. 如何批量添加图片到ppt的方法
  7. 2.matplotlib画散点图
  8. 【WebAPI No.1】创建简单的 .NETCore WebApi
  9. springBoot(9)---定时任务,异步任务
  10. 使用docker部署flask遇到的问题