首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中将PDF转换为HTML?

在PHP中将PDF转换为HTML?
EN

Stack Overflow用户
提问于 2013-02-09 07:02:46
回答 4查看 74.9K关注 0票数 13

我想能够通过PHP将PDF文件转换为HTML文件,但遇到了一些麻烦。

我找到了一种使用Saaspose的基本方法,它可以让你将PDF转换成HTML文件。然而,这也存在一些问题,例如SVG、图像、定位、字体等的使用。

我所需要的是能够从PHP文件中抓取文本和与之相关的任何图像,然后以线性格式显示它,而不是使用绝对定位格式化它。

我的意思是,如果PDF看起来像这样:

我想把它转换成一个单独的列设计HTML文件。如果有图片,我也希望它们能被返回。

这在PHP中是可能的吗?我知道我可以简单地从PDF文件中抓取文本,但是抓取图像呢?

另一个问题是,我希望所有内容都是内联的,因为它是在单个文件中提供给客户端的。目前,我可以通过一些代码使用我的设置来做到这一点:

代码语言:javascript
复制
for ($i = 0; $i < $object_number; $i++) {
                $object = $html->find("object")->find("embed")->eq($i);
                $embed = file_get_contents("Output/OutputHtml/" . $object->attr("src"));
                array_push($converted_obj, $embed);
                array_push($original_obj, $object);
            }

            for ($i = 0; $i < $object_number; $i++){
                pq($original_obj[$i])->replaceWith($converted_obj[$i]);
            }

它抓取所有的SVG文件并以内联方式显示它们。使用图片会更容易,因为我可以使用base64

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-12-03 17:59:40

1)下载.exe文件并解压到一个文件夹:

2)创建一个.php文件,并放入以下代码(假设pdftohtml.exe和源sample.pdf都在该文件夹中):

代码语言:javascript
复制
<?php
$source_pdf="sample.pdf";
$output_folder="MyFolder";

    if (!file_exists($output_folder)) { mkdir($output_folder, 0777, true);}
$a= passthru("pdftohtml $source_pdf $output_folder/new_file_name",$b);
var_dump($a);
?>

3)进入MyFolder,您将看到转换后的文件(取决于页数..)

附注:我不知道,但也有很多商业或试用的apis。

票数 15
EN

Stack Overflow用户

发布于 2018-04-19 05:17:14

使用的跨平台解决方案

下载适当的Xpdf tools包,并将其解压缩到脚本目录下的一个子目录中。让我们假设它被称为"/xpdftools“。

将这样的代码添加到php脚本中:

代码语言:javascript
复制
$pdf_file = 'sample.pdf';
$html_dir = 'htmldir';
$cmd = "xpdftools/bin32/pdftohtml $pdf_file $html_dir";

exec($cmd, $out, $ret);
echo "Exit code: $ret";

成功执行脚本后,htmldir目录将包含转换后的html文件(每个页面位于一个单独的文件中)。

Xpdf工具使用以下退出代码:

  • 0 -无error.
  • 1 -打开PDF file.
  • 2时出错-打开输出file.
  • 3时出错-与PDF permissions.
  • 99相关的错误-其他错误。
票数 6
EN

Stack Overflow用户

发布于 2013-02-14 18:11:00

您实际上要做的是对PDF文件进行回流。我不确定这是否存在,充其量也是很难做到的。

可以编写一些代码来完成特定文件所需的操作,但对于一般情况,我认为这样做是不可能的。

我在这里写了一篇文章,解释了为什么我认为reflowing是有缺陷的:http://www.planetpdf.com/enterprise/article.asp?ContentID=PDF_Reflow_in_Microsoft_Word_2012_Is_it_any_good

特别有趣的是开头的一段“让我们用报纸上的故事来说明这个问题。”

你可能想看看IDRsolutions是什么(为了提高透明度,我就在这里工作!)必须提供。

我们目前正在将我们的PDF转成HTML5和PDF转换软件放在云端:http://www.idrsolutions.com/cloud-pdf-converter/

可能更适合您的是JPedal的PDF文本提取和PDF图像提取功能。如果PDF到HTML5的转换进展顺利,我们很可能也会考虑将其放到云中。

文本提取:http://www.idrsolutions.com/pdf-to-text-conversion/

图像提取:http://www.idrsolutions.com/extract-images-from-pdf/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14782751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档