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

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

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

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

© lissyara 2006-10-24 08:47 MSK

Поставить виниры и улучшить улыбку

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