Распечатать определенный HTML - PullRequest
3 голосов
/ 21 марта 2011

Можно ли вывести разметку для принтера, который на самом деле не встроен в страницу?

Проблема в том, что у меня есть приложение Flash, которое отображает динамические данные из бэкэнда таким образом, что это не так.Это действительно удобно для печати, но клиент хочет иметь также версию для печати с необработанными данными.Я легко могу вывести такой контент простым запросом страницы PHP, но проблема заключается в том, чтобы отправить его на принтер, когда пользователь запускает печать.

Это единственный вариант для создания пользовательской кнопки печати, требующийпользователь щелкнет по нему (вместо функции печати в браузере), затем загрузит страницу PHP в новом окне и напечатает эту страницу?Или я могу эффективно переопределить содержимое HTML, которое отправляется на принтер, точно так же, как я могу переопределить CSS с атрибутом media?

Ответы [ 2 ]

1 голос
/ 21 марта 2011

HTML-документ, отправляемый на принтер , должен быть тем же, который отправляется в браузер.Специальный макет печати, как вы предлагаете, является одним из распространенных способов реализации этого поведения.

Другой способ может заключаться в том, чтобы взять идею медиа-атрибута CSS и работать с ней: визуализировать необработанные данные в исходном HTML-документе, скрытьэто в таблице стилей экрана, и показать это в таблице стилей печати.Однако, поскольку кажется, что большая часть навигации в этом приложении происходит внутри SWF, а не в строке адреса браузера (я все еще не совсем уверен, что у меня возникнет вопрос), это может быть неосуществимо.Возможно, файл Flash может отправить необработанные данные в Javascript на странице, чтобы отформатировать их в скрытый HTML, но это может быть слишком большой работой, чтобы стоить этой функции, и пользователи могут даже не осознавать, что они предназначены дляпросто распечатайте эту страницу.Я знаю, что не ожидал бы, что это произойдет волшебным образом.

На этом этапе вам лучше всего выбрать страницу для печати.Решение Javascript + CSS может работать, но, вероятно, оно не стоит вашего времени.

0 голосов
/ 21 марта 2011

Возможно, я бы использовал свойство content вместе с псевдоэлементом :before.

HTML:

<div id="justForPrint"></div>

CSS:

#justForPrint {
    display: none
}

@media print {
    #justForPrint {
        display: block
    }
    #justForPrint:before {
        content: "test data, test data, test data, test data, test data, test data, test data, test data, test data, test data, test data"
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...