依赖:

        <dependency><groupId>com.itextpdf</groupId><artifactId>kernel</artifactId><version>7.2.0</version></dependency><!--中文字体支持start--><dependency><groupId>com.itextpdf</groupId><artifactId>font-asian</artifactId><version>7.2.0</version></dependency><!--中文字体支持end-->

代码:


import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.canvas.parser.PdfTextExtractor;
import lombok.extern.slf4j.Slf4j;import java.io.IOException;
import java.io.InputStream;/*** 统计pdf字数的工具**/
@Slf4j
public class PdfUtils {public static Integer countText(String fileName) throws IOException {try {PdfReader reader = new PdfReader(fileName);return countText(reader);} catch (IOException e) {log.error("打开pdf失败,文件名:{}", fileName, e);throw e;}}public static Integer countText(InputStream inputStream) throws IOException {try {PdfReader reader = new PdfReader(inputStream);return countText(reader);} catch (IOException e) {log.error("使用流打开pdf失败", e);throw e;}}public static Integer countText(PdfReader reader) {try {int characterCount = 0;PdfDocument pdfDoc = new PdfDocument(reader);// get the number of pages in PDFint noOfPages = pdfDoc.getNumberOfPages();System.out.println("Extracted content of PDF---- ");for (int i = 1; i <= noOfPages; i++) {// Extract content of each pageString contentOfPage = PdfTextExtractor.getTextFromPage(pdfDoc.getPage(i));contentOfPage = contentOfPage.replaceAll("\\p{C}", "").replaceAll(" ", "");characterCount += contentOfPage.length();log.debug(contentOfPage);log.debug("这页几个字:" + contentOfPage.length());}pdfDoc.close();log.info("文档总共" + characterCount + "个字");return characterCount;} finally {try {if (reader != null) {reader.close();}} catch (IOException e) {// do noting}}}public static void main(String[] args) throws IOException {String testPdf = "C:\\Users\\xxx\\Downloads\\test.pdf";countText(testPdf);}
}

使用itext7统计PDF文件中的字数相关推荐

  1. 使用itext7在PDF文件中的指定文字位置添加电子签名图片技术记录

    使用itext7在PDF文件中的指定文字位置添加电子签名图片 文章目录 使用itext7在PDF文件中的指定文字位置添加电子签名图片 一.技术使用背景 二.使用步骤 1.引入依赖 2.具体代码 2.控 ...

  2. Android使用iText7生成PDF文件

    一:添加依赖 implementation 'com.itextpdf:itext7-core:7.1.13' 二:清单文件AndroidManifest.xml 添加权限 <uses-perm ...

  3. 使用 C# 提取 PDF 文件中的所有文字(支持 .NET Core)

    PDF 是 Portable Document Format 的简称,意为"可携带文档格式",是由 Adobe Systems 用于与应用程序.操作系统.硬件无关的方式进行文件交换 ...

  4. 统计java文件中的代码行数

    统计Java代码行数工具类  --  CodeCounterUtil.java 统计指定目录下的java文件中代码行数  --  public static int  getCodeNumFromFo ...

  5. R语言ggplot2可视化使用ggplot2::ggsave函数和gridextra::marrangegrob函数将多个可视化结果保存在pdf文件中

    R语言ggplot2可视化使用ggplot2::ggsave函数和gridextra::marrangegrob函数将多个可视化结果保存在pdf文件中 目录

  6. Python使用matplotlib可视化绘制并导出可视化结果图表到PDF文件中

    Python使用matplotlib可视化绘制并导出可视化结果图表到PDF文件中 目录 Python使用matplotlib可视化绘制并导出可视化结果图表到PDF文件中

  7. 直接在PDF文件中改变字体的小技巧

    2019独角兽企业重金招聘Python工程师标准>>> PDF文件大家接触的还是蛮多的,今天要给大家介绍一下直接在PDF文件中改变字体的小技巧,想来应该有蛮多小伙伴需要的. 具体操作 ...

  8. ajax从mysql提取数据在html中_Python骚操作,提取pdf文件中的表格数据!

    在实际研究中,我们经常需要获取大量数据,而这些数据很大一部分以pdf表格的形式呈现,如公司年报.发行上市公告等.面对如此多的数据表格,采用手工复制黏贴的方式显然并不可取.那么如何才能高效提取出pdf文 ...

  9. java pdf添加透明水印_如何在PDF文件中添加透明水印

    原标题:如何在PDF文件中添加透明水印 有些文件添加水印,但是又不想水印影响文件的使用有时候会设置透明水印,那么PDF怎么设置透明水印呢,应该有很多的小伙伴们都很好奇应该怎么做吧,接下来就为大家分享一 ...

  10. gnuradio上怎么使用python文件_使用Python从PDF文件中提取数据

    前言 数据是数据科学中任何分析的关键,大多数分析中最常用的数据集类型是存储在逗号分隔值(csv)表中的干净数据.然而,由于可移植文档格式(pdf)文件是最常用的文件格式之一,因此每个数据科学家都应该了 ...

最新文章

  1. Emacs支持gomodifytags
  2. spark standalone zookeeper HA部署方式
  3. [导入]rep_daqjcrb
  4. typescript语法高亮插件_JavaScript开发者必备的10个Sublime Text插件
  5. NSCTF-部分题目wp
  6. Hive分析窗口函数 NTILE,ROW_NUMBER,RANK,DENSE_RANK
  7. oracle 表访问,向oracle导入访问表
  8. c语言 动态数组_C语言的学习笔记!助你一路成长!
  9. vue如何保存登录状态到全局?【vue状态管理】
  10. studio中碰到的jni问题:java.lang.UnsatisfiedLinkError
  11. Object中Equals和ReferenceEquals不解之谜
  12. Rabbit MQ 延迟插件rabbitmq_delayed_message_exchange的安装
  13. es统计有多少个分组_ElasticSearch 分组查询的几个例子
  14. 使用自己的服务器中转远程桌面
  15. win10下同一局域网电脑互传文件
  16. H3CNE中静态路由实验
  17. 读书笔记11 《蔡康永的说话之道2》 蔡康永
  18. VirtualBox 安装Android on X86
  19. python_视频中语音识别转出文本
  20. 用java编写圆锥_用java中的graphics画圆锥的代码

热门文章

  1. sql创建表_SQL创建表
  2. 2021 Mac系统升级后,按大小写键没反应了,切换大小写的灯不亮了
  3. ae插件form_四分钟了解全网最受欢迎的10大AE插件
  4. jmeter使用详解
  5. CAD批量输入坐标生成红线
  6. VM ESXI安装英伟达显卡驱动
  7. 全球主要气象气候研究部门及其共享数据集介绍
  8. (01)ORB-SLAM2源码无死角解析-(18) SVD奇异值分解→求解Homography,Fundamental矩阵,了解矩阵自由度
  9. 快速给视频批量添加水印,操作简单
  10. 总结:form中使用onSubmit=return false防止表单自动提交,以及s...