【记录】Python3| 将 PDF 转换成 HTML/XML(✅⭐⭐⭐⭐pdf2htmlEX)


本文将会被汇总至 【记录】Python3|2024年 PDF 转 XML 或 HTML 的第三方库的使用方式、测评过程以及对比结果(汇总),更多其他工具请访问该文章查看。


文章目录

  • pdf2htmlEX 使用体验与评估
    • 1 安装指南
    • 2 测试代码
    • 3 测试结果
      • 3.1 转 HTML 的结果
      • 3.2 转 XML 的结果
    • 4 总体评价:✅⭐⭐⭐⭐
    • 5 补充说明

pdf2htmlEX 使用体验与评估

Github 阅读:https://github.com/shandianchengzi/PDF2HTML_Samples/blob/main/results/pdf2htmlEX.md
CSDN 阅读:【记录】Python3| 将 PDF 转换成 HTML/XML(✅⭐⭐⭐⭐pdf2htmlEX)

参考:pdf2htmlEX:将 PDF 转换为 HTML 的高效工具

PDF2HTMLEX 是一款功能强大的 PDF 转 HTML 工具,尽管它并不通过 Python 的包管理工具 pip 进行安装,但其易用性和转换效果仍然备受赞誉。下面,我们将详细介绍如何安装 PDF2HTMLEX,并通过一个测试案例来展示其使用方法和效果。

1 安装指南

PDF2HTMLEX 提供了 Windows 版本的 EXE 文件供用户下载和使用。您可以通过点击以下链接下载最新版本的 PDF2HTMLEX:pdf2htmlEX Windows Version | RubyPdf Technologies。

下载完成后,您可以直接运行 EXE 文件进行使用。安装过程简单明了,按照提示完成即可,如下图所示。

在这里插入图片描述

2 测试代码

为了更好地帮助您理解 PDF2HTMLEX 的用法,我们提供了一个测试代码示例。您可以在以下 GitHub 仓库中找到相关代码和样本文件:https://github.com/shandianchengzi/PDF2HTML_Samples/tree/main/python_samples/test_pdf2htmlEX。

请注意,该测试代码示例使用了相对路径来指定文件路径。这是因为 PDF2HTMLEX 在处理文件路径时存在一个已知的 bug。当使用绝对路径时,它会在输出文件的路径前自动添加 ./,导致绝对路径不可用并报错。

例如如下报错:

`Error: Cannot open ./D:\Github\PDF2HTML_Samples\python_samples\test_pdf2htmlEX\outputs\to_html_table_test.html for writing`

以下是测试代码示例的目录结构:

目录结构

3 测试结果

3.1 转 HTML 的结果

经过测试,PDF2HTMLEX 在将 PDF 转换为 HTML 的过程中表现出色。转换后的 HTML 页面保留了原始 PDF 的格式和布局,使得阅读体验得以延续。然而,需要注意的是,在某些情况下,转换后的大纲可能会出现问题,例如出现重复的章节标题(如下重复出现 10.12)。

以下是转换后的 HTML 页面示例:

转 HTML 结果1
转 HTML 结果2

3.2 转 XML 的结果

需要注意的是,PDF2HTMLEX 目前并不支持将 PDF 直接转换为 XML 格式。因此,在测试过程中,我们无法提供相关的转换结果。

4 总体评价:✅⭐⭐⭐⭐

总体来说,PDF2HTMLEX 是一款非常优秀的 PDF 转 HTML 工具。尽管在处理文件路径时存在一些小问题,但这并不影响其出色的转换效果。

它支持多种转换参数,并且能够在保留原始 PDF 格式的基础上,生成易于阅读和编辑的 HTML 页面。参数详情可以点此跳转。

5 补充说明

在转换过程中,PDF2HTMLEX 转换的时候能够保留格式,不过不会自动设置成 DOM 树节点。用户可以用不同的 className 来获得章节,挺方便的!

此外,PDF2HTMLEX 还具备一些特殊功能,例如根据数字区分的书签功能,使得用户在阅读时能够快速定位到所需的章节。如上11.2会被识别成一个小章。


本文将会被汇总至 【记录】Python3|2024年 PDF 转 XML 或 HTML 的第三方库的使用方式、测评过程以及对比结果(汇总),更多其他工具请访问该文章查看。


本账号所有文章均为原创,欢迎转载,请注明文章出处:https://blog.csdn.net/qq_46106285/article/details/138356607。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/5434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx知识点汇总表格总结

Nginx在web应用中非常广泛,尤其是现在前后端分离项目中,前端的项目打包之后一般都习惯部署在Nginx下,方便利用Nginx做静态资源的缓存处理,动静分离,以及做反向代理,负载均衡,以及其他安全方面的…

闪存存储和制造技术概述

闪存存储技术 引言 性能由高到低排序:SLC -> MLC -> TLC -> QLC 根据这个排序读写速度也越来越低,价格越来越便宜 1. SLC SLC(Single-Level Cell,单层单元): SLC 闪存具有最高的性能、耐用性和可…

【专篇】DDR3 SDRAM-01总体介绍

概念 DDR3 SDRAM(Double-Data-Rate 3 Synchronous Dynamic Random-Access Memory,第三代双倍速率同步动态随机存取存储器)是计算机存储技术的一种重要进步,它在前代DDR2 SDRAM的基础上进行了多项改进和优化。以下是DDR3 SDRAM的特点介绍: 双倍速率(DDR):DDR3 SDRAM采用…

C++:继承性_程序

