[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">&lt;!--&#x0d;
function MM_swapImgRestore() { //v3.0&#x0d;
  var i,x,a=document.MM_sr; for(i=0;a&amp;&amp;i&lt;a.length&amp;&amp;(x=a[i])&amp;&amp;x.oSrc;i++) x.src=x.oSrc;&#x0d;
}&#x0d;
&#x0d;
function MM_preloadImages() { //v3.0&#x0d;
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();&#x0d;
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i&lt;a.length; i++)&#x0d;
    if (a[i].indexOf(&quot;#&quot;)!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}&#x0d;
}&#x0d;
&#x0d;
function MM_findObj(n, d) { //v4.01&#x0d;
  var p,i,x;  if(!d) d=document; if((p=n.indexOf(&quot;?&quot;))&gt;0&amp;&amp;parent.frames.length) {&#x0d;
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}&#x0d;
  if(!(x=d[n])&amp;&amp;d.all) x=d.all[n]; for (i=0;!x&amp;&amp;i&lt;d.forms.length;i++) x=d.forms[i][n];&#x0d;
  for(i=0;!x&amp;&amp;d.layers&amp;&amp;i&lt;d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);&#x0d;
  if(!x &amp;&amp; d.getElementById) x=d.getElementById(n); return x;&#x0d;
}&#x0d;
&#x0d;
function MM_swapImage() { //v3.0&#x0d;
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i&lt;(a.length-2);i+=3)&#x0d;
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}&#x0d;
}&#x0d;
//--&gt;</text:script>

На Джаве я, вообще-то, не программирую, но маленькое серое вещество
подсказывает, что сей скрипт отвечает за обработку рисунков,
вставленных из гипертекстового буфера обмена.

В общем, наш дружок ООо в качестве макроязыка ещё и Java понимает. Я
это и раньше подозревал (по функции вставки апплетов), но вживую вижу
впервые. :-)

А вообще, два макроязыка в одном продукте - это cool :-)))

Всех благ,
Александр





Подробная информация о списке рассылки Oo-discuss