- Русские Блоги
- JS реализует печать через браузер (автоматически скрывает верхний и нижний колонтитулы)
- В этой статье описано только, как автоматически скрыть верхний и нижний колонтитулы
- Интеллектуальная рекомендация
- В OpenSSL появилась новая уязвимость, затрагивающая 33% серверов HTTPS.
- 05: Вывод, чтобы сохранить 12-значный номер плавающей запятой
- Удалить верхний и нижний колонтитулы из window.print()
- 16 ответов
- Отключить параметры печати браузера (верхние и нижние колонтитулы, поля) со страницы?
- Скрыть заголовок и нижний колонтитул при печати из Internet Explorer с использованием Javascript или CSS
- 4 ответа
Русские Блоги
JS реализует печать через браузер (автоматически скрывает верхний и нижний колонтитулы)
В этой статье описано только, как автоматически скрыть верхний и нижний колонтитулы
При печати через браузер браузер автоматически проверяет верхний и нижний колонтитулы печати, которые можно удалить с помощью всего лишь нескольких строк кода.
Распечатать QR-код как демо
Печать title>
Интеллектуальная рекомендация
В OpenSSL появилась новая уязвимость, затрагивающая 33% серверов HTTPS.
Стандарты набора персонала Unicorn Enterprise Heavy для Python-инженеров 2019 >>> Недавно исследователь обнаружил новую уязвимость в системе безопасности OpenSSL. Эта уязвимость окажет огромн.
05: Вывод, чтобы сохранить 12-значный номер плавающей запятой
05: Вывод, чтобы сохранить 12-значный номер плавающей запятой.
Удалить верхний и нижний колонтитулы из window.print()
Я использую window.print() для печати страницы, но у меня есть верхний и нижний колонтитулы, содержащие заголовок страницы, путь к файлу, номер страницы и дату. Как их убрать?
Я попробовал также распечатать таблицу стилей.
Пожалуйста помоги. Благодарю.
16 ответов
В Chrome можно скрыть этот автоматический колонтитул, используя
Поскольку содержимое будет расширяться до пределов страницы, верхний / нижний колонтитулы при печати страницы будут отсутствовать. Конечно, в этом случае вы должны установить некоторые поля / отступы в элементе body, чтобы содержимое не доходило до края страницы. Поскольку обычные принтеры просто не могут печатать без полей и, вероятно, это не то, что вам нужно, вы должны использовать что-то вроде этого:
Как отметил Мартин в комментарии, если страница содержит длинный элемент, который прокручивается на одну страницу дальше (например, большая таблица), поле игнорируется, и печатная версия будет выглядеть странно.
На момент написания этого ответа (май 2013 г.) он работал только на Chrome, сейчас не уверен, больше не нужно было повторять попытку. Если вам нужна поддержка браузера, который не может работать, вы можете создать PDF-файл на лету и распечатать его (вы можете создать самопечатающийся PDF-файл со встроенным JavaScript-кодом), но это огромная проблема.
Я уверен, что добавление этого кода в файл CSS решит проблему
Сегодня мой коллега наткнулся на ту же проблему.
Так как решение «margin:0» работает для браузеров на основе хрома, Internet Explorer продолжает печатать нижний колонтитул, даже если поля @page установлены в ноль.
Решение (больше взлома) состояло в том, чтобы поместить отрицательную маржу на @page.
Обратите внимание, что отрицательное поле не будет работать для оси Y, только для X
избегание верхнего и нижнего поля решит вашу проблему
Стандарт CSS допускает некоторое расширенное форматирование. В CSS есть директива @page, которая разрешает некоторое форматирование, которое применяется только к постраничным носителям (например, к бумаге). См. http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html.
Top line Line 2
и для Firefox используйте его
@page < margin: 0; >отлично работает в Chrome и Firefox. Я не нашел способа исправить IE через css. Но вы можете войти в Параметры страницы в IE на своем компьютере и установить поля равными 0. Нажмите alt, а затем меню файла в верхнем левом углу, и вы найдете Параметры страницы. Это работает только для одной машины за раз.
Это будет самое простое решение. Я попробовал большинство решений в Интернете, но только это помогло мне.
Итак, основная идея состоит в том, чтобы иметь div (без отображения), содержащий элементы для печати. Теперь при нажатии кнопки печатать не на все тело, а только на этот конкретный элемент div. Столкнулся с множеством проблем при печати div (часть HTML) с помощью window.print(). Используемый ниже метод, и он без проблем работает в Edge, Chrome и Mozilla для меня, посмотрим, поможет ли он и вам.
function printDiv(id) < var contents = document.getElementById(id).innerHTML; var frame1 = document.createElement('iframe'); frame1.name = "frame1"; frame1.style.position = "absolute"; frame1.style.top = "-1000000px"; document.body.appendChild(frame1); var frameDoc = frame1.contentWindow ? frame1.contentWindow : frame1.contentDocument.document ? frame1.contentDocument.document : frame1.contentDocument; frameDoc.document.open(); frameDoc.document.write("\n\n " + " ".concat(contents, "")); frameDoc.document.close(); setTimeout(function () < window.frames["frame1"].focus(); window.frames["frame1"].print(); document.body.removeChild(frame1); >, 500); return false; >
hello
hi
// поместите его в файл скрипта или в тег скрипта.
Это удалит все поля, и вы не сможете видеть верхние и нижние колонтитулы.
Лучшее решение, которое у меня есть, которое также сохраняет приятный вид страницы:
Я пытался удалить верхний и нижний колонтитулы html-страницы, которую распечатал вручную.
Никакое решение на этой странице не помогло мне, я просто определил свой собственный нижний колонтитул, как описано здесь, Firefox не добавлял бы свой собственный верхний и нижний колонтитулы.
К сожалению, это не работает в Chrome.
@media screen < div.divFooter < display: none; >> @media print < div.divFooter < position: fixed; bottom: 0; >>
Вам не нужно писать код. Непосредственно перед вызовом window.print() в первый раз измените настройки печати вашего браузера. например в Firefox:
- Нажмите Alt или F10, чтобы увидеть строку меню
- Нажмите Файл, затем Параметры страницы
- Выберите вкладку Margins & Header/Footers
- Изменить URL на пустое ->изображение
и еще один пример для IE (я использую IE 11 для предыдущих версий, вы можете увидеть это, чтобы Firefox или Internet Explorer не печатали URL на каждой странице):
- Нажмите Alt или F10, чтобы увидеть строку меню
- Нажмите Файл, затем Параметры страницы
- в разделе «Верхние и нижние колонтитулы» измените URL на пустой.
1.Для Chrome и IE
Добавьте атрибут moznomarginboxes в Пример:
Если вам доведется пролистать до этой точки, я нашел решение для Firefox. Он будет печатать содержимое из определенного div без нижних колонтитулов и заголовков. Вы можете настроить, как вы хотите.
Во-первых, скачайте и установите это дополнение: JSPrintSetup.
Во-вторых, напишите эту функцию:
В-третьих, в вашем коде, где бы вы ни хотели написать код для печати, сделайте это (я использовал JQuery. Вы можете использовать обычный javascript):
Очевидно, вам нужна ссылка, чтобы нажать:
Отключить параметры печати браузера (верхние и нижние колонтитулы, поля) со страницы?
Я рассматривал этот вопрос несколько раз на SO и на нескольких других сайтах, но большинство из них либо слишком специфичны, либо устарели. Я надеюсь, что кто-то может дать окончательный ответ здесь, не потворствуя спекуляциям. Есть ли способ, с CSS или javascript, изменить настройки принтера по умолчанию, когда кто-то печатает в своем браузере? И, конечно же, «отпечатки из своего браузера» я имею в виду некую форму HTML, а не PDF или какой-либо другой плагин на основе mime-типа. Обратите внимание: Если некоторые браузеры предлагают это, а другие нет (или если вы знаете только, как это сделать для некоторых браузеров), я приветствую решения, специфичные для браузера. Аналогичным образом, если вы знаете о распространенном браузере, который имеет конкретные ограничения для EVER, это также полезно, но будет оценена некоторая довольно современная документация. (просто говоря «что идет против политики безопасности XYZ» не очень убедительно, когда XYZ внес значительные изменения в указанную политику за последние три года). Наконец, когда я говорю «изменить настройки печати по умолчанию», я не имею в виду навсегда, только для моей страницы, и я имею в виду специально для печати полей, заголовков и нижних колонтитулов. Я очень хорошо понимаю, что CSS предлагает возможность изменения ориентации страницы, а также полей страницы. Одна из многих проблем — с Firefox. Если я установил поля страницы на 1 дюйм, ADDS это до половины дюйма, который он уже встал на место. Я очень хочу уменьшить использование PDF файлов на моем клиентском сайте, но их главная проблема связана с нарушением презентации (а также с отсутствием надежности).
Есть ли какая-то конкретная причина, почему вы хотите это сделать? Если вы говорите, требование, то, возможно, может быть другое возможное решение . Для меня изменение пользовательских настроек не выглядит хорошим решением .
Согласен. Я не хочу менять настройки пользователя. Я хочу перезаписать настройки браузера по умолчанию. И причина в том, что альтернативой является использование PDF, который кажется ненужным, когда все остальное можно сделать доступным для печати с помощью CSS.
Я вижу, вы проверили ответ как решение, но он работает ТОЛЬКО в Chrome. Вы смогли получить правильное решение кросс-браузер? или хотя бы в нескольких браузерах? потому что у меня та же проблема
Скрыть заголовок и нижний колонтитул при печати из Internet Explorer с использованием Javascript или CSS
Когда я печатаю веб-страницу из Internet Explorer, она автоматически добавляет верхний и нижний колонтитулы, включая заголовок веб-сайта, URL, дату и номер страницы.
Можно ли скрыть верхний и нижний колонтитулы программно, используя Javascript или CSS?
- работает в IE 6 (никакой другой поддержки браузера не требуется, как для интранета)
- может использовать ActiveX, Java-апплет, Javascript, CSS
- желательно не то, что пользователь должен установить (например, http://www.meadroid.com/scriptx). не стесняйтесь перечислять другие сторонние доступные плагины, хотя, как я думаю, это может быть единственный вариант
- не требовать от пользователя обновления настроек браузера вручную
- не отображать страницы в формате PDF, Word или в любом другом формате
- не пишите в реестр (безопасность предотвращает это)
4 ответа
В настройках печати вы можете отключить это. Единственный способ сделать это программно — с помощью элемента управления ActiveX, который записывает данные в реестр или блок сценариев, записываемый в VB. Настройки параметров печати хранятся в реестре. Пользователь должен был бы разрешить вашему сценарию доступ к реестру, что большинство людей не сделали бы из-за безопасности.
Если вы хотите контролировать содержимое страницы, вы можете использовать таблицу стилей CSS.
Изменить: есть сторонние активные элементы управления x, которые могут программно печатать для вас, но еще раз, пользователь должен будет выбрать, чтобы загрузить и установить его.
Я немного гуглюсь, и все говорят: «Не могу их удалить!» кроме использования ActiveX и сторонних плагинов.
Интересно, почему некоторые элементы управления отчетами (Telerik Reporting, DevX. ) могут скрывать верхний и нижний колонтитулы без использования ActiveX или плагинов! Они печатают страницу по-другому? Какой способ?