编译器&#xff1a;vs2022 main.cpp #include <iostream> #include <iomanip> #include "person.h"const int Sum 2;class Group { protected:PostGra st[Sum];int sum; public:Group();void Input();void SortByID();void Output(); };Group::Group(…

c#数据库: 4.修改学生成绩

将4年级的学生成绩全部修改为100分,。修改前的学生信息表如图所示: using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks;namespace StudentUpdate {internal class Program{s…

java 面试 -- 深拷贝与浅拷贝

一、浅拷贝 浅拷贝是指拷贝对象时仅仅拷贝对象本身和对象中的基本数据类型&#xff0c;而不拷贝对象中的引用类型。换句话说&#xff0c;对于对象中的引用类型&#xff0c;浅拷贝只是拷贝了引用&#xff0c;而没有拷贝引用的对象。因此&#xff0c;原对象和拷贝后的对象共享同…

Multi-Thread TCP Server Client

prerequisite knowledge: Basic TCP Server & Client: URL Server #include <stdio.h> #include <string.h> #include <unistd.h> // read and write (TCP); sendto and recvfrom (UDP) #include <arpa/inet.h> // 包含#include <sys/socket.…

Ubuntu如何更换 PyTorch 版本

环境&#xff1a; Ubuntu22.04 WLS2 问题描述&#xff1a; Ubuntu如何更换 PyTorch 版本考虑安装一个为 CUDA 11.5 编译的 PyTorch 版本。如何安装旧版本 解决方案&#xff1a; 决定不升级CUDA版本&#xff0c;而是使用一个与CUDA 11.5兼容的PyTorch版本&#xff0c;您可…

Mac远程桌面windows11

文章目录 一、Mac安装Microsoft Remote Desktop二、Window11打开远程登录权限三、常见问题 一、Mac安装Microsoft Remote Desktop 下载地址&#xff1a;点击这里官方下载 基本不用看&#xff0c;凭感觉用就行。搞不定详情见&#xff1a;官方说明 二、Window11打开远程登录权…

2024年4月个人工作生活总结

本文为 2024年4月工作生活总结。 研发编码 excel创建直方图 因工作需要&#xff0c;在excel学习使用了直方图。下面是文字版。 加载工具库&#xff1a; 直方图可在“数据”->"数据分析"中找到&#xff0c;如无&#xff0c;则要加载之。文件->选项->加载…

c#数据库: 10.调用存储过程查询信息,并显示在窗体上

查询女生信息&#xff0c;并将信息显示在窗体上: 原数据表//右键数据库名,新建查询 ------------- 新建查询窗口,添加新建存储过程Procedure_GetGirls1和查询代码如下 : CREATE PROCEDURE dbo.Procedure_GetGirls1 /*存储过程名称*/ AS SELECT * f…

[React] 手动实现CountTo 数字滚动效果

这个CountTo组件npmjs里当然有大把的依赖存在&#xff0c;不过今天我们不需要借助任何三方依赖&#xff0c;造个轮子来手动实现这个组件。 通过研究其他count to插件我们可以发现&#xff0c;数字滚动效果主要依赖于requestAnimationFrame 通过js帧来让数字动起来&#xff0c;…

【docker】Spring Boot3.x 打包 Docker容器

Docker化Spring Boot应用 创建文件夹 demo mkdir democd demo创建Dockerfile # 两个 openjdk 二选一 #FROM openjdk:17-jre-alpineFROM eclipse-temurin:17MAINTAINER chengxuyuanshitang <chengxuyuanshitangXX.com>RUN mkdir -p /workspace/java/demoCOPY demo.ja…

Python 与 TensorFlow2 生成式 AI(五)

原文&#xff1a;zh.annas-archive.org/md5/d06d282ea0d9c23c57f0ce31225acf76 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第十二章&#xff1a;用生成式人工智能玩视频游戏&#xff1a;GAIL 在之前的章节中&#xff0c;我们已经看到如何使用生成式人工智能来生成…

LVGL自定义滑动

触摸和编码器都可以操作 typedef struct {lv_obj_t* obj;int16_t x;int16_t y;int16_t width;int16_t height; }pos_and_size_t;typedef struct {lv_obj_t* obj;lv_coord_t height;lv_coord_t width;lv_coord_t width_pad;lv_coord_t height_pad;lv_coord_t child_widget;lv_co…

Mybatis.net + Mysql

项目文件结构 NuGet下载Mybatis.net相关包&#xff1a;IBatisNet 安装完成后&#xff0c;会显示在&#xff0c;在已安装页面。同时&#xff0c;在管理器中的引用列表中&#xff0c;会多出来两个引用文件 IBatisNet.CommonIBatisNet.DataMapper 安装 Mysql.data。 注意&#xff…

【设计模式】14、strategy 策略模式

文章目录 十四、strategy 策略模式14.1 map_app14.1.1 map_app_test.go14.1.2 map_app.go14.1.3 navigate_strategy.go 十四、strategy 策略模式 https://refactoringguru.cn/design-patterns/strategy 需求: client 知道很多不同的策略, 希望在运行时切换. 场景示例: 就像高…

使用一等对象函数重构策略模式

目录 经典的策略模式 使用函数重构策略模式 选择最佳策略的简单模式

C++ 中 scanf 的高阶用法:scanf(“%[a-z]“,ch);

● C 中 scanf 的高阶用法&#xff1a;scanf("%[a-z]",ch);语句 scanf("%[a-z]",ch); 表示只读入小写字母入字符串。任何包含非小写字母的字符串&#xff0c;将不能读入&#xff0c;自然也不可能有输出。例如&#xff1a; 运行下面代码&#xff1a;输入 ab…