Перенос текста при печати нескольких строк

1. spa07 30.03.13 22:46 Сейчас в теме
Добрый день!
Стоит задача из 1с v8 выводить теrст при распечатке которого он должен попадать на фиксированный подкладываемый бланк. Проблема в следующем. Допустим нужно вывести текст в две строки. Первая строка начинается с середины листа, длина 10 см (условно).
Вторая строка идет с начала листа, длина 20см. Каким образом вывести сплошной текст уместив его на обе строки максимально их заполнив?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. AHDP 8 30.03.13 22:50 Сейчас в теме
3. spa07 30.03.13 23:02 Сейчас в теме
Пробелы особо не помогут.
Я реализовал 2 варианта: сначала сделал алгоритм который искал пробелы и переносил по отдельным словам - пропадало много места. Затем использовал алгоритм переноса слов по СЛОГАМ. Стало лучше. Но в обоих случаях необходимо указывать количество символов ПОМЕЩАЕМЫХ на строке (например для первой я указываю 15 символов), но учитывая что каждый символ умеет свою ширину(например,если в предложении узкие символы, то уместить в 10 см можно 20 символов а если широкие и заглавные то 10) я пришел к тому что нужно задавать для каждого символа условный вес (ширину) (при условии что шрифт меняться не будет).
Может у кого идеи есть получше?
4. AHDP 8 30.03.13 23:07 Сейчас в теме
Используй возможности платфор мы по переносу текста в ячейке. К выводимому тексту прибавь пробелы с лева.
6. spa07 30.03.13 23:19 Сейчас в теме
(4) AHDP, да платформа сама переносит замечательно если стоит "переносить" в ячейке. только как этим воспользоваться? Вывести текст в первые 10 см потом сформировать отчет, считать из ячейки результат разбиения построкам.....и еще раз сформировать...
18. m-serg74 46 26.12.15 14:39 Сейчас в теме
(6) spa07, а вывести в "левую" ячейку, а потом ее целиком вывести туда куда нужно не вариант?
5. AHDP 8 30.03.13 23:09 Сейчас в теме
В VBA можно поиграться переносом+ автоподбором высоты строки с последующей проверкой.
7. AHDP 8 31.03.13 08:39 Сейчас в теме
А чем лидирующие пробел.ы т о неустраивают? Посмотри сколько их на всю строку влазит и через пропорцию, получишь сколько их нужно добавить слева. Или эксперементально подбирай.
8. spa07 31.03.13 11:07 Сейчас в теме
мне нужно максимально разместить текст на строке так как поля и так узкие в бланках а текста много выводить...
и я не понимаю как пробелы могут здесь помочь, можно поподробнее?
10. YNik 31.03.13 18:14 Сейчас в теме
(8) spa07, слева добавляешь пробелов на 10 см и формируешь с начала строки с переносом.
11. spa07 01.04.13 08:38 Сейчас в теме
(10) YNik, (7) AHDP, вариант хороший, в принципе бы подошел, только есть еще одна проблема. Межстрочный интервал может быть в бланке совершенно разный или вообще различным внутри одного выводимого текста. Например может быть так:


Примечание: _________________
_______________________________
(фио, адрес,
_______________________________
телефон)

Т.е. здесь видно что межстрочный интервал междустроками 1 и 2 отличается от интервала от 2 и 3.
А используя перенос платформы насколько я знаю его нельзя изменить никак.
12. spa07 01.04.13 13:45 Сейчас в теме
Неужеле нет проще варианта как заполнить форму в (11) кроме как считать ширину символов?
14. AnryMc 849 01.04.13 14:12 Сейчас в теме
(11) spa07, Не пробовал, но можно поиграться с "мягким переносом" и "мягкой неразрывной связкой"...
15. spa07 01.04.13 14:43 Сейчас в теме
(14) AnryMc, не слышал о таком, можно ссылку?
16. AnryMc 849 01.04.13 15:01 Сейчас в теме
(15) spa07,
Microsoft WORD меню "Вставка - Символ - (Другие символы) - Специальные знаки"...

Это стандартные символы, в Ворде можно посмотреть их коды и вставить по этому коду в Ваш текст.
9. 1739712 23 31.03.13 16:07 Сейчас в теме
может быть в дополнение в пункту 3 использовать моноширинный шрифт, например курьер
или подобный
13. Программист 1С 155 01.04.13 13:59 Сейчас в теме
ТабличныйДокумент (SpreadsheetDocument)
ПроверитьВывод (CheckPut)
Синтаксис:

ПроверитьВывод(<Таблицы>) 
Параметры:

<Таблицы> (обязательный)

Тип: Массив; ТабличныйДокумент. 
Массив из проверяемых таблиц или табличный документ. 
Возвращаемое значение:

Тип: Булево. 
Истина - умещаются; Ложь - в противном случае. 
Описание:

Проверяет, умещаются ли переданные табличные документы на страницу при печати.

Доступность: 

Сервер, толстый клиент, внешнее соединение. 
Примечание:

При возникновении проблем с получением информации о текущем принтере (например, в системе не установлено ни одного принтера), будет вызвано исключение. 
Пример:

Т.Добавить(ШапкаДокумента);
Т.Добавить(СтрокаДокумента);
Т.Добавить(ПодвалДокумента);
Если Не ТабДок.ПроверитьВывод(Т) Тогда
    Сообщить("Документ не умещается на страницу!");
КонецЕсли;
 

См. также:

ТабличныйДокумент, метод ПроверитьПрисоединение
Показать
17. natarezn 26.12.15 09:41 Сейчас в теме
пользоваталсь ТабДок.ПроверитьВывод - нормально
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот