Ищу конвертер в HTML

[Удален]
794

Не знает ли кто-нибудь такой программы или плагина, чтобы мне из документов-таблиц Word или таблиц Excel или PDF получать некорявый код в HTML. Office у меня 2002, и он вставляет в код кучу ненужных пакостей - чистить их через замены в Homesite потом очень долго и скучно. Я уже долго пробую найти что-то подобное, но все конвертеры, которые я мог найти, создает ненамного менее корявый код.

euhenio
На сайте с 21.09.2001
Offline
357
#1

на perl подойдет? :)

с ув., Евгений Трофименко seo блог Trofimenko.ru ( http://trofimenko.ru/ ) но ыыы мало обновляется... Tools.Promosite.ru - анализатор апдейтов Яндекса (пожертвуйте лимиты на Яндекс.XML! ( https://searchengines.guru/ru/forum/801888/page7#comment_11942489 )) Konvr.ru - увеличение конверсии сайта на 81% за 4 недели ( http://konvr.ru/ )
[Удален]
#2
на perl подойдет?

Я очень мало знаком с Perl, но он у меня установлен и иногда я приспосабливаю для своих нужд всякие несложные пришлые скрипты.

Если бы Вы, euhenio, поделились со мной Вашим скриптом, я бы постарался и с ним разобраться.

euhenio
На сайте с 21.09.2001
Offline
357
#3

Пересчитывает размеры картинок, удаляет закрывающие теги p,li, ставит table одинаковые параметры.

Обрабатывает файлы с расширением $ext по всем директориям вглубь от директории, заданной в walk();

Если в имени файла нет точки, он считается директорией :)

Просто чистит файлы, полученные экспортом из Ворда, до определенных пределов. Делался под определенную задачу, и возможно, чистит не все. Если в Ворде были вставки картинок в "надписи", они пропадут.

Если он чистит не все, то в кучу записей попробуйте добавить

$s=~s#<([a-zA-Z0-9]+)[^>]*>#<$1>#gsi;

для убирания всех параметров всех тегов

или

$s=~s#</?TAG[^>]*>##gsi;

для убирания тега TAG

___________

use Image::Size;


$from=<<RRR;
RRR

$to=<<KKK;
KKK

sub getimage
{
my $locimg=$_[0];
my $img=$_[1];
my $name=$_[2];
my $num=$_[3];

my $globe_x=0;
my $globe_y=0;

$img=~s#\\#\/#g;
$image=$locimg.$img;
$image=~s#//#/#g;

if (open(F,"<$image"))
{
close F;
($globe_x, $globe_y) = imgsize($image);
$img=~s#[^/.]+(\.[^.]+)$#$name.'-'.$num.$1#e;
rename($image,$locimg.$img);
};


$nowimage='<img src="'.$img.'" width="'.$globe_x.'" height="'.$globe_y.'" border="0" align="absmiddle">';
return $nowimage;
}

