admin管理员组

文章数量:1605631

from pdf2docx import Converter

def 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_buffer


def find_arial_font_path():
    # 获取 Arial 字体文件的完整路径
    font_name = "Calibri"
    buffer_size = 1024
    font_buffer = create_unicode_buffer(buffer_size)

    # 获取 Windows 系统目录路径
    result = windll.kernel32.GetSystemWindowsDirectoryW(font_buffer, buffer_size)
    if result == 0:
        return None

    windows_directory = font_buffer.value
    font_file = os.path.join(windows_directory, "Fonts", font_name + ".ttf")

    if os.path.isfile(font_file):
        return font_file
    else:
        return None


# 查找 Calibri 字体的路径
arial_font_path = find_arial_font_path()
print(arial_font_path)

本文标签: 转换为格式文档PythonPDF