将PDF转换为HTML,保持布局

5
有哪些方法可以将PDF转换为HTML?可以是任何东西 - 在线服务、软件、库。(开源优先。在最后一种情况下,php或python将被优先选择。)它必须保持原始布局(包括页码、脚注等),保留图像(将它们合并成每页一个单独的背景图像是可以接受的)和保留链接。最好输出有效的XHTML并清理PDF特性,如连字,但如果需要某些后处理,我可以接受。最好具有干净、相对语义化的HTML输出。我找到的最接近的一个是zamzar.org,但它对链接进行了限制。(此外,由于编码问题,HTML输出是一堆丑陋的绝对定位的div,需要后处理。)

也许这应该在超级用户上发布? - Geoff
5个回答

5

我知道两种选项。它们在视觉上看起来非常相似,但输出肯定不是语义化的。

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()

pdftohtml

在 Debian 源代码中(此处

pdftohtml -c

4
使用PDFtoHTMLEx处理PDF文档,它可以生成完美的像素级HTML标记(定位的div)。
要获得语义化的HTML,可以使用transcript.py(我是作者)对文档进行后处理。这将生成包括标题、段落、列表和数据表在内的语义化HTML。请注意,标签是重构的(而不是提取的),因为Python代码正在寻找视觉设计约定,并根据布局进行决策。结构标签和语义信息通常不会出现在PDF中。

你的脚本只支持Python 3吗? - Konstantin
确实,你对Python 2.7的兼容性感兴趣吗?这不是什么大问题,我只是一个纯粹主义者。 - fmalina

2

我曾经使用过iText库,发现它很适合解析PDF结构(我用它来搜索文本)。 它是一个解析PDF并创建对象模型的库,因此您需要编写HTML生成器,但这应该不太困难。


1

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接