压缩过的pdf勿进!
压缩过的pdf勿进!
压缩过的pdf勿进!
重要的事情说三遍。

主要是提供两种解决办法

第一种:转成同级目录word
第二种:直接console打印

java的好处之一就是取之不尽的第三方包
这个先介绍pdf转word的方法:
利用的依赖包:
pdfbox.jar

<dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.16</version>
</dependency>

利用的类主要是:
org.apache.pdfbox.pdmodel.PDDocument
org.apache.pdfbox.text.PDFTextStripper

方法1:
核心代码是PDF类

package com.j;import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;import java.io.*;/*** @author joker* @version 1.0* @description pdf转word* @date 2020-03-01 -- 12:01*/
class Th implements Runnable {public boolean flag = true;public void run() {System.out.println("转换中");while (true) {if (!flag) {System.out.println();System.out.println("转换word成功!");return;}System.out.print(".#");try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}}}
}public class PDF {public static void main(String[] args) {try {Th th = new Th();new Thread(th).start();String pdfFile = "D:\\360安全浏览器下载\\多媒体教材.pdf";PDDocument doc = PDDocument.load(new File(pdfFile));int pagenumber = doc.getNumberOfPages();pagenumber=10;pdfFile = pdfFile.substring(0, pdfFile.lastIndexOf("."));String fileName = pdfFile + ".doc";File file = new File(fileName);if (!file.exists()) {file.createNewFile();}FileOutputStream fos = new FileOutputStream(fileName);Writer writer = new OutputStreamWriter(fos);PDFTextStripper stripper = new PDFTextStripper();stripper.setSortByPosition(true);// 排序stripper.setStartPage(5);// 设置转换的开始页stripper.setEndPage(pagenumber);// 设置转换的结束页stripper.writeText(doc, writer);//写到wordwriter.close();doc.close();th.flag=false;} catch (IOException e) {e.printStackTrace();}}}

方法2:

package com.j;import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.encryption.InvalidPasswordException;
import org.apache.pdfbox.text.PDFTextStripper;
import org.apache.pdfbox.text.PDFTextStripperByArea;import java.io.File;
import java.io.IOException;
import java.util.Scanner;public class ReadPDF {public static void main(String[] args) throws InvalidPasswordException {//本地测试入口System.out.println(PDFtoStringArr("D:\\本学期课程\\操作系统\\sx\\1.pdf"));}public static String PDFtoStringArr(String file) {try {PDDocument document = PDDocument.load(new File(file));document.getClass();if (!document.isEncrypted()) {PDFTextStripperByArea stripper = new PDFTextStripperByArea();stripper.setSortByPosition(true);PDFTextStripper tStripper = new PDFTextStripper();String pdfFileInText = tStripper.getText(document);System.out.println(pdfFileInText);String[] lines = pdfFileInText.split("\\r?\\n"); //去换行和回车符//循环打印String数组for (String line : lines) {System.out.println(line);}}} catch (IOException e) {e.printStackTrace();}return null;}}

利用java,丰富自己的解决方法!

编写java实用工具-针对未压缩的pdf转word,(java实现),压缩过的pdf勿进相关推荐

  1. java孙膑与庞涓_一个很难的数学问题(智力140以下勿进) 旧版Java程序设计Page97 3.12题 庞涓...

    一个很难的数学问题(智力140以下勿进) 旧版Java程序设计Page97 3.12题 庞涓 2016-08-23 0 0 0 暂无评分 其他 1 积分下载 如何获取积分? 一个很难的数学问题(智力1 ...

  2. Java实用工具类-将汉字转为拼音

    1. 导入对应的jar包 <dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j ...

  3. java实用工具 根据指定的类名查找jar包

    日常调试开发Java应用程序时经常会遇到一个问题: 依赖库缺失或多了多余的依赖,或者版本不对的错误. 如何快速定位这种问题呢? 这个需要一个有力的工具来解决这个问题. findjar 可以根据类名,在 ...

  4. java实用工具类——java处理对象转json工具类

    一.引言 json字符串现在是项目中很常用的了,尤其是在写接口返回数据一般都是json格式的.小编最近在看项目中,发现有多处地方用到了java对象转json,但是引用的jar包都是不统一的. 常见的有 ...

  5. Java面典_【Java实用工具】——使用oshi获取主机信息

    最近在筹划做一个监控系统.其中就要获取主机信息,其中遇到一些问题.在此做个记录,以便以后查阅. 在该监控系统中,想要做到主机的CPU.内存.磁盘.网络.线程.JVM内存.JVM GC 等维度的监控,J ...

  6. 常用的16个Java实用工具类,Java开发人员请收藏!

    在Java中,实用程序类是一个定义一组执行常用功能的方法的类.这篇文章展示了最常用的Java实用程序类及其最常用的方法.类列表及其方法列表都按流行度排序.该数据基于GitHub随机选择的50,000个 ...

  7. Java实用工具类五:URL转码、解码类

    此文仅对自己工作中用到的类进行总结,方便以后的使用. package com.cn.hnust.util;import java.io.UnsupportedEncodingException; im ...

  8. JAVA实用工具类-GPS,高德,百度坐标相互转换

    经过本人实际验证,此工具类的转换方法靠谱,所以拿出来给大家分享. 验证方式有二: 1,通过此工具类转换的坐标和调百度高德地图转换后的坐标,进行对比,误差在小数点后四到五位才出现. 2,把用此工具类转换 ...

  9. aspose将word转换为pdf[aspose.word.java 18.11]

    aspose.words.java for 18.11 前言:由于网上找的aspose.word存在许多问题,主要是存在水印,破解版献上,互相交流学习.有问题可联系我微信(shiguangxuanya ...

最新文章

  1. 拼多多创始人黄峥,要彻底卸下担子,搞“科研”去了。
  2. JAVA黑白圆圈图形_CSS3 黑白交替旋转圆圈
  3. 自我认为挺全面的【Web Service渗透测试总结】
  4. 算法与数据结构_数据结构与算法专题--算法基本概念
  5. Extjs4中up()和down()的用法以及组件查找_ComponentQuery类
  6. 2018年AI专业最全报考指南:去哪学?怎么去?
  7. html5游戏 dice掷骰子,使用jQuery实现掷骰子游戏
  8. matlab要求 基础,Matlab基础考试要求.doc
  9. linux命令跨进程拷贝文件,linux scp命令安全远程文件复制程序
  10. linux录制声卡声音_Linux ALSA 多声卡操作
  11. 计算机用户拒绝访问权限,解决局域网内拒绝访问无访问权限的问题
  12. STM32F103C8T6个人学习之路01-芯片介绍
  13. 看Python应乎潮流的72变
  14. 不改一行代码!快速迁移 Express 应用上云
  15. 啊哈,拉个群就是私域流量,怪不得做不好运营工作
  16. CCSP201902纸牌计数——解题报告
  17. linux根据文件内容查找文件名,文件查找:find命令,文件名后缀
  18. flutter 微信登录 包名不对,请检查包名是否与开放平台填写一致
  19. local cell id和cell id区别
  20. [半监督学习] Democratic Co-Learning

热门文章

  1. UTF-8格式的文本文件程序读取异常
  2. session and cookie
  3. Nginx系列篇二:linux搭建Nginx负载均衡
  4. python 3 输入和输出
  5. ajax请求, 前后端, 代码示例
  6. 机器学习实战 - 读书笔记(04) - 朴素贝叶斯
  7. 谈.Net委托与线程——解决窗体假死
  8. HDOJ 2673 shǎ崽 OrOrOrOrz
  9. [LeetCode] Reverse Linked List I II - 链表翻转问题
  10. Python之分享常用的五款动态数据可视化工具