Python pdf转换为html

描述:

最近在工作中遇到 pdf转换为html,找了很多个库,最后发现两个好用的pdf转html的库,特此记录

1.方法一:使用Spire.PDF for Python

Spire.PDF是收费的,但是pdf转换为html的效果是最好的

bash 复制代码
 pip install Spire.PDF
python 复制代码
from spire.pdf.common import *
from spire.pdf import *


# spire.pdf pdf转换为html
def spire_convert_html(pdf_path, html_path):
    try:
        # 创建一个 PdfDocument 类的对象
        doc = PdfDocument()
        # 加载一个 PDF 文档
        doc.LoadFromFile(pdf_path)
        # 将文档转换为 HTML 格式并保存
        doc.SaveToFile(html_path, FileFormat.HTML)
        doc.Close()
    except Exception as e:
        print(e)

2.方法二:使用PyMuPDF(fitz) pdf转换为html

PyMuPDF是开源免费的,效果还可以

tqdm是Python进度条库,若不用可以不安装该库

bash 复制代码
pip install PyMuPDF
pip install tqdm  
python 复制代码
import fitz
from tqdm import tqdm


# PyMuPDF(fitz) pdf转换为html
def fitz_convert_html(pdf_path, html_path):
    try:
        doc = fitz.open(pdf_path)
        html_content = ("<!DOCTYPE html><html lang=\"zh-CN\"><head><meta "
                        "charset=\"UTF-8\"><title>Title</title></head><body>")
        # tqdm是Python进度条库, 若不用: for page in doc
        for page in tqdm(doc):
            html_content += page.get_text('html')
            html_content += "</body></html>"
            # 保存html
        with open(html_path, 'w', encoding='utf8') as f:
            f.write(html_content)
    except Exception as e:
        print(e)
相关推荐
阿正的梦工坊5 小时前
深入理解 PyTorch 中的 unsqueeze 操作
人工智能·pytorch·python
FreakStudio5 小时前
硬件版【Cursor】?aily blockly IDE尝鲜封神,实战硬伤尽显
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
测试员周周7 小时前
【Appium 系列】第06节-页面对象实现 — LoginPage 实战
开发语言·前端·人工智能·python·功能测试·appium·测试用例
2301_783848657 小时前
优化文本分类中堆叠模型的网格搜索性能:避免训练卡顿的实战指南
jvm·数据库·python
CLX05058 小时前
如何安装Oracle 12c Cloud Control_OMS服务端组件与Agent部署
jvm·数据库·python
老纪9 小时前
SQL中如何查找特定的空值行:WHERE IS NULL深度解析
jvm·数据库·python
噜噜噜阿鲁~9 小时前
python学习笔记 | 10.0、面向对象编程
笔记·python·学习
weixin199701080169 小时前
[特殊字符] RESTful API 接口规范详解:构建高效、可扩展的 Web 服务(附 Python 源码)
前端·python·restful
2301_7815714210 小时前
mysql数据库响应缓慢如何排查_使用EXPLAIN分析执行计划
jvm·数据库·python
彳亍10110 小时前
实现倒计时数字在到达1后自动隐藏(2为最后可见数字),同时继续运行至-1再终止
jvm·数据库·python