Существует несколько «отчетов», которые можно извлечь из системы . Реализуется это следующим образом: сначала создается html отчета и отображается в участке экрана (работает корректно). После этого появляется кнопка, позволяющая распечатать отчет. Это действие генерирует HTML-код с информацией (в HTML-таблице) так же, как при создании экранного отчета, и использует его для создания HTML-файла, который затем отправляется на печать.
Здесь монстр показывает свое лицо! (тум-дум-думммм - драматическая музыка).
После обновления Google Chrome до версии 59.0.3071.86 при печати таблица/ячейки теряют границы и цвета фона.
Я думал, что, возможно, это связано с сгенерированным HTML, но на самом деле, если я заставлю HTML при печати быть
Код: Выделить всё
table, th, td {border: 1px solid black !important;}
title
Add a border to a table:
Firstname
Lastname
Peter
Griffin
Lois
Griffin
Код: Выделить всё
Заранее спасибо.
И отредактируйте, чтобы сказать, что это не та же проблема, что и в «возможных дубликатах». Раньше у меня была проблема с «цветами фона», и я ее исправил. В этом случае (и, как показывает фрагмент кода), кажется, что некоторые стили не интерпретируются, например, граница таблицы. И все работало до Chrome 59.0.3071.86, так что это, похоже, новая проблема, а не проблема, «решенная где-то через 5 лет».
И еще одно редактирование объясните немного дальше:
где-то в моем веб-приложении есть небольшая кнопка с надписью «распечатать отчет». При этом создается html-файл, который затем отправляется на печать.
Я заменил сгенерированный html довольно упрощенным файлом, иллюстрирующим мою проблему.
Итак, каждый раз, когда я нажимаю «Печать отчета», я «форсирую» это быть сгенерированным HTML:
Код: Выделить всё
table, th, td {border: 1px solid black !important;} body { -webkit-print-color-adjust: exact; }
title
Add a border to a table:
Firstname
Lastname
Peter
Griffin
Lois
Griffin
Код: Выделить всё
body { -webkit-print-color-adjust: exact; }
Код: Выделить всё
Код: Выделить всё

Однако, когда предварительный просмотр печати «всплывает», это то, что я получить:

Так что и отображается цвет фона (как я полагаю, происходит с другими пользователями SO, но их решение здесь не работает), ни границы таблицы.
Другое редактирование: я попытался определить «правила CSS для печати», , а именно:
Код: Выделить всё
@media print {
body { -webkit-print-color-adjust: exact; }
table, th, td {border: 1px solid black !important;}
}
title
Add a border to a table:
Firstname
Lastname
Peter
Griffin
Lois
Griffin
ОКОНЧАТЕЛЬНОЕ РЕДАКТИРОВАНИЕ – обходной путь:
Мне не удалось решить проблему как таковую, и Я правда ОЧЕНЬ не понимаю, почему так происходит.
Что Мне удалось найти работающее обходное решение, и я публикую его здесь не как ответ, но все же надеюсь, что оно может кому-нибудь помочь.
Я сделал это следующим образом: когда Я нажал кнопку печати, открыл новое окно, в котором есть только HTML-код, который я хочу распечатать (именно так, как я хочу), и, используя JavaScript, я распечатываю его после загрузки страницы.
Делаю это так Кстати, он работает и печатает с правильными форматирование.
Кто-то может сказать, что это удача, другие - "черная магия". Я говорю: «Готово! Дальше!» (Хотя меня не устраивает тот факт, что я вообще не понимаю проблемы.)
Подробнее здесь: https://stackoverflow.com/questions/445 ... kground-co