14

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

我找到了一种使用Saaspose执行此操作的基本方法,它可以让您将 PDF 转换为 HTML 文件。但是,这样做存在一些问题,例如使用 SVG、图像、定位、字体等。

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

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

在此处输入图像描述

我想将其转换为单列设计 HTML 文件。如果有图像,我也希望它们返回。

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

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

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.

4

4 回答 4

15

1)下载.exe文件并解压到一个文件夹:http: //sourceforge.net/projects/pdftohtml/

2)创建一个 .php 文件,并放置此代码(假设 pdftohtml.exe 位于该文件夹内,源代码 sample.pdf 也是):

<?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,你会看到转换后的文件(取决于页数..)

ps 我不知道,但也存在许多商业或试用 api。

于 2013-12-03T09:59:39.677 回答
7

使用Xpdf的跨平台解决方案:

下载适当的Xpdf 工具包并将其解压缩到脚本目录中的子目录中。假设它被称为“/xpdftools”。

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

$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- 没有错误。
  • 1- 打开 PDF 文件时出错。
  • 2- 打开输出文件时出错。
  • 3- 与 PDF 权限相关的错误。
  • 99- 其他错误。
于 2018-04-18T21:17:14.340 回答
2

您实际上要做的是重排 PDF 文件。我不确定这是否存在,并且充其量很难做到。

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

我在这里写了一篇文章,解释了为什么我认为重排 PDF 存在缺陷: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/

于 2013-02-14T10:10:59.713 回答
0

您希望从您发布的图形中实现的实际上是图形的 OCR 转换。 http://www.phpclasses.org/package/2874-PHP-Recognize-text-objects-in-graphical-images.html

于 2013-10-17T12:53:07.253 回答