Конвертировать PDF в HTML в PHP?

Я хочу иметь возможность конвертировать PDF-файл в HTML-файл через PHP, но у меня возникли некоторые проблемы.

Я нашел основной способ сделать это с помощью 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 ответа

Решение

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-интерфейсов.

Кроссплатформенное решение с использованием 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 - Другая ошибка.

По сути, вы хотите переформатировать 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/

Что может быть лучше для вас, так это функциональность извлечения текста PDF и изображения PDF из JPedal. Вполне вероятно, что мы посмотрим на размещение этого в облаке, если PDF в HTML5 пойдет хорошо.

Извлечение текста: http://www.idrsolutions.com/pdf-to-text-conversion/

Извлечение изображения: http://www.idrsolutions.com/extract-images-from-pdf/

То, что вы хотите добиться с помощью размещенного вами графического изображения, - это фактически преобразование графического текста в OCR. http://www.phpclasses.org/package/2874-PHP-Recognize-text-objects-in-graphical-images.html

Другие вопросы по тегам