gifts2017

Пример работы с OpenOffice.org Writer & MS Word

Опубликовал Владислав Томашевич (tomvlad) в раздел Обмен - Обмен с другими системами

Обработка демонстрирует простейший пример работы с 2-мя текстовыми процессорами - OpenOffice.org Writer и Microsoft Office Word.

Нужно запустить файл обработки, в качестве шаблона она будет использовать файл "Primer.doc", который находится в одном с ней каталоге.

В процессе работы создается таблица замен из 2-колонок (в первой колонке содержится значение, которое мы будем искать в тексте, во второй - значение, которое будет подставляться вместо первого). Шаблон копируется в каталог временных файлов и открывается в выбранном текстовом процессоре. После открытия производится замена ключевых слов на значения замены.

Для работы необходим OpenOffice.org версии 2.0 и старше. Желательно, чтобы путь к файлу не содержал пробелов.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
-
.1175492790 11,24Kb
25.09.09
879
.1175492790 11,24Kb 879 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Сhe Burashka (CheBurator) 18.04.07 05:56
выдает
> Не удалось скопировать шаблон во временный файл.
2. Сhe Burashka (CheBurator) 18.04.07 05:58
строка команды получается такой
"copy C:\1Copen\OOoWriter&1C\Primer.doc C:\DOCUME~1\9335~1\LOCALS~1\Temp\doc.tmp"
3. Сhe Burashka (CheBurator) 18.04.07 06:05
Получилось...
В ОО сначала получается видимым документ, потом идет замена - имхо лучше сразу показать готовый.. (если такая возможность есть). В ворде - нормально...
4. Владимир Лошко (Loshko_WR) 27.09.07 15:41
Очень полезная обработка!!! Иногда пользователи составляют "психоделические" формы документов, Кащенко отдыхает! А т.к. в 1С нет путного редактора, то СПАСИБО АВТОРУ, будем поступать нестандартным образом.
Уважаю, Рулез!
5. damacon damacon (damacon) 25.10.07 11:45
А можно из 1с заполнять пользовательские поля во Writer? Ну чтобы не искать по ключевым полям и заменять их, а заполнять именованные поля, предназначенные для ввода данных.
6. Леший1975 (Леший1975) 09.07.08 16:06
Очень нужная обработка. Оказывается сидел занимался изобретением велосипеда. Автору респект. !!!
7. vau (vau) 18.11.08 11:35
Подскажите, как в OpenOffice после заполнения сразу отправить на печать на заданный принтер и закрыть документ. !!! очень надо !!! БОЛЬШОЕ СПАСИБО !!!


8. Александр Хоменко (scape) 21.01.09 23:00
Спасибо! Сделал формирование на основании шаблона Word, а половина молодцов в организации, как выяснилось, работает в OpenOffice. Теперь все будут рады...
9. Дмитрий Д... (dds) 13.04.09 11:50
Спасибо, как раз искал хороший пример работы с Word.
10. Саша Вик (Profcomp) 19.05.09 14:49
Спасибо полезная штука.. Подскажите еще примерчик работы с OpenOffice Электронные таблицы... ????
11. Пимшин 1 (Pim) 13.06.09 10:47
Штука-то полезная, но как задать парметры печати в openoffice из 1с? У меня формируется табель в Calc и надо сразу задать формат А3 и пр...
(10) Вот примерчик:

BDPath = IBDir() + "ExtForms\PrnForms\табель.xls";
BDPath = "file:///" + StrReplace(BDPath, "\", "/");

scr = CreateObject("MSScriptControl.ScriptControl");
scr.language = "javascript";
scr.eval("Массив=new Array()");
Массив = scr.eval("Массив");
scr.AddCode("function SetItem(ind,val){Массив[ind]=val}");

ServiceManager = CreateObject("com.sun.star.ServiceManager");
scr.AddObject("ServiceManager", ServiceManager);

scr.eval("Массив[0]=ServiceManager.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
scr.eval("Массив[0].Name='AsTemplate'");
scr.eval("Массив[0].Value=true");

Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop");

Document = Desktop.LoadComponentFromURL(BDPath, "_blank", 0, Массив);
Sheets = Document.getSheets();

// Sheets.isVisible = 0;
Sheet = Sheets.getByIndex(0);
Sheet.getCellByPosition(1, 3).String = TrimAll(Константа.НазваниеОрганизации);
....



///=========================================================­====================
procedure FormatOOoRange(scr, Sheet, begCol, begRow, endCol, endRow, HoriJustify, Height, Type, Color, Merge = 0)

Range = Sheet.getCellRangeByPosition(begCol, begRow, endCol, endRow);
Range.merge(Merge);
Range.HoriJustify = HoriJustify; // 1 - left, 2 - center
range.CharHeight = Height; // размер шрифта
range.CharWeight = Type; // 100 - обычный, 150 - жирный
//Row = Sheet.Rows(5);
//Row.Height = 0; //автоподгон высоты строки
scr.eval("border=ServiceManager.Bridge_GetStruct('com.sun.star.table.BorderLine')");
Border = scr.eval("border");
Border.lineDistance = 0;
Border.innerLineWidth = 0;
Border.outerLineWidth = 1;
Range.SetPropertyValue("TopBorder", Border);
Range.SetPropertyValue("BottomBorder", Border);
Range.SetPropertyValue("LeftBorder", Border);
Range.SetPropertyValue("RightBorder", Border);
range.CellBackColor = Color;
endProcedure //FormatOOoRange
12. Трактор Трактор (Трактор) 08.08.09 22:19
(11) >> Штука-то полезная, но как задать парметры печати в openoffice из 1с?
тут пример http://infostart.ru/blogs/1141/ у calc'а посложнее, у writer'а попроще.
13. Максим Богословский (ulen) 05.03.10 22:22
14. Юлия Зарубина (Lua) 28.04.10 11:07
15. Андрей Нагыев (NagNag) 24.03.11 20:21
Все очень красиво, но как автоматически записать готовый замененный файл? Никак не пойму!? Пробовал
ТекстовыйПроцессор.Documents.Save(ИмяФайлаВордКон);
и
ТекстовыйПроцессор.Save(ИмяФайлаВордКон);
Пишет
{Обработка.ЗаменаВВордФайлах.Форма.Модуль(126)}: Типы не совпадают

И почему-то открытый файл с атрибутом только чтение?!
16. Андрей Нагыев (NagNag) 25.03.11 00:54
Вообщем сам отвечаю на свой вопрос! Сделал
Doc=ТекстовыйПроцессор.Documents.Open(ИмяФайла,, -1);
........
Doc.Saveas(ИмяФайлаВордКон);
Doc.Close();
17. nanik nanik (nanik) 20.12.11 00:29
Спасибо, очень хороший пример. Реализовал в ЗиК печать уведомлений по иностранцам и еще несколько печатных подобных форм для нашего отдела кадров.
18. Ромка Мороз (romorozov) 25.01.12 13:20
19. N’aix lifestealer (N_aix) 09.03.13 16:15
20. Станислав Бобровский (GrafB) 04.02.16 11:31
а где нужно было увидеть что обработка для 1С 7.7, мне для 8ки нужен был пример, скачал потратил деньги, а тут сюрприз.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа