识别pdf标题并重命名pdf

2023-12-26 07:52
文章标签 pdf 命名 识别 标题 并重

本文主要是介绍识别pdf标题并重命名pdf,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

此为改进版
解决了期刊名可能是最大字体的问题:
思路 识别字符串的空格>3则为标题
另外因为标题中不能出现冒号问题,这里用中文“冒号”代替了符号“:”

import os
import PyPDF2import fitzdef find_largest_font_sentence(pdf_path):largest_font_size = 0largest_font_sentence = ''maxsize=0# 打开PDF文件document = fitz.open(pdf_path)for page_number in range(document.page_count):page = document.load_page(page_number)blocks = page.get_text("dict")["blocks"]for block in blocks:if "lines" in block:  # 检查是否存在 lines 字段for line in block["lines"]:for span in line["spans"]:if span["size"] > largest_font_size:largest_font_size = span["size"]largest_font_sentence = span["text"]maxsize=largest_font_sizefor block in blocks:if "lines" in block:  # 检查是否存在 lines 字段for line in block["lines"]:for span in line["spans"]:if span["size"] ==maxsize:if largest_font_sentence!=span["text"]:largest_font_sentence = largest_font_sentence+' '+span["text"]if largest_font_sentence.count(' ')<4:largest_font_sentence=''largest_font_size=0for block in blocks:if "lines" in block:  # 检查是否存在 lines 字段for line in block["lines"]:for span in line["spans"]:if span["size"] > largest_font_size and span["text"].count(' ')>3:largest_font_size = span["size"]largest_font_sentence = span["text"]maxsize = largest_font_sizefor block in blocks:if "lines" in block:  # 检查是否存在 lines 字段for line in block["lines"]:for span in line["spans"]:if span["size"] == maxsize:if largest_font_sentence != span["text"]:largest_font_sentence = largest_font_sentence + ' ' + span["text"]return largest_font_sentence# 用于测试的PDF文件路径def rename_pdfs(directory):for filename in os.listdir(directory):if filename.endswith(".pdf"):filepath = os.path.join(directory, filename)filepath=filepath.strip()largest_font_sentence = find_largest_font_sentence(filepath)title=largest_font_sentenceif  ":" in title:title = title.replace(":", "冒号")new_filename = title.strip() + ".pdf"new_filepath = os.path.join(directory, new_filename)os.rename(filepath, new_filepath)print(f"Renamed {filename} to {new_filename}")# 指定包含英文论文PDF的目录路径
pdf_directory = "PDF文件目录"# 调用函数进行重命名
rename_pdfs(pdf_directory)

这篇关于识别pdf标题并重命名pdf的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/538614

相关文章

基于Python实现PDF动画翻页效果的阅读器

《基于Python实现PDF动画翻页效果的阅读器》在这篇博客中,我们将深入分析一个基于wxPython实现的PDF阅读器程序,该程序支持加载PDF文件并显示页面内容,同时支持页面切换动画效果,文中有详... 目录全部代码代码结构初始化 UI 界面加载 PDF 文件显示 PDF 页面页面切换动画运行效果总结主

使用JavaScript将PDF页面中的标注扁平化的操作指南

《使用JavaScript将PDF页面中的标注扁平化的操作指南》扁平化(flatten)操作可以将标注作为矢量图形包含在PDF页面的内容中,使其不可编辑,DynamsoftDocumentViewer... 目录使用Dynamsoft Document Viewer打开一个PDF文件并启用标注添加功能扁平化

使用Python制作一个PDF批量加密工具

《使用Python制作一个PDF批量加密工具》PDF批量加密‌是一种保护PDF文件安全性的方法,通过为多个PDF文件设置相同的密码,防止未经授权的用户访问这些文件,下面我们来看看如何使用Python制... 目录1.简介2.运行效果3.相关源码1.简介一个python写的PDF批量加密工具。PDF批量加密

基于C#实现将图片转换为PDF文档

《基于C#实现将图片转换为PDF文档》将图片(JPG、PNG)转换为PDF文件可以帮助我们更好地保存和分享图片,所以本文将介绍如何使用C#将JPG/PNG图片转换为PDF文档,需要的可以参考下... 目录介绍C# 将单张图片转换为PDF文档C# 将多张图片转换到一个PDF文档介绍将图片(JPG、PNG)转

变量与命名

引言         在前两个课时中,我们已经了解了 Python 程序的基本结构,学习了如何正确地使用缩进来组织代码,并且知道了注释的重要性。现在我们将进一步深入到 Python 编程的核心——变量与命名。变量是我们存储数据的主要方式,而合理的命名则有助于提高代码的可读性和可维护性。 变量的概念与使用         在 Python 中,变量是一种用来存储数据值的标识符。创建变量很简单,

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的 PDF 文档软件需求。 不同的 PDF 文档软件程序可以具有不同的功能,因此在决定哪个是最适合您的 PDF 软件之前,请花点时间评估您的

Clion不识别C代码或者无法跳转C语言项目怎么办?

如果是中文会显示: 此时只需要右击项目,或者你的源代码目录,将这个项目或者源码目录标记为项目源和头文件即可。 英文如下: