Jump to content
  • 0

Печать определенного блока страницы


milax
 Share

Question

На странице есть две кнопочки "Print". Одна из них выполняет свою стандартную функцию - отправляет на печать весь документ (window.print()). Вторая же должна "по щучему велению, по моему хотению" печатать только определенный блок со странички. Как такое можно реализовать? В голову приходит мысль только о динамической подмене принт стайлов в зависимости от того, какая кнопка нажата. При нажатии на вторую кнопку убирать со страницы все блоки кроме нужного. Хотя, если учесть что это надо печатать кусок таблицы (просто данные табличные, а не верстка :lol:...

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0
На странице есть две кнопочки "Print". Одна из них выполняет свою стандартную функцию - отправляет на печать весь документ (window.print()). Вторая же должна "по щучему велению, по моему хотению" печатать только определенный блок со странички. Как такое можно реализовать? В голову приходит мысль только о динамической подмене принт стайлов в зависимости от того, какая кнопка нажата. При нажатии на вторую кнопку убирать со страницы все блоки кроме нужного. Хотя, если учесть что это надо печатать кусок таблицы (просто данные табличные, а не верстка :lol:...

Клонируем выделенный кусок в какой-то "скрытый" div class="printSelection", присваиваем body class="printSelected"

в стилях добавляем

@media print {

.printSelected>* {display: none }

.printSelected>.printSelection { display: block }

}

Link to comment
Share on other sites

  • 0

s0rr0w

Спасибо!

Но теперь другая проблема: как мне сделать так, чтобы добалвенные классы удалялись после распечатки?

Пишу:

	window.print();

$('body').removeClass('printSelected');
$('.printSelection').remove();

Но они удаляются быстрее чем что-то пойдет на печать. И выводится, естественно, вся страница.

Link to comment
Share on other sites

  • 0
Но теперь другая проблема: как мне сделать так, чтобы добавленные классы удалялись после распечатки?

А если их не удалять после распечатки? Пусть себе висит скрытый блок, при печати следующего в нем просто заменится контент. Я думаю отследить окончание печати едва ли возможно/

Link to comment
Share on other sites

  • 0

rash

А если после печати этого блока пользователь захочет распечатать всю страницу целиком? :lol:

Кажется, решил эту проблему.

Я "очистку" ставлю просто в очередь вот так:

window.setTimeout(pageCleaner, 0);

Таким образом класс для боди и лишний блок убьются сразу после того как выполнит свою работу print()

Таким вот нехитрым способом поставили в очередь ;)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy