将 PDF 转换为 HTML,保持布局

2024-03-27

有哪些方法可以将 PDF 转换为 HTML?它可以是任何东西——在线服务、软件、图书馆。 (首选开源。在后一种情况下,首选 php 或 python。)它必须保留原始布局(包括页码、脚注等),保留图像(可以将它们组合为每页一个背景图像)并保留链接。它最好应该输出有效的 XHTML 并清理 PDF 功能(例如连字),但如果需要一些后处理,我可以接受。具有干净、相对语义的 HTML 输出的东西会很棒。

我发现的最接近的是扎姆扎尔网站 http://zamzar.org/,但它被链接阻塞了。 (此外,HTML 输出是一堆丑陋的绝对定位的 div,并且由于编码问题需要进行后处理。)


我知道两个选择。两者在视觉上看起来非常相似,但输出肯定不是语义的。

Python:PyMuPDF

安装 PyMuPDF:pip install pymupdf

import fitz

def to_html(filepath: str):
    doc = fitz.open(filepath)
    for i, page in enumerate(doc):
        text = page.getText("html")
        with open(f"pymupdf-page-{i}.html", "w") as fp:
            fp.write(text)
    doc.close()

pdf转html

在 debian 源代码中 (this one https://linux.die.net/man/1/pdftohtml)

pdftohtml -c
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 PDF 转换为 HTML,保持布局 的相关文章

  • 是否可以防止出现文件对话框?为什么?

    假设我有输入 类型 文件 元素 我想拦截 onclick 事件并防止在不满足条件时出现文件对话框 是否可以 如果不是的话 为什么 Soufiane 的代码要求您的页面上有一个名为 jQuery 的 Javascript 库 如果您没有 您可
  • 带有占位符文本的文本框,该文本会逐字符消失

    我正在寻找一种方法来构造带有日期字段占位符文本的文本框 占位符文本将为 xx xx xxxx 并在用户键入时逐个字符消失 留下斜杠 我遇到了以下两个问题 它们似乎解决了使文本立即消失的问题 HTML CSS 制作一个文本框 其中的文本显示为
  • Excel 到 JSON 的 JavaScript 代码?

    我想将excel表格数据转换为json 它必须是动态的 因此有一个上传按钮 用户可以在其中上传 Excel 工作表 然后将数据转换为 json 您能给我提供 javascript 代码吗 我尝试了 SheetJS 但无法弄清楚 我更喜欢直接
  • 为什么自动关闭脚本元素不起作用?

    浏览器无法正确识别的原因是什么 只有这一点是公认的 这是否打破了 XHTML 支持的概念 注意 此声明至少对于所有 IE 6 8 beta 2 都是正确的 XHTML 1 规范的非规范性附录 HTML 兼容性指南 指出 3 元素最小化和空元
  • IE9 上的 box-shadow 无法使用正确的 CSS 进行渲染,但适用于 Firefox、Chrome

    我正在尝试模拟浮动模态框类型 但 IE9 及其框阴影实现存在问题 这是我正在使用的代码的摘要 它可以重复该问题
  • 将 PDF 存储在 MySQL 数据库中

    我正在开发一个应用程序 我需要创建 PDF 格式的发票 我在用着pdf包 https github com psliwa PdfBundle并且 PDF 文件已正确创建 public function helloAction format
  • 由于触摸事件上的类切换/高度变化而导致可点击区域错位

    如果您切换上方元素的高度 则触摸设备上的链接可点击区域会出现奇怪的行为 如果您运行以下代码片段 例如 将其保存在本地并使用 chrome 来模拟触摸事件 您会注意到哈希值 mylink在某些情况下 您没有点击红色链接区域 会将 url 添加
  • CSS 轮廓宽度不起作用

    我正在尝试将输入元素的轮廓宽度设置为焦点 无论我的设置如何 轮廓宽度都保持不变 就像它是无法更改的默认设置一样 这是来自 codepen 的示例 http codepen io FrenkyB pen mEaEyL editors 1100
  • HTML-Entity 转义以防止 XSS

    我有一些用户输入 在我的代码中 我确保对以下符号进行转义 gt amp lt gt lt gt gt gt OWASP https www owasp org index php XSS 28Cross Site Scripting 29
  • 如何仅提取 mysql 和 php 中具有非零值的列?

    我正在尝试从 mysql 数据库中提取并显示在网页上 仅非零列 哪一列的日期是 0000 00 00 我不想在网页上显示这些列 下面分别是HTML代码和php脚本
  • 如何在浏览器验证带有“必填”属性的字段后禁用提交按钮?

    我们使用以下 jQuery 来禁用提交按钮 以防止重复提交 服务器速度慢 jQuery document ready function SENDE BTN INAKTIV STELLEN input type submit click fu
  • C++:从字符串中删除所有 HTML 格式?

    我有一个字符串 其中可能包含 br 或 span span 标签或其他 HTML 字符 实体 我想要一种强大的方法来剥离所有这些并获取剩余的 UTF 8 字符 理想情况下 这应该是跨平台的 像这样的东西是理想的 http snipplr c
  • 如何在 Node.js 中将 HTML 转换为图像

    我需要在 Node 服务器上将 HTML 模板转换为图像 服务器将以字符串形式接收 HTML 我尝试过 PhantomJS 使用一个名为 Webshot 的库 但它不能很好地与 Flex 框和现代 CSS 配合使用 我尝试使用 Chrome
  • 如何删除空 html 标签(其中包含空格和/或其 html 代码)

    需要 preg replace 的正则表达式 这个问题没有在 另一个问题 中得到回答 因为并非我要删除的所有标签都不为空 我不仅要从 HTML 结构中删除空标签 还要删除包含换行符以及空格和 或其 html 代码的标签 可能的代码是 删除匹
  • svg 圆不是用 javascript 绘制的

    我一直在尝试使用 HTML 中的 javascript 来进行 svg 操作的 hello world 我编写了下面的代码 虽然它生成了正确的 html 但我在浏览器中没有看到任何输出 也没有看到任何错误
  • ECHO MYSQL 结果显示空白页 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我知道这一定很简单 但我做不到 我需
  • 分页符不分页

    我想要分页符 但它不起作用 我试图发布整个代码 但它超出了字符数 我想知道什么可能导致分页符不起作用 media print div pagebreak display block important page break after al
  • 是否可以使用 CSS 设置禁用的 INPUT 元素的样式?

    我需要风格disabled
  • nested_form/cocoon:可以将表行用于嵌套字段吗?

    我通常不使用表格作为表单 但是当有嵌套表单时 使用nested form或cocoon gem时 可以将每组表单元素放在表格行中吗 对我来说 这似乎非常直观 表中的每一行都代表一个对象 但是 nested form 和 cocoon gem
  • 如何创建包含左对齐元素的宽度不确定的居中 div?

    我有几个统一的蓝色元素 div style display inline block 位于紫色 div 内的红色 div 内 Mockup https i stack imgur com ylTm9 png 图 我希望蓝色元素左对齐 一行中

随机推荐

  • 在 Python 中向已运行的 cmd 发送命令

    我有一个Python脚本可以绕过Windows中的UAC 绕过用户帐户控制 然后我需要能够以某种方式与打开的 CMD 进行通信并向其传递命令 例如 回声测试 我只能找到打开新命令并与其通信的代码 然而 这并没有帮助 因为我需要与我通过 UA
  • 如何在没有 UDID 的情况下跟踪 iOS5 上的下载

    谁知道如何在没有 UDID 的情况下跟踪 iOS 应用程序下载 通过网络广告 我认为这是不可能的 特别是如果用户从网站转到 AppStore 但一家名为 WDA 的公司似乎使这成为可能 http www lovefortech com 20
  • 无法序列化会话 Bean - 引发警告

    我正在使用 EclipseLink JPA 2 0 在 netbeans 中运行 JSF Primefaces tomcat 6 0 32 的环境 我的应用程序工作正常 但每次运行它时 我都会收到很多警告 指出无法序列化我的会话 bean
  • autovacuum (VACUUM) 是这个 PostgreSQL UPDATE 查询偶尔需要几个小时才能完成运行的原因吗?

    此 sql 查询通常只需要几分钟即可运行 update import parts ip set part manufacturer id pslc part manufacturer id from parts part supplier
  • Go 中的结构体大小

    我正在研究 Go 它看起来很有前途 我想弄清楚如何获取 go 结构的大小 例如 例如 type Coord3d struct X Y Z int64 我当然知道它是 24 个字节 但我想以编程方式知道它 您有任何想法如何做到这一点吗 罗杰已
  • 如何制作具有透明背景的OpenGL渲染上下文?

    渲染上下文通常在背景上有纯色 黑色或其他颜色 请参见下图 我想知道是否可以设置一个没有装饰且具有透明背景的窗口 同时允许我在其上渲染 OpenGL 内容 这会给人一种三角形漂浮在屏幕上的错觉 透明背景应该允许您看到桌面或可能位于其后面的其他
  • Silverlight 能否访问可访问 USB 端口的 .Net 库?

    我们有一个 Net 库 可以通过 USB 端口访问一些自定义硬件 我读到 Silverlight 包含 Net 运行时的子集 所以 我的问题是 这个子集足以让 Net 库运行吗 不可以 您不能使用从 Silverlight 内部访问 USB
  • 使用 plone.memoize.ram 使 memoize 无效/阻止

    我和 Zope 实用程序提供了一种执行网络进程的方法 由于结果在一段时间内有效 我正在使用plone memoize ram缓存结果 MyClass object cache cache key def do auth self adapt
  • GitHub,推送错误:远端意外挂断

    我现在无法将本地提交推送到 github 存储库 我收到一条错误消息 Counting objects 76 done Delta compression using up to 8 threads Compressing objects
  • 如何使用jquery发送int类型参数

    我正在构建一个 Web 服务 它将使用 jquery 与网页进行通信 我想构建我的 Web 服务 使其类型安全 而不需要在服务器端执行转换 如何使用 jquery 从客户端发出 ajax 调用到需要 int 值参数的服务器 编辑 我明白这是
  • 如何在 iOS 上使用 AVMutableComposition 和 CALayers 将多个 CALayer 添加到视频文件

    我想添加多个CALayer按时间顺序一个接一个 我可以使用此链接向视频文件添加一层Here https stackoverflow com q 5997677 1450762 现在我的问题是如何添加多个CALayer到视频文件 提前致谢 最
  • 如何在程序中包含数据对象文件(图像等)并访问符号?

    我使用以下命令将几个资源文件转换为 obj 文件objcopy我将它们与我的程序源代码链接起来 我可以使用以下代码很好地访问程序中目标文件内的符号 但只能使用 GCC G Cygwin extern uint8 t data asm bin
  • 为什么 Supervisor.start_child 不起作用

    我是 Elixir 的初学者 我有一个应用程序在 application ex 中启动一个自定义主管 代码 defmodule MyApp do use Application def start type args do import S
  • 如何使用 Python 提取在 HTML 页面 javascript 块中定义的 JSON 对象?

    我正在下载其中定义了数据的 HTML 页面 方法如下 我想提取 window blog data 中定义的 JSON 对象 有没有比手动解析更简单的方法 我正在研究 Beautiful Soap 但似乎找不到一种无需解析即可返回确切对象的方
  • 如何在phonegap应用程序中添加滚动条

    我正在 PhoneGap 中为 Android 平台开发一个应用程序 在此应用程序中 不显示滚动条 如何在我的应用程序中显示滚动条 这是我的示例活动 它将显示滚动条 public class MyActivity extends Droid
  • 如何在 Laravel 中为 20 分钟后的每条新记录制定调度程序任务?

    我有一个停车系统 我使用 Angular 6 Laravel 作为后端 但我有一个具体问题 我不知道正确的方法 公园有两个图腾 它们向我的服务器发送一个条目 只有当客户从出口走出图腾并进入付款区时 我才会检查客户是否无效 这是我的代码 当他
  • python中日志文件名存储在哪里?

    我有一个由多个模块组成的 Python 程序 main 模块创建一个文件变量log file用于记录输出 所有其他模块也需要写入该文件 但是 我不想将 主 模块导入到其他模块中 因为这将是一个非常奇怪的依赖项 更不用说由于循环依赖它甚至可能
  • 在父级构造函数中设置窗口所有者时遇到问题

    在 WPF 中 在父窗口的构造函数中将窗口的 Owner 属性设置为其父窗口是否有任何问题 不应该有吧 那么为什么我会得到一个XamlParseException从下面的代码 public partial class MainView Wi
  • 如何使用 sqlalchemy 将初始数据加载到数据库中

    我希望能够在使用 SQLAlchemy 创建表时自动加载数据 在 django 中 你有fixtures https docs djangoproject com en dev howto initial data 它允许您在创建表时轻松地
  • 将 PDF 转换为 HTML,保持布局

    有哪些方法可以将 PDF 转换为 HTML 它可以是任何东西 在线服务 软件 图书馆 首选开源 在后一种情况下 首选 php 或 python 它必须保留原始布局 包括页码 脚注等 保留图像 可以将它们组合为每页一个背景图像 并保留链接 它