在PHP中将PDF转换为HTML?

Cha*_*lie 12 php

我希望能够通过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]);
            }
Run Code Online (Sandbox Code Playgroud)

它抓取所有SVG文件并以内联方式显示它们.正如我可以使用的那样,图像会更容易base64.

T.T*_*dua 11

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);
?>
Run Code Online (Sandbox Code Playgroud)

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

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


hin*_*ost 6

使用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";
Run Code Online (Sandbox Code Playgroud)

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

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

  • 0 - 没有错误。
  • 1 - 打开 PDF 文件时出错。
  • 2 - 打开输出文件时出错。
  • 3 - 与 PDF 权限相关的错误。
  • 99 - 其他错误。