печать в веб-браузере

Привет
Я использую элемент управления веб-браузером C# WPF для отображения html-файла на своем локальном компьютере, я добавил функцию печати в свое приложение, выполнив команду печати элемента управления веб-браузером, но поведение Internet Explorer по умолчанию заключается в печати URL-адреса файла в внизу экрана, могу ли я включить печать верхнего и нижнего колонтитула для своего контроля? Есть ли у WebBrowser возможность управления предварительным просмотром печати? Иногда печатная страница обрывается, может кто поможет разобраться в чем проблема.
Большое спасибо!!!


person Arsen Mkrtchyan    schedule 24.08.2009    source источник
comment
Я нашел способ обойти ограничения: hackviking.com/2014/01/   -  person Kristofer Källsbo    schedule 16.01.2014


Ответы (1)


Я сделал это один раз (извините, у меня сейчас нет кода приложения), и я сделал это, играя с реестром: проверьте эту статью MS.

Я советую вам хранить где-нибудь текущие значения ключей и восстанавливать их после того, как вы закончите печать.

ИЗМЕНИТЬ

string keyName = @"Software\Microsoft\Internet Explorer\PageSetup";
using (RegistryKey key = Registry.CurrentUser.OpenSubKey(keyName, true)) {
    if (key != null) {
          string old_footer = key.GetValue("footer");
          string old_header = key.GetValue("header");
          key.SetValue("footer", "");
          key.SetValue("header", "");
          Print();
          key.SetValue("footer", old_footer);
          key.SetValue("header", old_header);
    }
}

О вырезании страниц

Я не уверен, правильно ли я понял, в чем проблема... в приложении, о котором я говорил ранее, у меня была проблема с разрезанием таблиц пополам, поэтому я играл с Разрыв CSS после свойства (см. также break before), чтобы принудительно разрывать страницы, указывая специальные стили для носителя принтера. Надеюсь это поможет...

person Paolo Tedesco    schedule 24.08.2009
comment
Спасибо за ответ Orsogufo сейчас проверю - person Arsen Mkrtchyan; 24.08.2009
comment
Добавил исходники которые меняют значения реестра, может кому понадобится, спасибо большое ваш пост полезен, но страница пока обрезается на некоторых принтерах, можете мне помочь с этим? - person Arsen Mkrtchyan; 24.08.2009
comment
Я изменил ваше редактирование, чтобы восстановить предыдущие значения, как я и предлагал :) В чем проблема с вырезанием страницы? - person Paolo Tedesco; 24.08.2009
comment
ок, спасибо за доработку, я не знаю, почему печатный текст обрезается, половина верхних и нижних строк не отображаются на печатной странице, когда я печатаю в файл tiff, строки обрезаются, когда файл xps страница печатается нормально , Спасибо за помощь - person Arsen Mkrtchyan; 24.08.2009
comment
У меня почему-то получается, что old_footer не существует в текущем контексте? - person Trent Stewart; 13.01.2014
comment
Мне пришлось взять все переменные, такие как old_footer и old_header, и сделать их глобальными по какой-то странной причине. О, вроде работает. - person Trent Stewart; 13.01.2014
comment
@PaoloTedesco: это очень плохое решение. Элемент управления IE печатает асинхронно, поэтому по типу функции Print() печать может быть не завершена элементом управления IE, поэтому, когда вы сбрасываете эти глобальные настройки реестра, может показаться, что ничего не было сделано. К сожалению, у меня нет рабочего решения (пока). Но это плохое решение. Не используйте его. - person c00000fd; 07.03.2019