ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[apache-talk] =?koi8-r?Q?Upload_rtf_=28=D7=C1=D2=C9=C1=CE=D4_=D2=C5=DB=C5=CE=C9?==?koi8-r?Q?=D1=29?=



Насколько я помню, проблема загрузки на сервер и показа в виде html
документов ms-office возникала у многих подписчиков данного списка.
Сегодня мне удалось состряпать более-менее работающий вариант, чем и спешу
поделиться.

1. Пользователям внушается что документы надо сохранять в формате rtf
(по-моему, это реально)
2. rtf аплоадится на сервер через web-формочку с <input type=file>
То что апач русский, не роляет. rtf, слава богу, семибитный.
3. rtf конвертится в html посредством rtf2html имени Мити Потапова
  и Чака Шоттона (взять можно у меня на страничке в разделе catdoc)
4. При этом возникают множественные пустые параграфы, не в том порядке
закрытые тэги и т.п. Моей задачей было обеспечить последующее
редактирование получившегося html в web-формочке, за которой сидит злобный
 weblint и подобные вещи не пропускает.

Проблему удалось в значительной степени решить посредством следующего
набора глобальных замен:
5. 
$text =~ s/<html>(.*?)(<head>.*?<body[^>]*>)/<html>$2$1/is;
$text =~ s/<([biu])>((\s+|<p>)*)<\/\1>/$2/igs;
$text =~ s/<\/([biu])>((\s+|<p>)*)<\1>/$2/igs;
$text =~ s/(<p>\s*)+/<p>\n/igs;
$text =~ s/(<body[^>]*>)\s*<p>/$1\n/is;
$text =~ s/<p>\s*<\/body>/<\/body>/is;
$text =~ s/<p>\s*<\/([(biu)])>/<\/$1><p>\n/igs;

 
Да, rtf2html не самый лучший конвертер из имеющихся. Есть еще
полукоммерческий rtftohtml, который умеет картинки и таблицы.

Но уж больно он proprietary. Например, обучать его возиться с кодировками
- замаешься.

Есть еще перловый модуль 
RTF::Parser, который был мной проигнорирован по причине любви
к представлению 8-битных символов посредством &#число
и слабой документированности, мешающей оную любовь оторвать.
--------------------------------------------------
Victor Wagner                   vitus@ice.ru
Programmer                      Office:7-(095)-203-51-19
Institute for Commerce          Home: 7-(095)-135-46-61
Engineering                     http://www.ice.ru/~vitus

=============================================================================
=               Apache-Talk@lists.lexa.ru mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =



 




Copyright © Lexa Software, 1996-2009.