当前位置: 首页 > news >正文

python实现pdf转换为word文档,尽量保持格式不变

from pdf2docx import Converterdef convert_pdf_to_word(pdf_path, docx_path, font_path):# 创建 pdf2docx.Converter 对象,用于进行 PDF 到 Word 文档的转换操作。cv = Converter(pdf_path)# 设置系统默认字体文件的路径cv.font_path = font_path#  docx_path  转换后的文档路径   start end 用于指定转换的页面范围  为None 则转换整个pdf文件cv.convert(docx_path, start=0, end=None)# 关闭转换器cv.close()# pdf文件名
pdf_file = "2023_PDF.pdf"
# word文件名
word_file = "output.docx"
default_font = r"C:\Windows\Fonts\Candarai.ttf"  # 替换为系统默认字体文件的路径convert_pdf_to_word(pdf_file, word_file, default_font)

上述方法适用于 一般的pdf转换。像简历之类的pdf转换会报字体错误。

查看系统所有字体路径

import matplotlib.font_manager as fm# 获取系统中可用的字体列表
font_list = fm.findSystemFonts()# 打印字体列表
for font_path in font_list:print(font_path)

查看指定字体路径

import os
from ctypes import windll, create_unicode_bufferdef find_arial_font_path():# 获取 Arial 字体文件的完整路径font_name = "Calibri"buffer_size = 1024font_buffer = create_unicode_buffer(buffer_size)# 获取 Windows 系统目录路径result = windll.kernel32.GetSystemWindowsDirectoryW(font_buffer, buffer_size)if result == 0:return Nonewindows_directory = font_buffer.valuefont_file = os.path.join(windows_directory, "Fonts", font_name + ".ttf")if os.path.isfile(font_file):return font_fileelse:return None# 查找 Calibri 字体的路径
arial_font_path = find_arial_font_path()
print(arial_font_path)

相关文章:

python实现pdf转换为word文档,尽量保持格式不变

from pdf2docx import Converterdef convert_pdf_to_word(pdf_path, docx_path, font_path):# 创建 pdf2docx.Converter 对象,用于进行 PDF 到 Word 文档的转换操作。cv Converter(pdf_path)# 设置系统默认字体文件的路径cv.font_path font_path# docx_path 转换…...

TCP / IP 网际层的 4 个重要协议

TCP / IP 网际层的 4 个重要协议 TCP/IP(Transmission Control Protocol/Internet Protocol)是一组用于互联网通信的协议。其中,网际层(Internet Layer)是TCP/IP协议栈中的一个关键层,主要负责网络间的数据…...

MySQL阶段DAY20(附笔记)

