Здравствуйте, возникла необходимость установить отступы на странице html при печати без предварительного просмотра, возникла проблема.
Если делать типа так
работает, но только 1 раз на первой странице, а требуется на каждой странице если их много
Вот так уже не работает, даже не присваивает,
Есть ли у кого-нибудь опыт работы с html, документ это объект DOM
Если делать типа так
Документ.body.style.marginTop = "40mm"
работает, но только 1 раз на первой странице, а требуется на каждой странице если их много
Вот так уже не работает, даже не присваивает,
Документ.body.style.page = ":left {margin: 3cm 1cm 1cm 1.5cm;}";
Есть ли у кого-нибудь опыт работы с html, документ это объект DOM
По теме из базы знаний
- Универсальный просмотр XML в поле HTML-документа
- Мобильный HTML-интерфейс, взгляд изнутри
- Drag & Drop - Переносим Картинку на Форму с помощью мыши (HTML + JS)
- Быстрый поиск комбинаций значений с заданной суммой на HTML-странице с использованием JavaScript
- Пример использования HTML-интерфейса для мобильного приложения (+JS, +CSS)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Попробуйте так:
@page
{
size: A4;
margin: 30mm 25mm 25mm 25mm;
}
body
{
margin: 0px;
}
Но, вообще-то я не понимаю, почему не воспользоваться настройками печати самого принтера.
Надеюсь понятно, что это все в тегах <st yle>
@page
{
size: A4;
margin: 30mm 25mm 25mm 25mm;
}
body
{
margin: 0px;
}
Но, вообще-то я не понимаю, почему не воспользоваться настройками печати самого принтера.
Надеюсь понятно, что это все в тегах <st yle>
(2) да все понятно, но я знаю как установить верхнее поле всего документа, и нижнее с боковыми, а если у меня body при печати принтером бьется на 3 страницы? на принтере установить поля не вариант так как печать документа html предполагает большое верхнее поле, естественно при печати остального оно не надо. Параметры страницы в 1С очищаются после завершения сеанса.
(8) есть некоторые сложности с использованием конструкций чисто верстки html, поэтому вопрос именно в том как это сделать в рамках обьектов 1С, в частности шаблона html. @page просто некуда вставлять, так как эта синтаксическая конструкция НЕ обрабатывается 1С непосредственно перед командой печати, если у вас есть готовый фрагмент кода 1С, в качестве примера было бы интересно увидеть
(5) в качестве альтернативного решения
ТекстHTML = ПолеДокумента.Документ.body.outerHTML;
ФайлТекст = Новый ТекстовыйДокумент;
ФайлТекст.УстановитьТекст(ТекстHTML);
Путь = КаталогВременныхФайлов()+ "htmltext_"+Формат(ТекущаяДата()-Дата(2020,01,01), "ЧГ=0")+".html";
ФайлТекст.Записать(Путь,КодировкаТекста.UTF8,);
Попытка
Word = Новый COMОбъект ("Word.Application");
ThisDocument = Word.Documents.Open(Путь);
Word.Visible = Ложь;
//ThisDocument.PageSetup.Orientation = 1;
ThisDocument.PageSetup.TopMargin = 96;
ThisDocument.PageSetup.RightMargin = 25;
ThisDocument.PageSetup.LeftMargin = 25;
ThisDocument.PageSetup.BottomMargin = 60;
Word.Visible = Истина;
Исключение
КонецПопытки;
Показать
Есть ещё встроенный функционал конвертера pdf им можно попробовать воспользоваться. Но неужели в настройках webkit'а нельзя это указать ? делал похожую тему, сделал запрос в оф.поддержку, везде тишина.. Просто раньше по умолчанию отступы расставлял IE...
(11) есть проблема с вариантом Word, не переносятся стили шрифты, выравнивание, все слетает, думаю можно решить это все перерисовкой html в word, но это время в нашем случае, также более серьезная проблема печатает все подряд, и клиентскую часть и для мед. карты, так что это полувариант, думаю также будет с конверторами pdf. Но поля при этом выставляются отлично)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот