как сделать печатную версию веб-страницы? - PullRequest
13 голосов
/ 25 января 2012

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

эти таблицы генерируются динамически в соответствии с выбором пользователей в флажках. Можно ли добавить ссылку для печати, которая будет брать содержимое с текущей страницы и помещать его на страницу, где она может быть безумно более удобной для печати?

Ответы [ 4 ]

17 голосов
/ 25 января 2012

Вы можете сделать печатную версию своей страницы с помощью @media print

@media print {
        your styles here
}

Например, в Foundation есть базовые правила, к которым вы можете добавить что-нибудь свое:

@media print {
    * { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important;
    -ms-filter: none !important; } /* Black prints faster: sanbeiji.com/archives/953 */
    p a, p a:visited { color: #444 !important; text-decoration: underline; }
    p a[href]:after { content: " (" attr(href) ")"; }
    abbr[title]:after { content: " (" attr(title) ")"; }
    .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }  /* Don't show links for images, or javascript/internal links */
    pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
    thead { display: table-header-group; } /* css-discuss.incutio.com/wiki/Printing_Tables */
    tr, img { page-break-inside: avoid; }
    @page { margin: 0.5cm; }
    p, h2, h3 { orphans: 3; widows: 3; }
    h2, h3{ page-break-after: avoid; }
    .hide-on-print { display: none !important; }
    .print-only { display: block !important; }
}
8 голосов
/ 25 января 2012

Использовать CSS с @media правилами . Определите ваши стили для отображения на экране с помощью @media screen и @media print для печати. Разрывы контрольной страницы с page-break-* атрибутами .

@media screen {
    body {
        background-image: url(/images/background.png);
    }
}
@media print {
    body {
        background-image: none;
    }
    tr {
        page-break-inside: avoid;
    }
}
6 голосов
/ 25 января 2012

Нет необходимости в двух разных страницах.Вы должны создать другой лист CSS.После того, как вы скопируете существующий, просто установите все в черно-белый цвет (или несколько цветов, если они вам действительно нужны), удалите все ненужные меню и элементы, поместив display: none; в их декларацию CSS, и избавьтесь от них.из нежелательных полей.Вы должны просто поместить объявление margin: 0 или margin-top: 0 здесь и там.Если вы не показываете свой HTML и CSS-код, то сложно быть более конкретным.

2 голосов
/ 25 января 2012

Самый простой способ - создать другую таблицу стилей для печатной версии и добавить для нее атрибут media="print" к <link/>.

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