【注意】:工厂模式学习知识结构如下: (一)、单例模式 1.Single类: 使用懒汉式:对象的延迟加载,安全的,高效的应用 双重判断提升效率和安全性 package singleton;/** 单例设计模式之…...

考场作弊行为自动抓拍告警算法 yolov7

考场作弊行为自动抓拍告警系统通过yolov7python网络模型算法,考场作弊行为自动抓拍告警算法实时监测考场内所有考生的行为,对考生的行为进行自动抓拍,并分析判断是否存在作弊行为。YOLOv7 的发展方向与当前主流的实时目标检测器不同&#xff…...

在Linux中安装RabbitMQ

RabbitMQ下载网址 Socat下载网址 erlang下载网址 RabbitMQ安装包依赖于Erlang语言包的支持,所以需要先安装Erlang语言包,再安装RabbitMQ安装包 通过Xftp软件将这三个压缩包上传到linux中的opt目录下 ,双击即可 在安装之前先查询…...

electron 单个实例控制以及日志输出

electron 单个实例控制 在使用electron打包的应用程序的时候,点击应用图标会打开多个实例,要想控制单个实例,需要通过 app.requestSingleInstanceLock() 判断当前程序的实例是否为当前取得锁, 或者说, 当前实例是否为…...

基于matlab使用AprilTag标记进行相机校准(附源码)

一、前言 AprilTags被广泛用作物体检测、定位应用的视觉标记,并作为相机校准的目标。AprilTags类似于QR码,但旨在编码更少的数据,因此可以更快地解码,这对于实时机器人应用程序非常有用。使用 AprilTags 作为校准模式的优点包括更…...

计算机网络————运输层

文章目录 概述UDPTCP首部格式 连接管理连接建立连接释放 概述 从IP层看,通信双方是两个主机。 但真正进行通信的实体是在主机中的进程,是这个主机中的一个进程和另一个主机中的一个进程在交换数据。 所以严格的讲,两个主机进行通信就是两个…...

【雕爷学编程】Arduino动手做(154)---AFMotor电机扩展板模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…...

【RPC】—Protobuf入门

Protobuf入门 ⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记链接👉https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ Spring专栏👉https://blog.csdn.net/weixin_53580595/category_12279588.html SpringMVC专栏&a…...

【⑩MySQL】:表管理,让数据管理不再困难

前言 ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL表/数据库创建和管理的讲解✨ 目录 前言1. 基础知识2. 创建和管理数据库3.创建表4. 修改表5. 删除表6.总结 1. 基础知识 ✨1.1 表的基本概念 在MySQL数据库中,表是一种很重要的数据库对象&#xf…...

Springboot项目使用原生Websocket

目录 1.启用Websocket功能2.封装操作websocket session的工具3.保存websocket session的接口4.保存websocket session的类5.定义websocket 端点6.创建定时任务 ping websocket 客户端 1.启用Websocket功能 package com.xxx.robot.config;import org.springframework.context.a…...

在Vue 3中如何实现服务端渲染(SSR)

今天我要给你们介绍一个很酷的功能——在Vue 3中实现服务端渲染(SSR) 首先,我们来聊聊SSR是什么。它就像是一个魔术师,能让你的网页在服务器上就预先渲染好,然后发送到客户端。想象一下,你在浏览一个网页&…...

【计算机组成原理期末课设作业】16位微型计算机实现——MOVS串传送扩展指令设计

16位微型计算机实现——MOVS串传送扩展指令设计😎 前言🙌教学目的:1、数据**加粗样式**通路分析2、微程序控制器分析3、指令系统分析4、微程序控制器指令周期流程图5、微指令编码6、测试程序和运行结果(1)首先先在内存…...

CodeMirror 对 XML 文档熟悉及元素控制自定义

CodeMirror 是一个网络代码编辑器组件。它可以在网站中用于实现支持多种编辑功能的文本输入字段,并具有丰富的编程接口以允许进一步扩展。 本文为 xml 格式的代码提示约束格式规范的自定义示例内容。 先看效果,如下: 官方 Demo 的完整代码如…...

Jetpack - ViewModel

一、概念 二、使用 2.1 创建ViewModel //无参 class MainViewModel : ViewModel() {} //有参 class MainViewModel(mainRepository: MainRepository) : ViewModel() {} class MainViewModelFactory(private val mainRepository: MainRepository) : ViewModelProvider.Factor…...

【新版系统架构】第十三章-层次式架构设计理论与实践

软考-系统架构设计师知识点提炼-系统架构设计师教程(第2版) 第一章-绪论第二章-计算机系统基础知识(一)第二章-计算机系统基础知识(二)第三章-信息系统基础知识第四章-信息安全技术基础知识第五章-软件工程…...

剖析Linux文件系统

Linux 文件系统体系结构是一个对复杂系统进行抽象化的有趣例子。通过使用一组通用的 API 函数,Linux 可以在许多种存储设备上支持许多种文件系统。例如,read 函数调用可以从指定的文件描述符读取一定数量的字节。read 函数不了解文件系统的类型&#xff…...

简介Maven结构与配置方法

一、Maven是什么 Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。 它有什么用呢? 比如我以前要IOUtils这个包,那要到网站下去下载下来,再导入。 当jar包多的时候,一个一个导出,…...

好用的网址6

PPT课件网:http://www.pptkj.net/ ImgUpscaler:AI Image Upscaler - Upscale Photo, Cartoons in Batch Free 加强图片 AI Draw:AI Draw | Convert Images to One-Line Drawings with AI ZToDoList:https://www.ztodolis…...

让Apple触控设备在Windows系统完美运行的驱动解决方案

让Apple触控设备在Windows系统完美运行的驱动解决方案 【免费下载链接】mac-precision-touchpad Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad 项目地址: https://gitcode.com/gh_mirrors/ma/mac-precision-touchpad 当你在Wi…...

Qt+OpenCV+海康SDK实战:多线程回调架构下的实时视频流解码与Mat转换全流程解析

1. 项目背景与核心挑战 在智能安防和视频监控领域,实时视频流处理一直是技术难点。传统方案往往面临三个关键问题:视频流延迟高、解码效率低下、跨平台兼容性差。这正是我们选择QtOpenCV海康SDK技术栈的原因——Qt提供跨平台GUI支持,OpenCV负…...

从磁力线到最小磁阻:手把手拆解一个微型直流电机的内部‘磁路战争’

从磁力线到最小磁阻:手把手拆解一个微型直流电机的内部‘磁路战争’ 拆开一枚硬币大小的玩具电机,你会看到一场无声的物理博弈——磁力线像急于回家的士兵,不断寻找最短路径;而转子则是这场战役的指挥官,通过精确的旋…...

避坑指南:ThingsBoard部件开发中5个常见错误与优化方案(附跑马灯Demo代码)

ThingsBoard部件开发实战:5个高频踩坑点与性能优化技巧(含跑马灯完整实现) 最近在技术社区看到不少开发者讨论ThingsBoard部件开发中的"玄学问题"——明明按照文档操作却出现各种诡异现象。作为经历过完整产品开发周期的技术负责人…...

原神帧率解锁革新:突破60帧限制的全方位解决方案

原神帧率解锁革新:突破60帧限制的全方位解决方案 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 在高刷新率显示器普及的今天,《原神》默认的60帧限制成为制约游戏…...

专业级跨平台资源下载利器:res-downloader一站式网络资源嗅探解决方案

专业级跨平台资源下载利器:res-downloader一站式网络资源嗅探解决方案 【免费下载链接】res-downloader 资源下载器、网络资源嗅探,支持微信视频号下载、网页抖音无水印下载、网页快手无水印视频下载、酷狗音乐下载等网络资源拦截下载! 项目地址: http…...

MusePublic效果展示:多主体构图稳定性测试——双人/三人场景自然互动生成

MusePublic效果展示:多主体构图稳定性测试——双人/三人场景自然互动生成 1. 引言:当AI学会描绘“关系” 在AI绘画的世界里,生成一个栩栩如生的人物已经不再是难事。但当画面中需要同时出现两个、甚至三个人物,并且他们之间要有…...

3步告别卡顿:用鸣潮工具箱实现流畅游戏体验

3步告别卡顿:用鸣潮工具箱实现流畅游戏体验 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 你的游戏还在卡顿吗?试试这个免费解决方案 你是否曾经在《鸣潮》的激烈战斗中遭遇突然的…...

Ostrakon-VL-8B开发资源:GitHub优秀开源项目与工具推荐

Ostrakon-VL-8B开发资源:GitHub优秀开源项目与工具推荐 如果你正在研究Ostrakon-VL-8B这个多模态大模型,想用它做点实际的东西,比如开发个智能点餐助手或者商品识别工具,那你来对地方了。自己从头开始搞,从环境搭建到…...

LSPosed-Irena深度解析:Android运行时Hook框架的终极指南

LSPosed-Irena深度解析:Android运行时Hook框架的终极指南 【免费下载链接】LSPosed-Irena Useless LSPosed Framework Fork 项目地址: https://gitcode.com/gh_mirrors/ls/LSPosed-Irena 你是否曾想过,在不修改APK源代码的情况下,深度…...