|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> Мелочи
—> pdf в html
Конвертирование pdf в html
Автор: serge.
Данный материал может пригодится для организации веб-доступа к большому архиву pdf документов. Причем исключается необходимость передачи самого pdf документа клиенту.
Для осуществления этого понадобится утилита pdftohtml, которая имеется в портах FreeBSD.
[serge@server /usr/ports]$ make search name=pdftohtml
Port: pdftohtml-0.36_4
Path: /usr/ports/textproc/pdftohtml
Info: A command-line tool for converting pdf-files into html
Maint: erwin@FreeBSD.org
B-deps:
R-deps: expat-2.0.0_1 fontconfig-2.3.2_3,1 freetype2-2.1.10_3 ghostscript-gnu-7.07_15
gsfonts-8.11_2 jpeg-6b_4 libdrm-2.0.1_1 pkgconfig-0.20 png-1.2.8_3
xorg-libraries-6.9.0
WWW: http://sourceforge.net/projects/pdftohtml/
| Устанавливаем pdftohtml. Установка из портов удобна тем, что проверяется наличие всех необходимых пакетов для работы программы. И если чего-то нет, то это так же будет установлено автоматически.
[serge@server /usr/ports]$ cd /usr/ports/textproc/pdftohtml
[serge@server /usr/ports]$ make install clean
| Для того чтобы иметь возможность создавать html документы в кодировке koi8-r дополнительно устанавливаем языковой пакет для xpdf.
[serge@server /usr/ports]$ cd /tmp
[serge@server /tmp]$ wget ftp://ftp.foolabs.com/pub/xpdf/xpdf-cyrillic.tar.gz
[serge@server /tmp]$ tar xzf xpdf-cyrillic.tar.gz
[serge@server /tmp]$ cd xpdf-cyrillic
| Необходимо скопировать файлы кодировок в /usr/local/share/xpdf/cyrillic. У меня такой диры не оказалось, значит создаем ее.
[ /tmp/xpdf-cyrillic]$ mkdir -p /usr/local/share/xpdf/cyrillic
[ /tmp/xpdf-cyrillic]$ cp Bulgarian.nameToUnicode /usr/local/share/xpdf/cyrillic/
[ /tmp/xpdf-cyrillic]$ cp KOI8-R.unicodeMap /usr/local/share/xpdf/cyrillic/
| Так же необходимо добавить содержимое файла add-to-xpdfrc в файл конфигурации xpdfrc. Такой файл оказался в /usr/X11R6/etc/xpdfrc, но все в нем было закоментировано. Рекомендуемое место расположения конфига xpdfrc - это /usr/local/etc. Туда его и создаем.
[serge@ /tmp/xpdf-cyrillic]$ cat add-to-xpdfrc > /usr/local/etc/xpdfrc
| Пробуем. Создает в директории вэб-сервера следующий каталог. В моем случае так:
[serge@ /tmp/xpdf-cyrillic]$ mkdir /usr/local/www/apache/data/testpdf
[serge@ /tmp/xpdf-cyrillic]$ cd /usr/local/www/apache/data/testpdf
[serge@ /usr/local/www/apache/data/testpdf]$ pdftohtml -q -c -enc KOI8-R -dev jpeg \
? -noframes -nomerge /data/eBooks/test.pdf ./test.html
| -q - не выводит сообщения и ошибки (удобно при работе из php)
-с - создание комплексного документа (с изображениями)
-enc KOI8-R - кодировка html документа
-dev jpeg - формат для изображений
-nomerge - не соединять параграфы (учитывает отступы от обзацев)
-noframes - html страница без фреймов (имхо так удобнее читать)
/data/eBooks/test.pdf - откуда брать pdf
./test.html - как сохранять html
Проверяем
http://localhost/testpdf/test.html
Все должно работать.
PHP скрипт для конвертирования pdf на лету с подсчетом времени работы.
<?php
function time_start()
{
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$start_time = $mtime;
return $start_time;
}
function time_end()
{
$mtime2 = microtime();
$mtime2 = explode(" ",$mtime2);
$mtime2 = $mtime2[1] + $mtime2[0];
$end_time = $mtime2;
return $end_time;
}
$t1 = time_start();
system("pdftohtml -q -c -enc KOI8-R -dev jpeg -noframes -nomerge
/data/eBooks/test.pdf ./test.html");
include("test.html");
$t2 = time_end();
$time = substr($t2 - $t1,0,4);
echo "Время работы скрипта ".$time." сек";
?>
| В скрипте показан только сам процесс конвертирования pdf в html и вывод страницы пользователю. Далее уже каждый дополнит под свои нужды.
Хотелось бы отметить, что время конвертирования с ключем -c на много больше чем без него. Для документа объемом 50 листов формата А5 с изображениями составляет почти 20 сек (AthlonXP 2.5ГГц), без -с всего 4 секунды.
Все изложенное в статье проверялось на ОС FreeBSD 6.1, apache 2.2.2, php 5.1.4.
размещено: 2006-10-06,
последнее обновление: 2006-10-25,
автор: serge
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
|
Статистика сайта
|
Сейчас на сайте находится: 17 чел.
|
За последние 30 мин было: 78 человек
|
За сегодня было 1403 показов, 388 уникальных IP
|
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
|
Комментарии пользователей [2 шт.]