如何将 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 pdfgrep
和 sed
的一种可能性
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?的主要内容,如果未能解决你的问题,请参考以下文章