如何将 PDF 转换为 HTML?

Posted

技术标签:

【中文标题】如何将 PDF 转换为 HTML?【英文标题】:How to convert PDF to HTML? 【发布时间】:2012-01-12 06:57:59 【问题描述】:

是否有合适的库可用于将 PDF 转换为 html 或其他可以轻松转换为 HTML 的格式?

我搜索了类似的问题,但没有成功。

我希望能够从 PDF 中提取文本,可能是图像。我不想在 HTML 中嵌入 PDF。

【问题讨论】:

我知道这是很久以前的事了,但如果不介意,你最后用的是什么? 【参考方案1】:

如果您使用的是 Linux,请尝试pdftohtml

sudo apt-get install poppler-utils
pdftohtml -enc UTF-8 -noframes infile.pdf outfile.html

在 MacOS 上(使用 homebrew)pdftohtml 可以安装:

brew install pdftohtml

开源电子书转换器Calibre 还可以将 PDF 文件转换为 HTML,适用于 MacOS、Windows 和 Linux。

【讨论】:

请注意所有布局都将消失。 是否有内联图像,所以我不需要托管 jpgs? @chovy 提供 -dataurls 选项以生成内联图像,提供 -c 以生成复杂的 html,每个 pdf 页面在单独的 html 页面上,页面布局或多或少相同,我注意到图像在每一页上,生成框和其他装饰作为背景图像,同时提取文本并显示在背景图像的前面,使布局大致相同,有一些小的重叠,但是结果很有趣,使用示例:pdftohtml -dataurls -c pdf_file_with_bookmarks.pdf sample_output.html 如何在arch上安装?【参考方案2】:

就像我在上面评论中提到的,绝对可以使用工具 Able2Extract7 将 pdf 转换为 html,该工具可以从here下载

我已经使用这个工具将近 2 年了,我对它非常满意。此工具可让您将 PDF 转换为 Word、Excel、PowerPoint、Publisher、HTML、OO 等。查看截图

小提示:此工具不是免费软件。

HTH

【讨论】:

该工具擅长将pdf准确转换为.html或.docx。我将它与 Calibre 一起使用,将 .pdf 文件预处理为 .html 或 .docx,因此它可以在我的电子阅读器(Kindle 或 Sony)上正确呈现。 实际上,pdf.investintech.com 他们允许您在线将 PDF 转换为 HTML。我尝试使用研究论文,转换非常准确,除了数学公式。一个缺点是它不是很聪明,例如,每一行都被包裹到一个绝对定位的新 div 中。 为什么在 *** 上对这个问题的每一个回答都像是付费解决方案的广告? @JayCroghan 早在 2012 年,实际上还没有可靠的免费软件。 @SiddharthRout 似乎现在还没有任何很棒的免费软件。【参考方案3】:

下载

pdfbox-2.0.3.jar fontbox-2.0.3.jar preflight-2.0.3.jar xmpbox-2.0.3.jar pdfbox-tools-2.0.3.jar pdfbox-debugger-2.0.3.jar

来自http://pdfbox.apache.org/

 import java.io.InputStream;
 import java.io.IOException;
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.tools.PDFText2HTML;

    // .....
    try 
        InputStream is = // ..... Read PDF file
        PDDocument pdd = PDDocument.load(is); //This is the in-memory representation of the PDF document.
        PDFText2HTML converter = new PDFText2HTML(); // the converter
        String html = converter.getText(pdd); // That's it!
        pdd.close();
        is.close();
     catch (IOException ioe) 
        // ......
    

请注意:图像不会被推送到 HTML 输出。

【讨论】:

这个库似乎工作得更好——但它会产生无效的、无法解析的 HTML。这对于这样一个 Apache 项目来说是相当令人失望的。【参考方案4】:

将 PDF 转换为 HTML 并不难。但是,有许多在线选项可能会将您的数据暴露给第三方。按照这些步骤操作,效果很好。

    打开the PDF2HTMLEX page。 (您可以按照我提到的后续步骤进行操作,也可以按照页面上的说明进行操作。)

    The package is available for download for Windows from here.

    从许多可用的选项中,我建议下载“pdf2htmlEX-win32-0.14.6-upx-with-poppler-data.zip(pdf2htmlEx.exe 与 UPX 打包)”

    下载解压后,只需一个 cmd 命令即可完成转换。

    C:\Users\kjk\Downloads\pdf2htmlEX-win32-0.14.6-upx-with-poppler-data>pdf2htmlEX.exe c:\1\abc.pdf
    

    最终命令:

    pdf2htmlEX.exe c:\1\abc.pdf
    

    (您当然可以缩短文件夹的名称,但是,我保持它与解压缩下载后看到的相同。我假设您可以将 cmd 中的目录更改为所需的文件夹,否则谷歌如何。)

abc.pdf 将被转换为 HTML 并以 abc.html 的形式保存在与您的 exe 相同的文件夹中。

【讨论】:

在mac上你可以使用brew install pdf2htmlEX【参考方案5】:

是的,这绝对是可能的。 如果你在 ubuntu linux 上

apt-get install pdftohtml

然后

pdftohtml myFile.pdf myFile.htm -c -noframes

如果您想查看所有标志的含义,只需键入

pdftohtml

如果您不在 linux 上,可以使用大量工具来实现这一点。

【讨论】:

方向不对,问题是pdf转html 有点晚了,但是看参数,好像OP的意思是pdftohtml 看起来pdftohtml 也可以通过 TeX Live 在 Windows 上使用:tug.org/texlive【参考方案6】:

这是 Linux pdfgrepsed 的一种可能性

sudo apt install pdfgrep

pdfgrep  .yourdoc.pdf | sed '/^$/d'| sed -e 's/^%%/<p>%%/'| sed -e 's/^--/<p>--/' | sed -e 's/--$/--<p>/'> yourdoc.html

要正确格式化,您需要使用sed 相应地指定正则表达式。

【讨论】:

以上是关于如何将 PDF 转换为 HTML?的主要内容,如果未能解决你的问题,请参考以下文章

如何将html文件转成pdf 在线转换

如何将现代 HTML 转换为 PDF

如何将html模板(带图像)转换为pdf?

如何将 PDF 转换为 HTML?

如何将html内容转换为pdf? [复制]

如何使用php将html转换为pdf?