PDFLib TET PHP: невозможно извлечь изображения

Мне удалось установить TET (php_tet.dll) на Windows 8.1 + Xampp, и у меня нет проблем с преобразованием PDF в текст, но мне не повезло с извлечением изображений.

Я использую пример «image resources.php» (и «image_extractor.php»), который должен «печатать» некоторую информацию об изображениях (x, y, ширина, высота, альфа и т. д.) в файле PDF. Также необходимо сохранить/распаковать все доступные (или любые) изображения в файлы (tiff, jpg).

Примеры можно найти здесь: http://goo.gl/ZeDlc0.

Часть с информацией об изображении работает, но файлы не извлекаются.

У меня нет проблем с извлечением текста в файл TXT в той же папке. Так я могу писать туда?

Что-то не так с моим SEARCHPATH или что-то другое?

МОЯ ПОПЫТКА:

Исходный пример выдает ОШИБКУ:

Error 1016 in open_document(): Couldn't open PDF file 'FontReporter.pdf' for reading (file not found)

Поэтому я изменил SEARCHPATH:

/* global option list */
$globaloptlist = "searchpath={{../data} {../../data} }";

с расположением моего файла PDF:

/* global option list */
$globaloptlist = "searchpath={{D:\Workshop\www\TET\data} }";

Теперь у меня есть некоторые выходные данные через print/echo:

page 7: 208x277pt, alpha=0, beta=0 id=0, 595x750 pixel, 1x8 bit Indexed 
page 7: 208x277pt, alpha=0, beta=0 id=1, 595x750 pixel, 1x8 bit Indexed

Метод $tet->write_image_file возвращает 10, что означает "Я могу извлечь файл TIFF".

Но никакие изображения не извлекаются в моей папке pdf или где-либо еще...


person Sams    schedule 16.02.2014    source источник


Ответы (2)


Каким-то образом изображения экспортируются в D:\workshop\xampp\apache

В опции FILENAME мне нужно установить АБСОЛЮТНЫЙ путь и имя файла...

$path = str_replace('\\', '/', __DIR__);

$imageoptlist = $baseimageoptlist . " filename {".$path."/out/" .
    $outfilebase . "_p" . $pageno . "_I" . $ti->imageid . "}";

    if ($tet->write_image_file($doc, $ti->imageid, $imageoptlist) == 0){
       print("Error " . $tet->get_errnum() . " in " .
          $tet->get_apiname() . "(): " . $tet->get_errmsg());
 }
person Sams    schedule 16.02.2014

это именно то, что я нашел в руководстве TET (глава 3.9, раздел «PHP»):

File name handling in PHP 
Unqualified file names (without any path component) and relative file names are 
handled differently in Unix and Windows versions of PHP:
- PHP on Unix systems will find files without any path component in the directory
  where the script is located.
- PHP on Windows will find files without any path component only in the directory
  where the PHP DLL is located.

Итак, я думаю, ожидается, что вам придется немного скорректировать образец для ваших нужд.

person Rainer    schedule 17.02.2014
comment
это немного странно, потому что, когда я сохраняю текстовый файл (извлекаю текст из pdf) без какого-либо пути, файл создается в том же каталоге, что и файл PHP, но с изображениями без пути я нашел их в моей папке apache... но моя DLL в /PHP/ext/, которого нет в папке apache. Ведь спасибо! - person Sams; 18.02.2014