Как распечатать html документ
Народ, подскажите как распечатать HTML документ, выведенный на управляемую форму в поле с видом HTML документа.
В поле тык, на принтер жмак.
Или тебе программно?
(1) желательно программно.
(2) короче я замучился. мне надо распечатать сертификаты-картинки, которые я не хочу хранить в базе . думаю как это реализовать на управляемых формах
читаю их в поле html документа — из каталога — выводятся. может что-нить поумнее кто предложит
Элементы.ПолеHTML.Документ.print() что-то типа
print — тоже.
Элементы.ПолеРисунков.Документ.execCommand(«Print»);
(9) в (8) работает все сделано на клиенте:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
НайденныеФайлы = НайтиФайлы(«c:\1», «*.jpg»);
КартинкиКаталога = «»;
Для Каждого Стр ИЗ НайденныеФайлы Цикл
КартинкиКаталога = КартинкиКаталога + «
«;
КонецЦикла;
ЭтаФорма.ПолеРисунков = «
+КартинкиКаталога
+»«;
КонецПроцедуры
(10) ну не вопрос, я думал может ты расковырял как напечатать напрямую
(11) к сожалению нет.
надо чтобы оператор сканы кидал в определенную папочку, обработка их видела и печатала «по кнопочке».
еще момент, а как на принтер послать «разрыв страницы»
чтоб не мудрить, зафигач туда вордовский шаблон с разрывом
(13) а как в вордовском шаблоне менять картинки.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn
Javascript печать блока с HTML страницы
При создании очередного сайта столкнулся с задачей печати HTML-страницы. На странице была информация о проекте (коттеджи) и ее нужно было по клику распечатать. Для решения идеально подходит Javascript. Итак, создаем такую структуру:
Обязательно задаем идентификатор. Содержимое может быть любым. Далее напишем небольшую функцию для печати веб-страницы:
И немного поясню. Эта функция откроет новое popup-окно, вызовет функцию печати. После печати автоматически закроет окно. В новое окно передается содержимое блока print-content. Также вызываем стили CSS, чтобы отформатировать содержимое. И, конечно, надо вызывать функцию. Делаем через Javascript функцию onClick:
Ну вот и все. Просто и с душой.
Если браузер не видит CSS стили
Если браузер по той или иной причине не хочет видить CSS, то можно упростить код, удалив пару строк:
function CallPrint(strid)
Материалы:
Печать HTML страниц
Очень часто разработчики забывают про печатную версию сайта, поэтому можно встретить такой результат на бумаге:

Подключение CSS
Доступно три метода подключения CSS-стилей.
Специальный CSS-файл:
Правило @media print:
@media print
Третий метод – отдельная страница или шаблон, свёрстанные чисто под печать (без @media print ), например так сделана печать писем в Яндекс.Почте. Такой метод существенно облегчает отладку.
Размер страницы
Лист в формате А4 имеет размер 210×297 мм, его можно указать:
@media print < html, body< height: 297mm; width: 210mm; >>
- при dpi=75, А4 имеет 877×620 px
- при dpi=150, А4 имеет 1754×1240 px
- при dpi=300, А4 имеет 3508×2480 px
Поля
В целях экономии бумаги лучше использовать минимальные поля – 10 мм по краям и 20 мм слева для возможности брушеровки.
@page
Поля по ГОСТ Р 6.30-2003 (оформление документов):
@page
По ГОСТ 7.32-2017 (научные работы, рефераты):
@page
Удаление лишних стилей
Тени и другие эффекты дизайна лучше убрать, также следует установить черный цвет шрифта.
@media print < *, *:before, *:after < color: #000; box-shadow: none; text-shadow: none; >>
Размер шрифта
Если на сайте размер шрифтов указан в пикселях, то при печати размер будет больше чем на экране. Поэтому нужно выставить новые значения:
@media print < html, body < font-size: 14px; >h1 < font-size: 24px; >h2 < font-size: 20px; >h3 < font-size: 18px; >>
Скрытие лишних элементов
Т.к. на бумаге элементы навигации, баннеры, шапка, подвал, и другие элементы не несут какой либо пользы, то лучше их скрыть или оставить в них только самое важное.
@media print < .header, .footer, .banner < display: none; >>
Другой вариант скрытия не нужного контента – в HTML-коде, добавить к скрываемым элементам класс noprint .
@media print < .noprint < display: none; >>
Не стоить забывать о , обычно для сайтов с фиксированным размером ему задана ширина, отступы и центрирование, поэтому при печати возможна обрезка контента с правого края, такие стили стоит обнулить.
@media print < .wrapper < width: auto; margin: 0; padding: 0; >>
Показ элемента только при печати
@media screen < .element < display: none; >> @media print < .element < display: block; >>
Печать фона background
По умолчанию браузеры не печатают background у элементов, но его можно пустить на печать принудительно c помощью свойства -webkit-print-color-adjust: exact; и нового color-adjust: exact; .
@media print < * < -webkit-print-color-adjust: exact !important; color-adjust: exact !important; >>
Уточнение: свойство не будет работать если цвет фона и шрифта слабоконтрастные.
Разрывы страниц
В CSS доступно управление переносами, соответственно для списков и таблиц нужно запретить переносы:
@media print < ul, ol, table < page-break-inside: avoid; >>
Если требуется принудительно сделать перенос после элемента:
@media print < article < page-break-inside: always; >>
Отображение URL в ссылках
Печать ссылок бесполезна т.к. будет не известно, куда они ведут. Можно добавить приписку URL рядом с анкором (исключая якорные ссылки).
@media print < a[href^="http"]:after < content: " (" attr(href) ")"; >>
Пример вставки URL:
Вывод QR-кода при печати
Будет очень удобно если на печатаной странице будет QR-код с ссылкой на сайт. Сгенерировать код можно с помощью сервиса «Google QR Codes» и вставить его с помощью JQuery.
$(function()< $(window).bind('beforeprint', function()< if($("#print-qr").length == 0) < $('body').append( '' + '
' ); > >); >);

Еще один метод вставки QR-кода через CSS, но он требует подставки URL текущей страницы через PHP.
Запуск печати
В JS, печать запускается методом window.print() . Возможны следующие варианты: Запуск печати по клику на ссылку:
$(function($)< $(".action-print").click(function()< window.print(); return false; >); >);
Следующий вариант – пользователь переходит на следующую страницу, где сразу начинается печать, после пользователь возвращается на исходную.
И последний вариант – печать происходит в отдельной вкладке браузера, после печати она автоматически закрывается.
Распечатать HTML-документ из командной строки
Есть потребность распечатать HTML-документ из командной строки, не задавай пользователю никаких вопросов. (Печать нужна в отрендеренном виде, а не самого файла 🙂 Базовая система — KDE. При необходимости можно написать программку (лучше на python/perl/ruby).
Какое наиболее простое решение для этого? html2ps + kprinter не подошло по причине страшной кривости первого. C++ и KHTML будет рассмотрен в последнюю очередь.
sv75 ★★★★★
29.06.07 17:20:54 MSD
Re: Распечатать HTML-документ из командной строки
а может links —dump | lpq?
rexadecimal ★
( 29.06.07 17:34:57 MSD )
Ответ на: Re: Распечатать HTML-документ из командной строки от rexadecimal 29.06.07 17:34:57 MSD
Re: Распечатать HTML-документ из командной строки
Но у меня лично при этом проблемы с кириллицей возникают.
anonymous
( 29.06.07 17:56:09 MSD )
Ответ на: Re: Распечатать HTML-документ из командной строки от rexadecimal 29.06.07 17:34:57 MSD
Re: Распечатать HTML-документ из командной строки
> links —dump | lpqlinks —dump | lpq
Lor, блин. Plain-text не нужно. Нужна красивая картинка. Там пара табличек со шрифтами разного размера. Так что уж лучше konqueror blank.htm и там просить пользователя нажать Ctrl+P.
sv75 ★★★★★
( 29.06.07 18:46:18 MSD ) автор топика
Ответ на: Re: Распечатать HTML-документ из командной строки от sv75 29.06.07 18:46:18 MSD
Re: Распечатать HTML-документ из командной строки
anonymous
( 29.06.07 19:35:15 MSD )
Re: Распечатать HTML-документ из командной строки
Была такая проблема на работе. Решилась быть может тяжёлым путём. Использовали soffice.
anonymous
( 30.06.07 13:56:21 MSD )
Ответ на: Re: Распечатать HTML-документ из командной строки от anonymous 30.06.07 13:56:21 MSD
Re: Распечатать HTML-документ из командной строки
Писать обработчики для xml,html и подобных форматов, по-моему, удобнее всего на Ruby, хотя в perl могут быть готовые библиотеки для определенного круга задач. А вообще обработать произвольный документ в формате html задача не простая т.к. этот формат не строгий — то есть допустимы разночтения, и разные браузеры обрабатывают такие неоднозначности и даже ошибки по-разному, вследствие чего некоторые документы отлаживаются под конкретные браузеры или (часто, к сожалению, с закрытым исходным кодом — и непонятно как они что обрабатывают), и становится неясно как обрабатывать те или иные ситуации. Хотя, возможно, я сгущаю краски.
Alex_87
( 30.06.07 23:25:00 MSD )
Ответ на: Re: Распечатать HTML-документ из командной строки от sv75 29.06.07 18:46:18 MSD

Re: Распечатать HTML-документ из командной строки
Открываешь конкверор, потом копаешь dcop на предмет печати, там это должно быть. После отладки скрипта всталяешь в него что-то типа «dcop konqueror konqueror-mainwindow#1 hide» чтоб его окно не показывалось на десктопе. dcop рулит 🙂
Sherak ★☆
( 01.07.07 00:35:44 MSD )
Ответ на: Re: Распечатать HTML-документ из командной строки от Sherak 01.07.07 00:35:44 MSD
Re: Распечатать HTML-документ из командной строки
Вот я пожалуй в это сторону покапаю сначала, спасибо.Заодно про dcop почитаю.
sv75 ★★★★★
( 03.07.07 12:14:47 MSD ) автор топика
Ответ на: Re: Распечатать HTML-документ из командной строки от sv75 03.07.07 12:14:47 MSD