Нашел интересный пример, как узнать количество страниц в документе PDF, достаточно применить регулярное выражение:
Где $pdf_filename - путь к файлу
Но оказалось, что тут просто считывается весь файл (может и очень большой), после чего, мы считаем количество страниц в файле с помощь регулярного выражения. Каждая страница будет содержать ключик Page и номер страницы. Это очень расточительный путь.
Гораздо правильнее поискать в файле параметр где указано количество страниц, а не самим подсчитывать:
$pdf_content = file_get_contents($pdf_filename); $count = preg_match_all("/\/Page\W/", $pdf_content, $matches); echo "Count: {$count}";
Где $pdf_filename - путь к файлу
Но оказалось, что тут просто считывается весь файл (может и очень большой), после чего, мы считаем количество страниц в файле с помощь регулярного выражения. Каждая страница будет содержать ключик Page и номер страницы. Это очень расточительный путь.
Гораздо правильнее поискать в файле параметр где указано количество страниц, а не самим подсчитывать:
$f = fopen($pdf_filename, "r"); while(!feof($f)) { $line = fgets($f,255); if (preg_match('/\/Count [0-9]+/', $line, $matches)){ preg_match('/[0-9]+/',$matches[0], $matches2); if ($count<$matches2[0]) $count=$matches2[0]; } } fclose($f); echo "Count: {$count}";
Считываем файл построчно и анализируем пока не найдем искомое
построчно
ОтветитьУдалитьне работает
ОтветитьУдалитьРаботает, только в конце нужно не fclose($fp);
ОтветитьУдалитьа fclose($f);