Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Русификация
  COM-порт
  Монтирование образов
  dd
  burncd
  Консоль
  polling
  redirect_port
  wolf3d
  W.O.L.
  HDD->HDD
  bsdstats
  pdf в html
  monitord
  monit
  dvd в avi
  LAM
  Контроль провайдера
  pppd
  ru man
  geom_uzip
  colorize
  nettop
  немного о ssh
  установка по сети
  ClamAV mirror
  BlueTooth
  WiFi WPA
  iftop
  iPod
  2 CD -> 1 DVD
  ipcalc
  LACP и VLAN
  FFS из-под WinXP
  queues
  NFS & Win2k3
  Dynamic DNS
  ProFTPD+iconv
  deltup, xdelta, bdelta
  Приглашение csh/tcsh
  настрока bash
  Lan over Bluetooth
  pppoe
  метаданные exif
  dd : бэкапируем windows
  mozilla autoconfig
  Proxy Auto Configuration
  NNTP сервер
  Rinetd
  ISO DVD FreeBSD
  my disc1
  sftp+chroot
  SendXMPP
  APCUPSD
  Видеонаблюдение
  Настройка аудиоплеера на ximp3
  HDD(mbr) -> HDD(gpt)
  mc 4.6.2
  Динамический DNS
  axel
  LiveCD
  NAS на MPD
  backup конфигов на почту
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


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

оценить статью:

100kg, 2006-10-07 в 11:16:28

вот у меня есть udc(universal document convertor), конвертит почти всё, джву в пдф! кароче весчь под винь канечно едёт :) но вот кряка нету и на каждои страничке после конверта стоит логотип компании :((

ymsssg, 2006-10-12 в 12:32:42

Спасибо за наводку на интересную утилиту! Так держать!


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

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
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 9 чел.
За последние 30 мин было: 48 человек
За сегодня было
9 показов,
5 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.1193 секунд
Из них PHP: 50%; SQL: 50%; Число SQL-запросов: 77 шт.
Исходный размер: 103124; Сжатая: 17698