[oodisc] OOo 641C on Win32
Alexandre Prokoudine
techwriter на tamb.ru
Вт Фев 19 14:19:57 MSK 2002
Привет всем!
AP> Привет всем!
AP> Назрело несколько мерзких и очень несвоевременных багов. Описываю возникновение по
AP> порядку.
AP> 1. Нумерованный список в текстовом документе был преобразован в
AP> таблицу при помощи функции Текст <-> Таблица
AP> 2. В получившейся таблице каждая новая ячейка стала нумерованным
AP> списком, при это порядковый номер при удалении предыдущих не
AP> изменяется
AP> 3. После небольшой работы внутри этой таблицы (создание колонок,
AP> объединение ячеек и пр.) сама собою убивается инструментальная панель
AP> для обработки таблицы, оставляя доступной лишь панель обработки
AP> текста.
AP> 4. Все открытые документы, среди которых - ВНИМАНИЕ - документ,
AP> содержащий картинки из Инета, то есть с тегом ресурса картинки
AP> вида http://и.т.д. (результат копирования из буфера Мозиллы),
AP> закрываются. Примечание: до того оный документ при открытии просился в
AP> сетку, а получив отлуп открывался, ессно, без картинок.
AP> 5. Каталог ~/путь к OpenOffice.org/user убивается
AP> 6. Открывается документ с таблицей. Панель на месте.
AP> 7. Открывается документ с картинками. Опаньки - он показывается как
AP> пустой.
AP> Вопрос: чего делать-то с "пустым" документом?
AP> Есть мысль сделать копию и выщемить в ней все ссылки на картинки, а
AP> затем записать по новой внутрь файла при помощи архиватора.
AP> Буду признателен за любые идеи!
У истории весьма неприятное продолжение.
В общем, я при помощи nedit вырезал все рисунки из content.xml и
перезаписал его вместо оригинального в злосчастный sxw. Однако этот
новый документ опять не открылся. Более того, при открытии других
файлов, содержащих рисунки или ссылки на них, мне была показана лишь
девственная чистота электронного листа. А вот файлы с обычным текстом
(логически размеченным) и таблицами по-прежнему открываются.
Отсюда вывод: убиение ~/OpenOffice.org/user может болезненно сказаться
на наследственности.
Кстати, в исследованном content.xml трижды проходит один и тот же
скрипт на Джаве. Есть мысль вырезать и его. Вот текст скрипта:
<text:script script:language="JavaScript"><!--
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//--></text:script>
На Джаве я, вообще-то, не программирую, но маленькое серое вещество
подсказывает, что сей скрипт отвечает за обработку рисунков,
вставленных из гипертекстового буфера обмена.
В общем, наш дружок ООо в качестве макроязыка ещё и Java понимает. Я
это и раньше подозревал (по функции вставки апплетов), но вживую вижу
впервые. :-)
А вообще, два макроязыка в одном продукте - это cool :-)))
Всех благ,
Александр
Подробная информация о списке рассылки Oo-discuss