форматирование через phoenixbsl
This commit is contained in:
parent
b1bc06b782
commit
0f9427abe8
@ -4,7 +4,7 @@
|
|||||||
комДокумент = Неопределено;
|
комДокумент = Неопределено;
|
||||||
Попытка
|
Попытка
|
||||||
// Для пересчётов использовать комВорд.CentimetersToPoints(ЧислоСМ) и комВорд.PointsToCentimeters(ЧислоПунктов)
|
// Для пересчётов использовать комВорд.CentimetersToPoints(ЧислоСМ) и комВорд.PointsToCentimeters(ЧислоПунктов)
|
||||||
//рСантиметр=6.25; // в средних символах шрифта (при необходимости пересчитывать по рДиапазон.CharacterWidth - ширина символов, константа WdCharacterWidth
|
// рСантиметр=6.25; // в средних символах шрифта (при необходимости пересчитывать по рДиапазон.CharacterWidth - ширина символов, константа WdCharacterWidth
|
||||||
//рШиринаСтраницы=75; // эмпирически, довести до ума с учётом //сообщить("стран ширина "+стран.PageWidth+", высота "+стран.PageHeight); // в пунктах, работает
|
//рШиринаСтраницы=75; // эмпирически, довести до ума с учётом //сообщить("стран ширина "+стран.PageWidth+", высота "+стран.PageHeight); // в пунктах, работает
|
||||||
|
|
||||||
// Типовые настройки документа Ворд:
|
// Типовые настройки документа Ворд:
|
||||||
@ -26,7 +26,7 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
рШиринаСтраницыВорда = Окр(комВорд.PointsToCentimeters(комСтраница.PageWidth), 2);
|
рШиринаСтраницыВорда = Окр(комВорд.PointsToCentimeters(комСтраница.PageWidth), 2);
|
||||||
рВысотаСтраницыВорда = Окр(комВорд.PointsToCentimeters(комСтраница.PageHeight), 2);
|
рВысотаСтраницыВорда = Окр(комВорд.PointsToCentimeters(комСтраница.PageHeight), 2);
|
||||||
Если НЕ ((20 <= рШиринаСтраницыВорда и рШиринаСтраницыВорда <= 22) и (28 <= рВысотаСтраницыВорда и рВысотаСтраницыВорда <= 30)) Тогда
|
Если НЕ ((20 <= рШиринаСтраницыВорда И рШиринаСтраницыВорда <= 22) И (28 <= рВысотаСтраницыВорда И рВысотаСтраницыВорда <= 30)) Тогда
|
||||||
Сообщить("Текущая версия не обрабатывает размеры страницы, отличающиеся от А4!");
|
Сообщить("Текущая версия не обрабатывает размеры страницы, отличающиеся от А4!");
|
||||||
ЗакрытьДокумент(комДокумент); // без сохранения
|
ЗакрытьДокумент(комДокумент); // без сохранения
|
||||||
ЗакрытьВорд(комВорд);
|
ЗакрытьВорд(комВорд);
|
||||||
@ -49,7 +49,7 @@
|
|||||||
Для каждого рПараграфСписка Из рСписок.ListParagraphs Цикл
|
Для каждого рПараграфСписка Из рСписок.ListParagraphs Цикл
|
||||||
рФорматСписка = рПараграфСписка.Range.ListFormat;
|
рФорматСписка = рПараграфСписка.Range.ListFormat;
|
||||||
рТипСписка = рФорматСписка.ListType; // WdListType
|
рТипСписка = рФорматСписка.ListType; // WdListType
|
||||||
Если рТипСписка = 0 или рТипСписка = 2 или рТипСписка = 6 Тогда
|
Если рТипСписка = 0 ИЛИ рТипСписка = 2 ИЛИ рТипСписка = 6 Тогда
|
||||||
// ненумерованные и bullet игнорируем
|
// ненумерованные и bullet игнорируем
|
||||||
Иначе
|
Иначе
|
||||||
// заниматься иерархией с проверкой погружения (рФорматСписка.ListLevelNumber) не будем, нам достаточно проверить так:
|
// заниматься иерархией с проверкой погружения (рФорматСписка.ListLevelNumber) не будем, нам достаточно проверить так:
|
||||||
@ -122,8 +122,8 @@
|
|||||||
|
|
||||||
комТаблица = Неопределено;
|
комТаблица = Неопределено;
|
||||||
Для каждого знч Из мКомТаблиц Цикл
|
Для каждого знч Из мКомТаблиц Цикл
|
||||||
Если знч.Начало <= рНачалоДиапазона и рНачалоДиапазона <= знч.Конец
|
Если знч.Начало <= рНачалоДиапазона И рНачалоДиапазона <= знч.Конец
|
||||||
и знч.Начало <= рКонецДиапазона и рКонецДиапазона <= знч.Конец
|
И знч.Начало <= рКонецДиапазона И рКонецДиапазона <= знч.Конец
|
||||||
Тогда // можно было бы рДиапазон.InRange(комТаблица.Range), но оно медленнее
|
Тогда // можно было бы рДиапазон.InRange(комТаблица.Range), но оно медленнее
|
||||||
комТаблица = знч.Таблица; Прервать;
|
комТаблица = знч.Таблица; Прервать;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@ -151,7 +151,7 @@
|
|||||||
|
|
||||||
стрк = стрк + 1;
|
стрк = стрк + 1;
|
||||||
Иначе
|
Иначе
|
||||||
Если не рИдётТаблица Тогда // выводим таблицу, а далее пропускаем все входящие в неё диапазоны, и идём до её конца
|
Если НЕ рИдётТаблица Тогда // выводим таблицу, а далее пропускаем все входящие в неё диапазоны, и идём до её конца
|
||||||
ВывестиТаблицу(комВорд, комТаблица, т, стрк, рСантиметр);
|
ВывестиТаблицу(комВорд, комТаблица, т, стрк, рСантиметр);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
рИдётТаблица = Истина;
|
рИдётТаблица = Истина;
|
||||||
@ -244,7 +244,7 @@
|
|||||||
|
|
||||||
|
|
||||||
Процедура ВывестиТаблицу(комВорд, комТаблица, табДокумент, текСтрока, рСантиметр = 6.25)
|
Процедура ВывестиТаблицу(комВорд, комТаблица, табДокумент, текСтрока, рСантиметр = 6.25)
|
||||||
//рСантиметр=6.25;
|
// рСантиметр=6.25;
|
||||||
рСимвол7 = Символ(7);
|
рСимвол7 = Символ(7);
|
||||||
|
|
||||||
квоСтрок = комТаблица.Rows.Count;
|
квоСтрок = комТаблица.Rows.Count;
|
||||||
@ -264,7 +264,7 @@
|
|||||||
рОбластьЯчейки = табДокумент.Область(текСтрока, стлб, текСтрока, стлб + квоЯчеекМхл - 1);
|
рОбластьЯчейки = табДокумент.Область(текСтрока, стлб, текСтрока, стлб + квоЯчеекМхл - 1);
|
||||||
рОбластьЯчейки.Объединить();
|
рОбластьЯчейки.Объединить();
|
||||||
|
|
||||||
Если комЯчейка.FitText или комЯчейка.WordWrap Тогда // пока так
|
Если комЯчейка.FitText ИЛИ комЯчейка.WordWrap Тогда // пока так
|
||||||
рОбластьЯчейки.РазмещениеТекста = ТипРазмещенияТекстаТабличногоДокумента.Переносить;
|
рОбластьЯчейки.РазмещениеТекста = ТипРазмещенияТекстаТабличногоДокумента.Переносить;
|
||||||
Иначе
|
Иначе
|
||||||
рОбластьЯчейки.РазмещениеТекста = ТипРазмещенияТекстаТабличногоДокумента.Авто;
|
рОбластьЯчейки.РазмещениеТекста = ТипРазмещенияТекстаТабличногоДокумента.Авто;
|
||||||
@ -281,14 +281,14 @@
|
|||||||
рОбластьЯчейки.Шрифт = ПостроитьШрифт(ВыборШрифта(рДиапазонЯчейки));
|
рОбластьЯчейки.Шрифт = ПостроитьШрифт(ВыборШрифта(рДиапазонЯчейки));
|
||||||
|
|
||||||
// на практике удобнее оставлять автовысоту, но иногда может понадобиться:
|
// на практике удобнее оставлять автовысоту, но иногда может понадобиться:
|
||||||
//рОбластьЯчейки.АвтоВысотаСтроки=Ложь;
|
// рОбластьЯчейки.АвтоВысотаСтроки=Ложь;
|
||||||
//рОбластьЯчейки.ВысотаСтроки=рСантиметр*Окр(комВорд.PointsToCentimeters(комЯчейка.Height),0,РежимОкругления.Окр15как20);
|
//рОбластьЯчейки.ВысотаСтроки=рСантиметр*Окр(комВорд.PointsToCentimeters(комЯчейка.Height),0,РежимОкругления.Окр15как20);
|
||||||
|
|
||||||
рОбластьЯчейки.ГоризонтальноеПоложение = ПолучитьВыравнивание(рДиапазонЯчейки.ParagraphFormat.Alignment);
|
рОбластьЯчейки.ГоризонтальноеПоложение = ПолучитьВыравнивание(рДиапазонЯчейки.ParagraphFormat.Alignment);
|
||||||
// отступ - в пунктах, при необходимости требуется пересчёт!
|
// отступ - в пунктах, при необходимости требуется пересчёт!
|
||||||
//Если рОбластьЯчейки.ГоризонтальноеПоложение=ГоризонтальноеПоложение.Лево Тогда
|
// Если рОбластьЯчейки.ГоризонтальноеПоложение=ГоризонтальноеПоложение.Лево Тогда
|
||||||
// рОбластьЯчейки.Отступ=комЯчейка.LeftPadding;
|
// рОбластьЯчейки.Отступ=комЯчейка.LeftPadding;
|
||||||
//ИначеЕсли рОбластьЯчейки.ГоризонтальноеПоложение=ГоризонтальноеПоложение.Право Тогда
|
// ИначеЕсли рОбластьЯчейки.ГоризонтальноеПоложение=ГоризонтальноеПоложение.Право Тогда
|
||||||
// рОбластьЯчейки.Отступ=комЯчейка.RightPadding;
|
// рОбластьЯчейки.Отступ=комЯчейка.RightPadding;
|
||||||
//КонецЕсли;
|
//КонецЕсли;
|
||||||
|
|
||||||
|
@ -1,93 +1,92 @@
|
|||||||
|
&НаКлиенте
|
||||||
&НаКлиенте
|
|
||||||
Асинх Процедура Конвертировать(Команда)
|
Асинх Процедура Конвертировать(Команда)
|
||||||
Диалог = Новый ПараметрыДиалогаПомещенияФайлов;
|
Диалог = Новый ПараметрыДиалогаПомещенияФайлов;
|
||||||
Диалог.Заголовок = "Выберите документ";
|
Диалог.Заголовок = "Выберите документ";
|
||||||
Диалог.МножественныйВыбор = Ложь;
|
Диалог.МножественныйВыбор = Ложь;
|
||||||
Диалог.Фильтр = "Документы (*.doc,*.docx,*.rtf)|*.doc;*.docx;*.rtf|Все файлы|*.*";
|
Диалог.Фильтр = "Документы (*.doc,*.docx,*.rtf)|*.doc;*.docx;*.rtf|Все файлы|*.*";
|
||||||
|
|
||||||
Прогресс = 0;
|
Прогресс = 0;
|
||||||
Элементы.ГруппаПрогресс.Видимость = Истина;
|
Элементы.ГруппаПрогресс.Видимость = Истина;
|
||||||
Элементы.Прогресс.Видимость = Истина;
|
Элементы.Прогресс.Видимость = Истина;
|
||||||
Состояние = "Передача файла";
|
Состояние = "Передача файла";
|
||||||
Оповещение_ОХодеВыполнения = Новый ОписаниеОповещения("ПомещениеФайла_ОповещенияОХодеВыполнения", ЭтаФорма, Неопределено);
|
Оповещение_ОХодеВыполнения = Новый ОписаниеОповещения("ПомещениеФайла_ОповещенияОХодеВыполнения", ЭтаФорма, Неопределено);
|
||||||
ОписаниеФайла = Ждать ПоместитьФайлНаСерверАсинх(Оповещение_ОХодеВыполнения,,,Диалог, ЭтаФорма.УникальныйИдентификатор);
|
ОписаниеФайла = Ждать ПоместитьФайлНаСерверАсинх(Оповещение_ОХодеВыполнения, , , Диалог, ЭтаФорма.УникальныйИдентификатор);
|
||||||
|
|
||||||
Элементы.Прогресс.Видимость = Ложь;
|
Элементы.Прогресс.Видимость = Ложь;
|
||||||
Прогресс = 0;
|
Прогресс = 0;
|
||||||
|
|
||||||
Если Неопределено = ОписаниеФайла Тогда
|
Если Неопределено = ОписаниеФайла Тогда
|
||||||
Элементы.ГруппаПрогресс.Видимость = Ложь;
|
Элементы.ГруппаПрогресс.Видимость = Ложь;
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Состояние = "Конвертация";
|
Состояние = "Конвертация";
|
||||||
ОбновитьОтображениеДанных(Элементы.Состояние);
|
ОбновитьОтображениеДанных(Элементы.Состояние);
|
||||||
КонвертироватьНаСервере(ОписаниеФайла.Адрес, ОписаниеФайла.СсылкаНаФайл.Расширение);
|
КонвертироватьНаСервере(ОписаниеФайла.Адрес, ОписаниеФайла.СсылкаНаФайл.Расширение);
|
||||||
Элементы.ГруппаПрогресс.Видимость = Ложь;
|
Элементы.ГруппаПрогресс.Видимость = Ложь;
|
||||||
Элементы.ГруппаРезультат.Видимость = Истина;
|
Элементы.ГруппаРезультат.Видимость = Истина;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ПомещениеФайла_ОповещенияОХодеВыполнения(ПомещаемыйФайл, Помещено, ОтказОтПомещенияФайла, ДополнительныеПараметры) Экспорт
|
Процедура ПомещениеФайла_ОповещенияОХодеВыполнения(ПомещаемыйФайл, Помещено, ОтказОтПомещенияФайла, ДополнительныеПараметры) Экспорт
|
||||||
Прогресс = Помещено;
|
Прогресс = Помещено;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиентеНаСервереБезКонтекста
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
Процедура ПопыткаУдалитьФайлы(Файлы)
|
Процедура ПопыткаУдалитьФайлы(Файлы)
|
||||||
Если Неопределено = Файлы Тогда
|
Если Неопределено = Файлы Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
УдалитьФайлы(Файлы);
|
УдалитьФайлы(Файлы);
|
||||||
Исключение
|
Исключение
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
Файлы = Неопределено;
|
Файлы = Неопределено;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаСервере
|
&НаСервере
|
||||||
Процедура КонвертироватьНаСервере(Знач Адрес, Знач Расширение)
|
Процедура КонвертироватьНаСервере(Знач Адрес, Знач Расширение)
|
||||||
Обработка = РеквизитФормыВЗначение("Объект");
|
Обработка = РеквизитФормыВЗначение("Объект");
|
||||||
|
|
||||||
РезультатКонвертации = Неопределено;
|
РезультатКонвертации = Неопределено;
|
||||||
|
|
||||||
ВремФайл = ПолучитьИмяВременногоФайла(Расширение);
|
ВремФайл = ПолучитьИмяВременногоФайла(Расширение);
|
||||||
Данные = ПолучитьИзВременногоХранилища(Адрес);
|
Данные = ПолучитьИзВременногоХранилища(Адрес);
|
||||||
Данные.Записать(ВремФайл);
|
Данные.Записать(ВремФайл);
|
||||||
Данные = Неопределено;
|
Данные = Неопределено;
|
||||||
ИмяФайла = ВремФайл;
|
ИмяФайла = ВремФайл;
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
РезультатКонвертации = Обработка.ВывестиДокументВордВМоксель(ИмяФайла);
|
РезультатКонвертации = Обработка.ВывестиДокументВордВМоксель(ИмяФайла);
|
||||||
Исключение
|
Исключение
|
||||||
Ошибка = ОписаниеОшибки();
|
Ошибка = ОписаниеОшибки();
|
||||||
Причина = ИнформацияОбОшибке();
|
Причина = ИнформацияОбОшибке();
|
||||||
|
|
||||||
ПопыткаУдалитьФайлы(ВремФайл);
|
ПопыткаУдалитьФайлы(ВремФайл);
|
||||||
Если ЭтоАдресВременногоХранилища(Адрес) Тогда
|
Если ЭтоАдресВременногоХранилища(Адрес) Тогда
|
||||||
УдалитьИзВременногоХранилища(Адрес);
|
УдалитьИзВременногоХранилища(Адрес);
|
||||||
Адрес = Неопределено;
|
Адрес = Неопределено;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ВызватьИсключение ("Ошибка конвертации в mxl",КатегорияОшибки.ОшибкаВнешнегоИсточникаДанных,"500",Ошибка,Причина);
|
ВызватьИсключение("Ошибка конвертации в mxl", КатегорияОшибки.ОшибкаВнешнегоИсточникаДанных, "500", Ошибка, Причина);
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
ПопыткаУдалитьФайлы(ВремФайл);
|
ПопыткаУдалитьФайлы(ВремФайл);
|
||||||
Если ЭтоАдресВременногоХранилища(Адрес) Тогда
|
Если ЭтоАдресВременногоХранилища(Адрес) Тогда
|
||||||
УдалитьИзВременногоХранилища(Адрес);
|
УдалитьИзВременногоХранилища(Адрес);
|
||||||
Адрес = Неопределено;
|
Адрес = Неопределено;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Не Неопределено = РезультатКонвертации Тогда
|
Если Не Неопределено = РезультатКонвертации Тогда
|
||||||
ДокументРезультат = РезультатКонвертации;
|
ДокументРезультат = РезультатКонвертации;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаСервере
|
&НаСервере
|
||||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||||
Элементы.ГруппаПрогресс.Видимость = Ложь;
|
Элементы.ГруппаПрогресс.Видимость = Ложь;
|
||||||
Элементы.ГруппаРезультат.Видимость = Ложь;
|
Элементы.ГруппаРезультат.Видимость = Ложь;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
Loading…
Reference in New Issue
Block a user