Печать HTML с точным форматированием CSS из IE / Delphi? - PullRequest
2 голосов
/ 15 июля 2009

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

Клиент также хочет распечатать эти страницы, но метод печати TWebBrowser не отображает весь CSS. Например, когда клиент использует блоки цвета фона, я просто получаю цвет фона. Это можно увидеть на некоторых веб-сайтах, когда вы заставляете IE печатать страницы, и часть форматирования CSS-типа исчезает.

Сначала я убедил себя (глупо), что проблема была в том, что CSS был внешней ссылкой, но после того, как я сделал CSS внутренним для файла .HTML, проблема осталась.

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

Полагаю, на самом деле я говорю - вывод на печать из IE отстой, есть ли способ получить лучшее приближение к тому, что вы видите на экране? : -)

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

Моя проблема сейчас (которая сама может стать новым постом ввода / вывода) заключается в том, что в их HTML / CSS есть что-то, что убивает IE. Firefox с радостью распечатает все это отлично (как и Safari), но IE 7 и 8 покажут предварительный просмотр страниц, но умрут во время «реальной» печати.

Учитывая, что замена TWebBrowser на какой-то TGeckoBrowser (!) , вероятно, доставляет больше хлопот, чем стоит (и может не слететь с клиентом), мне придется попробовать и выяснить, какой бит (неприятного, запутанного) кода форматирования вызывает проблему. Там множество DIV со смесью относительных и абсолютных положений ...: -)

Ответы [ 2 ]

5 голосов
/ 15 июля 2009

Связываете ли вы таблицы стилей с media="screen,print" в своих тегах link / style? Кроме того, при печати необходимо учитывать такие параметры, как настройки принтера: хочет ли пользователь распечатать цвета фона страницы? Вы конкретно определили шрифт шрифта или пользователь установил предпочитаемый шрифт печати в свойствах браузера?

Как правило, для печати лучше написать совершенно отдельную таблицу стилей, поскольку такие шрифты с засечками, как Грузия, легче читать на бумаге, а размер шрифта может потребоваться изменить. Изображения могут также хотеть быть скрытыми или уменьшенными.

3 голосов
/ 15 июля 2009

AFAIK, IE имеет настройку в диалоговом окне «Настройки печати», которая позволяет пользователю выбирать, хочет ли он печатать цвета фона или нет. Вам придется изменить этот параметр, либо разрешив пользователю сделать это самостоятельно, либо программно изменив реестр. В любом случае, похоже, нет способа изменить этот параметр для каждого документа.

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