Конвертировать 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