sub clearfile
{
my $file=$_[0];
my $s='';
my $name='';
my $numimg=0;

$name=$file;
$name=~s#^.*?([^/.]+)\.[^/.]+$#$1#e;

if (open(F,"<$file"))
{
until (eof(F)) {$s.=<F>;};
close F;

$s=~s# +# #ig;
$s=~s#<p[^>]*?>#<p>#igs;
$s=~s#<li[^>]*>#<li>#ig;

$s=~s#<p>&nbsp;</p>##ig;
$s=~s#<p> *</p>##ig;
$s=~s#</?center>##ig;
$s=~s#</?dir>##ig;

$s=~s#</li>##ig;
$s=~s#</p>##ig;
$s=~s#<p>\s*(&nbsp;\s*)*\s*<p>#<p>#igs;

$s=~s#<p><li>#<li>#igs;
$s=~s#<p>\s*<li>#<li>#igs;

$s=~s#<font([^>]+?symbol[^>]*?)>([^<]+?)</font>#<symb$1>$2</symb>#igs;

$s=~s#<font[^>]+?\+[^>]+?>(.+?)</font>#<b><u>$1</u></b>#igs;
$s=~s#<font[^>]+?>(.+?)</font>#$1#igs;

$s=~s#<font[^>]*?>##igs;
$s=~s#</font[^>]*?>##igs;

$s=~s#<symb#<font#igs;
$s=~s#</symb>#</font>#igs;


$s=~s#<table[^>]+?>#<table cellspacing="0" cellpadding="3" border="1">#ig;
#$s=~s#<thead[^>]+?>#<thead>#ig;
#$s=~s#<tbody[^>]+?>#<tbody>#ig;
#$s=~s#<th[^>]+?>#<th>#ig;
#$s=~s#<tr[^>]+?>#<tr>#ig;

$s=~s#(<td[^>]*?) width="?\d+%?"?([^>]*?>)#$1$2#ig;
$s=~s#(<td[^>]*?) height="?\d+%?"?([^>]*?>)#$1$2#ig;

$s=~s#(<[^>]+?) v?align="?(center|left|right|top|baseline|middle|bottom|justify)"?(.*>)#$1$3#ig;
$s=~s#(</?)(strong|big)\s*>#$1b>#igs;
$s=~s#(</?)em\s*>#$1i>#igs;
#$s=~s#<h[23456]>#<p><b>#ig;
#$s=~s#</h[23456]>#</b>#ig;

$s=~s#(</?)(small|blockquote)\s*>##igs;
$s=~s#</?div[^>]*>##igs;

$s=~s# tppabs="http://[^"]+?"##ig;

$loc=$file;
$loc=~s#/[^/]*$#/#;
$s=~s#<img[^>]+src=['" ]*([^ '">]*)['" ]*[^>]*># $numimg++; getimage($loc,$1,$name,$numimg);#igse;

$s=~s#<hr[^>]*>#<hr>#ig;
$s=~s#</?a[^>]*?>##igs;
#$s=~s#<a[^>]+?>(.+?)</a>#$1#igs;
#$s=~s#<hr[^>]*>#<br><p>#ig;
#$s=~s#(</?(ul|ol)>)\s*(&nbsp;)*\s*\1#$1#igs;
#$s=~s#([^> ])\s*<img#$1<p><img#igs;
#$s=~s#(<img[^>]+>)[^<]#$1<p>#igs;
#$n=($s=~s###igs);

if (open(F2,">$file"))
{
print F2 $s;
close F2;
print "$file ok! images recalc: $numimg\n";;
} else { print "$file cannot be written to!\n"; };
} else {print "file $file cannot be opened";};
}

sub walk
{
my $dir=$_[0];
my @list=();
my $i=0;
if (opendir (D, $dir))
{
@list=readdir(D);
for ($i=0; $i<@list; $i++)
{
if (($list[$i] ne '.') && ($list[$i] ne '..'))
{
if ($list[$i]=~m#[^.]\.([^.]+)$#)
{
if ($1 eq $ext)
{
clearfile($dir.'/'.$list[$i]);
};
}
else {walk($dir.'/'.$list[$i]);};
};
};
closedir(D);
}
else {print "dir $dir cannot be opened\n";};
};



$ext='html';
walk(".");#current directory and deeper
#clearfile('directory/file.ext');
print "\a\nPress enter to exit!\n";
<>;
F
На сайте с 15.11.2000
Offline
116
#4
Как писал reagan
Не знает ли кто-нибудь такой программы или плагина, чтобы мне из документов-таблиц Word или таблиц Excel или PDF получать некорявый код в HTML.

Для Office 2000: MS HTML Filter 2.0 (источник ссылки).

С уважением,

Александр Садовский.

[Удален]
#5
Как писал reagan
Не знает ли кто-нибудь такой программы или плагина, чтобы мне из документов-таблиц Word или таблиц Excel или PDF получать некорявый код в HTML.

В Dreamweaver'е, начиная по-моему с 4-ого, есть кнопка Clean Up Word HTML. Вроде как должно чистить, но сказать насколько хорошо не могу, не пользовался.

[Удален]
#6

euhenio, спасибо большое, я его еще не пробовал использовать, но попробую

funsad, тоже спасибо, но я его уже пробовал установить на свой 2002-й, а он даже устанавливаться не хочет, свин

Scaramush, тоже спасибо, но я Dreamweaver тоже уже пробовал, но он не может разобраться с этой помойкой, которую Word создает

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий