Вопрос к гуру печатных форм. Возможно ли?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Пише через сом-объект в вордовский документ. Я сам год назад столкнулся кучу инфы перелопатил. Стандартными средствами ничего не получиться. Ну или накропай по быстрому компоненту для создания RTF файлов. Этот формат поддерживает и шрифт и цвета и разрмеры.
В общем случае, задача решается. Весь вопрос - что нужно выводить на печать. Т.е., когда физически необходимо в одну секцию текст двух разных форматов? Имхо - никогда. Другое дело, когда в отчете должно казаться, что текст в одной колонке двумя разными форматами печатается.
Вариантов несколько:
1. Если две разные строки, то так и делаем двумя разными строками: одну под другой. В 8 хорошо то, что формат без труда можно определить не в макете, а программно, в момент вывода.
2. Если один на другой накладывается, то надо колдовать с текстовыми полями, как и в 7.7
3. Когда в колонке несколько разных шрифтов друг за другом. Я такое делал через искуственный трюк. Брал 100-200 ячеек таблицы и ставил им ширину - единицу. Получалось много маленьких ячеек. Далее, программно получал строку макета, как обычно, и после делал разметку так, как хотел.
Например:
Вот, получилась колонка с разными шрифтами. Размер и кол-во вставок можно варьировать.
Вариантов несколько:
1. Если две разные строки, то так и делаем двумя разными строками: одну под другой. В 8 хорошо то, что формат без труда можно определить не в макете, а программно, в момент вывода.
2. Если один на другой накладывается, то надо колдовать с текстовыми полями, как и в 7.7
3. Когда в колонке несколько разных шрифтов друг за другом. Я такое делал через искуственный трюк. Брал 100-200 ячеек таблицы и ставил им ширину - единицу. Получалось много маленьких ячеек. Далее, программно получал строку макета, как обычно, и после делал разметку так, как хотел.
Например:
Код |
---|
Секция=Макет.ПолучитьОбласть("Строка");
// вставка 1
Область1=Секция.Область("R1C1:R1C10");
Область1.Объединить();
Область1.ГоризонтальноеПоложение=ГоризонтальноеПоложение.Центр;
Область1.РазмещениеТекста=ТипРазмещенияТекстаТабличногоДокумента.Переносить;
ТекШрифт=Область1.Шрифт;
Шрифт1=Новый Шрифт(ТекШрифт.Имя,12,Истина,Ложь,Ложь,Ложь);
Область1.Шрифт=Шрифт1;
Область1.Текст=Инфо1;
// вставка 2
Область2=Секция.Область("R1C11:R1C22");
Область2.Объединить();
Область2.ГоризонтальноеПоложение=ГоризонтальноеПоложение.Право;
ТекШрифт=Область2.Шрифт;
Шрифт2=Новый Шрифт(ТекШрифт.Имя,8,Ложь,Истина,Истина,Ложь);
Область2.Шрифт=Шрифт2;
Область2.Текст=Инфо2;
// обводим колонку из двух вставок
ТипЛинии=ТипЛинииЯчейкиТабличногоДокумента.Сплошная;
Линия=Новый Линия(ТипЛинии,1,Ложь);
Область1.ГраницаСлева=Линия;
Область1.ГраницаСнизу=Линия;
Область1.ГраницаСверху=Линия;
Область2.ГраницаСнизу=Линия;
Область2.ГраницаСверху=Линия;
Область2.ГраницаСправа=Линия;
Показать полностью |
Вот, получилась колонка с разными шрифтами. Размер и кол-во вставок можно варьировать.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот