Печать страницы без ее отображения? - PullRequest
6 голосов
/ 27 июля 2010

У меня есть страница, с которой пользователь сможет распечатать . Однако страница, которая будет напечатана, - это не та страница, которую просматривает пользователь, а новая страница, которую я хотел бы создать на фоне и (возможно) показывать только диалоговое окно печати для нее.

Просто чтобы прояснить ситуацию:

  1. Пользователь включен " View.aspx " и нажимает мою кнопку Печать (не в браузере).
  2. Кнопка Печать загружает содержимое « Printable.aspx » и отображает диалоговое окно печати для него, пока пользователь еще включен « View.aspx ».

К вашему сведению, я стараюсь не открывать " Printable.aspx " в новом окне, а затем показывать его диалоговое окно печати. ​​

Заранее спасибо.

Ответы [ 4 ]

12 голосов
/ 27 июля 2010

Используйте комбинацию тегов MEDIA в CSS для отображения / скрытия объектов для печати. ​​

<STYLE type="text/css">
@media print {
   .PrintOnly {font-size: 10pt; line-height: 120%; background: white;}
}
@media screen {
   .PrintOnly {display: none}
}
</STYLE>

Вы можете создавать элементы управления в стиле Display:none на экране мультимедиа, чтобы пользователь мог видеть их только при печати.

<DIV class="PrintOnly">
This control will only show up during printing
</DIV>

Любой из ваших элементов управления может быть классифицирован как «PrintOnly», поэтому вы можете видеть их только при печати.Вам просто нужно определить класс css один раз для "@media screen" и один раз для "@media print", чтобы убедиться, что они ведут себя по-разному.

Вы также можете ввести всю таблицу стилей только для печати. ​​

<LINK rel="stylesheet" type"text/css" href="screen.css" media="screen">
<LINK rel="stylesheet" type"text/css" href="print.css" media="print">
1 голос
/ 27 июля 2010

Когда нажата кнопка Печать , добавьте Printable.aspx на скрытую панель view.aspx. Ответьте, добавив JavaScript в событие onload view.aspx и распечатать скрытую панель с помощью window.print ()

0 голосов
/ 27 июля 2010

Вы можете загрузить страницу в скрытый элемент IFrame, а затем использовать javascript для выполнения функции печати этой страницы.

Но, как предложил @carter, CSS - лучший подход. Зачем загружать дублированный контент более одного раза, если вы можете просто изменить стиль текущего контента?

0 голосов
/ 27 июля 2010

Я не думаю, что вы пытаетесь сделать это возможно.Но я могу ошибаться.Хотя лучший способ достичь этого - использовать другую таблицу стилей CSS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...